rfc9832v1.txt   rfc9832.txt 
Internet Engineering Task Force (IETF) K. Vairavakkalai, Ed. Internet Engineering Task Force (IETF) K. Vairavakkalai, Ed.
Request for Comments: 9832 N. Venkataraman, Ed. Request for Comments: 9832 N. Venkataraman, Ed.
Category: Experimental Juniper Networks, Inc. Category: Experimental Juniper Networks, Inc.
ISSN: 2070-1721 August 2025 ISSN: 2070-1721 August 2025
BGP Classful Transport Planes BGP Classful Transport Planes
Abstract Abstract
This document specifies a mechanism referred to as "Intent-Driven 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 Level Agreement (SLA). This is achieved by defining new constructs
to group underlay routes with sufficiently similar TE characteristics to group underlay routes with sufficiently similar TE characteristics
into identifiable classes (called "Transport Classes" or "TCs"), that into identifiable classes (called "Transport Classes" or "TCs"), that
overlay routes use as an ordered set to resolve reachability overlay routes use as an ordered set to resolve reachability
(Resolution Schemes) towards service endpoints. These constructs can (Resolution Schemes) towards service endpoints. These constructs can
be used, for example, to realize the "IETF Network Slice" defined in be used, for example, to realize the "IETF Network Slice" defined in
the TEAS Network Slices framework. the TEAS Network Slices framework (RFC 9543).
Additionally, this document specifies protocol procedures for BGP 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 that may span multiple cooperating administrative domains. These
domains may be administered either by the same provider or by closely domains may be administered either by the same provider or by closely
coordinating providers. A new BGP address family that leverages the coordinating providers. A new BGP address family that leverages the
procedures described in "BGP/MPLS IP Virtual Private Networks (VPNs)" procedures described in "BGP/MPLS IP Virtual Private Networks (VPNs)"
(RFC 4364) and follows the NLRI encoding described in RFC 8277 (RFC 4364) and follows the NLRI encoding described in RFC 8277
("Using BGP to Bind MPLS Labels to Address Prefixes") is defined to ("Using BGP to Bind MPLS Labels to Address Prefixes") is defined to
enable each advertised underlay route to be identified by its class. enable each advertised underlay route to be identified by its class.
skipping to change at line 79 skipping to change at line 79
1. Introduction 1. Introduction
2. Terminology 2. Terminology
2.1. Abbreviations 2.1. Abbreviations
2.2. Definitions and Notations 2.2. Definitions and Notations
2.3. Requirements Language 2.3. Requirements Language
3. Architecture Overview 3. Architecture Overview
4. Transport Class 4. Transport Class
4.1. Classifying TE Tunnels 4.1. Classifying TE Tunnels
4.2. Transport Route Database (TRDB) 4.2. Transport Route Database (TRDB)
4.3. "Transport Class" Route Target Extended Community 4.3. Transport Class Route Target
5. Resolution Scheme 5. Resolution Scheme
5.1. Mapping Community 5.1. Mapping Community
6. BGP Classful Transport Family 6. BGP Classful Transport Family
6.1. NLRI Encoding 6.1. NLRI Encoding
6.2. Next Hop Encoding 6.2. Next Hop Encoding
6.3. Carrying Multiple Encapsulation Information 6.3. Carrying Multiple Types of Encapsulation Information
6.4. Comparison with Other Families Using Encoding from RFC 8277 6.4. Comparison with Other Families Using Encoding from RFC 8277
7. Protocol Procedures 7. Protocol Procedures
7.1. Preparing the Network to Deploy Classful Transport Planes 7.1. Preparing the Network to Deploy Classful Transport Planes
7.2. Originating Classful Transport Routes 7.2. Originating BGP CT Routes
7.3. Processing Classful Transport Routes by Ingress Nodes 7.3. Processing BGP CT Routes by Ingress Nodes
7.4. Readvertising Classful Transport Route by Border Nodes 7.4. Readvertising BGP CT Route by Border Nodes
7.5. Border Nodes Receiving Classful Transport Routes on EBGP 7.5. Border Nodes Receiving BGP CT Routes on EBGP
7.6. Avoiding Path Hiding Through Route Reflectors 7.6. Avoiding Path Hiding Through Route Reflectors
7.7. Avoiding Loops Between Route Reflectors in Forwarding Paths 7.7. Avoiding Loops Between Route Reflectors in Forwarding Paths
7.8. Ingress Nodes Receiving Service Routes with a Mapping 7.8. Ingress Nodes Receiving Service Routes with a Mapping
Community Community
7.9. Best-Effort Transport Class 7.9. Best-Effort Transport Class
7.10. Interaction with BGP Attributes Specifying Next Hop Address 7.10. Interaction with BGP Attributes Specifying Next Hop Address
and Color and Color
7.11. Applicability to Flowspec Redirect-to-IP 7.11. Applicability to Flowspec Redirect-to-IP
7.12. Applicability to IPv6 7.12. Applicability to IPv6
7.13. SRv6 Support 7.13. SRv6 Support
7.14. Error-Handling Considerations 7.14. Error-Handling Considerations
8. Illustration of BGP CT Procedures 8. Illustration of BGP CT Procedures
8.1. Reference Topology 8.1. Reference Topology
8.2. Service-Layer Route Exchange 8.2. Service Layer Route Exchange
8.3. Transport-Layer Route Propagation 8.3. Transport Layer Route Propagation
8.4. Data Plane View 8.4. Data Plane View
8.4.1. Steady State 8.4.1. Steady State
8.4.2. Local Repair of Primary Path 8.4.2. Local Repair of Primary Path
8.4.3. Absorbing Failure of the Primary Path: Fallback to 8.4.3. Absorbing Failure of the Primary Path: Fallback to
Best-Effort Tunnels Best-Effort Tunnels
9. Scaling Considerations 9. Scaling Considerations
9.1. Avoiding Unintended Spread of BGP CT Routes Across Domains 9.1. Avoiding Unintended Spread of BGP CT Routes Across Domains
9.2. Constrained Distribution of PNHs to SNs (On-Demand Next 9.2. Constrained Distribution of PNHs to SNs (On-Demand Next
Hop) Hop)
9.3. Limiting the Visibility Scope of PE Loopback as PNHs 9.3. Limiting the Visibility Scope of PE Loopback as PNHs
10. Operations and Manageability Considerations 10. Operations and Manageability Considerations
10.1. MPLS OAM 10.1. MPLS OAM
10.2. Usage of RD and Label-Allocation Modes 10.2. Usage of RD and Label-Allocation Modes
10.3. Managing Transport-Route Visibility 10.3. Managing Transport-Route Visibility
11. Deployment Considerations 11. Deployment Considerations
11.1. Coordination Between Domains Using Different Community 11.1. Coordination Between Domains Using Different Community
Namespaces Namespaces
11.2. Managing Intent at Service and Transport Layers 11.2. Managing Intent at Service and Transport Layers
11.2.1. Service-Layer Color Management 11.2.1. Service Layer Color Management
11.2.2. Non-Agreeing Color Transport Domains 11.2.2. Non-Agreeing Color Transport Domains
11.2.3. Heterogeneous Agreeing Color Transport Domains 11.2.3. Heterogeneous Agreeing Color Transport Domains
11.3. Migration Scenarios 11.3. Migration Scenarios
11.3.1. BGP CT Islands Connected via BGP LU Domain 11.3.1. BGP CT Islands Connected via BGP LU Domain
11.3.2. BGP CT: Interoperability Between MPLS and Other 11.3.2. BGP CT: Interoperability Between MPLS and Other
Forwarding Technologies Forwarding Technologies
11.4. MTU Considerations 11.4. MTU Considerations
11.5. Use of DSCP 11.5. Use of DSCP
12. Applicability to Network Slicing 12. Applicability to Network Slicing
13. IANA Considerations 13. IANA Considerations
skipping to change at line 155 skipping to change at line 155
16.1. Normative References 16.1. Normative References
16.2. Informative References 16.2. Informative References
Appendix A. Extensibility Considerations Appendix A. Extensibility Considerations
A.1. Signaling Intent over a PE-CE Attachment Circuit A.1. Signaling Intent over a PE-CE Attachment Circuit
A.2. BGP CT Egress TE A.2. BGP CT Egress TE
Appendix B. Applicability to Intra-AS and Different Inter-AS Appendix B. Applicability to Intra-AS and Different Inter-AS
Deployments Deployments
B.1. Intra-AS Use Case B.1. Intra-AS Use Case
B.1.1. Topology B.1.1. Topology
B.1.2. Transport Layer B.1.2. Transport Layer
B.1.3. Service-Layer Route Exchange B.1.3. Service Layer Route Exchange
B.2. Inter-AS Option A Use Case B.2. Inter-AS Option A Use Case
B.2.1. Topology B.2.1. Topology
B.2.2. Transport Layer B.2.2. Transport Layer
B.2.3. Service Layer Route Exchange B.2.3. Service Layer Route Exchange
B.3. Inter-AS Option B Use Case B.3. Inter-AS Option B Use Case
B.3.1. Topology B.3.1. Topology
B.3.2. Transport Layer B.3.2. Transport Layer
B.3.3. Service-Layer Route Exchange B.3.3. Service Layer Route Exchange
Appendix C. Why reuse RFCs 8277 and 4364? Appendix C. Why reuse RFCs 8277 and 4364?
C.1. Update Packing Considerations C.1. Update Packing Considerations
Appendix D. Scaling Using BGP MPLS Namespaces Appendix D. Scaling Using BGP MPLS Namespaces
Acknowledgements Acknowledgements
Contributors Contributors
Authors' Addresses Authors' Addresses
1. Introduction 1. Introduction
Provider networks typically span across multiple domains where each Provider networks typically span across multiple domains where each
skipping to change at line 189 skipping to change at line 189
[RFC9315] defines "Intent" as: [RFC9315] defines "Intent" as:
| A set of operational goals (that a network should meet) and | A set of operational goals (that a network should meet) and
| outcomes (that a network is supposed to deliver) defined in a | outcomes (that a network is supposed to deliver) defined in a
| declarative manner without specifying how to achieve or implement | declarative manner without specifying how to achieve or implement
| them. | them.
This document prescribes constructs and procedures to realize This document prescribes constructs and procedures to realize
"Intent" and enable provider networks to forward service traffic "Intent" and enable provider networks to forward service traffic
based on service-specific intent from end-to-end across service based on service specific Intent from end-to-end across service
endpoints. endpoints.
The mechanisms described in this document achieve "Intent-Driven The mechanisms described in this document achieve "Intent Driven
Service Mapping" between any pair of service endpoints by: Service Mapping" between any pair of service endpoints by:
* Provisioning end-to-end "intent-aware" paths using BGP. For * Provisioning end-to-end "Intent aware" paths using BGP. For
example, a low-latency path or a best-effort path. example, a low-latency path or a best-effort path.
* Expressing a desired intent. For example, use a low-latency path * Expressing a desired Intent. For example, use a low-latency path
with a fallback to the best-effort path. with a fallback to the best-effort path.
* Forwarding service traffic "only" using end-to-end "intent-aware" * Forwarding service traffic "only" using end-to-end "Intent aware"
paths honoring that desired intent. paths honoring that desired Intent.
The constructs and procedures defined in this document apply equally The constructs and procedures defined in this document apply equally
to intra-AS and inter-AS (a.k.a. multi-AS) deployments in the style to intra-AS and inter-AS (a.k.a. multi-AS) deployments in the style
of Option A, Option B, and Option C (Section 10 of [RFC4364]) in of option A, option B, and option C (Section 10 of [RFC4364]) in
provider networks. provider networks.
Such networks provision intra-domain transport tunnels between a pair Such networks provision intra-domain transport tunnels between a pair
of endpoints, typically a service node or a border node that service of endpoints, typically a service node or a border node that service
traffic traverses through. These tunnels are signaled using various traffic traverses through. These tunnels are signaled using various
tunneling protocols depending on the forwarding architecture used in tunneling protocols depending on the forwarding architecture used in
the domain, which can be Multiprotocol Label Switching (MPLS), the domain, which can be Multiprotocol Label Switching (MPLS),
Internet Protocol version 4 (IPv4), or Internet Protocol version 6 Internet Protocol version 4 (IPv4), or Internet Protocol version 6
(IPv6). (IPv6).
skipping to change at line 231 skipping to change at line 231
tunneling technologies are detailed in this document. In some tunneling technologies are detailed in this document. In some
examples, only MPLS Traffic Engineering (TE) is described. Other examples, only MPLS Traffic Engineering (TE) is described. Other
tunneling technologies have been described in detail in other tunneling technologies have been described in detail in other
documents (and only an overview has been included in this document). documents (and only an overview has been included in this document).
For example, the details for Segment Routing over IPv6 (SRv6) are For example, the details for Segment Routing over IPv6 (SRv6) are
provided in [BGP-CT-SRv6] and an overview is provided in provided in [BGP-CT-SRv6] and an overview is provided in
Section 7.13. Section 7.13.
Customers need to be able to express desired Intent to the network, 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. "Intent aware" tunnels for these classes.
This document introduces a new BGP address family called "BGP This document introduces a new BGP address family called "BGP
Classful Transport", which extends/stitches intent-aware intra-domain Classful Transport (BGP CT)", which extends/stitches Intent aware
tunnels belonging to the same class across domain boundaries to intra-domain tunnels belonging to the same class across domain
establish end-to-end intent-aware paths between service endpoints. boundaries to establish end-to-end Intent aware paths between service
endpoints.
[Intent-Routing-Color] describes various use cases and applications [Intent-Routing-Color] describes various use cases and applications
of the procedures described in this document. of the procedures described in this document.
Appendix C provides an outline of the design philosophy behind this Appendix C provides an outline of the design philosophy behind this
specification. In particular, readers who are already familiar with specification. In particular, readers who are already familiar with
one or more BGP VPN technologies may want to review this appendix one or more BGP VPN technologies may want to review this appendix
before reading the main body of the specification. before reading the main body of the specification.
2. Terminology 2. Terminology
skipping to change at line 320 skipping to change at line 321
PNH: Protocol Next Hop (address carried in a BGP UPDATE message) PNH: Protocol Next Hop (address carried in a BGP UPDATE message)
RD: Route Distinguisher RD: Route Distinguisher
RD:EP: Route Distinguisher and Endpoint (in a BGP Prefix) RD:EP: Route Distinguisher and Endpoint (in a BGP Prefix)
RSVP-TE: Resource Reservation Protocol - Traffic Engineering RSVP-TE: Resource Reservation Protocol - Traffic Engineering
RT: Route Target (as used in Route Target extended community) RT: Route Target (as used in Route Target extended community)
RTC: Route Target Constrain [RFC4684] RTC: Route Target Constraint [RFC4684]
SAFI: Subsequent Address Family Identifier SAFI: Subsequent Address Family Identifier
SID: Segment Identifier SID: Segment Identifier
SLA: Service Level Agreement SLA: Service Level Agreement
SN: Service Node SN: Service Node
SR: Segment Routing SR: Segment Routing
skipping to change at line 342 skipping to change at line 343
SRTE: Segment Routing Traffic Engineering SRTE: Segment Routing Traffic Engineering
TC: Transport Class TC: Transport Class
TC ID: Transport Class Identifier TC ID: Transport Class Identifier
TC-BE: Transport Class - Best Effort TC-BE: Transport Class - Best Effort
TE: Traffic Engineering TE: Traffic Engineering
TEA: Tunnel Encapsulation Attribute (attribute type code 23) TEA: Tunnel Encapsulation Attribute (attribute code 23)
TRDB: Transport Route Database TRDB: Transport Route Database
UHP: Ultimate Hop Popping UHP: Ultimate Hop Popping
VRF: Virtual Routing and Forwarding (used with a table) VRF: Virtual Routing and Forwarding (used with a table)
2.2. Definitions and Notations 2.2. Definitions and Notations
BGP CCA: BGP CCA:
A BGP attribute that carries community. Examples of BGP CCAs are A BGP attribute that carries community. Examples of BGP CCAs are
COMMUNITIES (attribute code 8), EXTENDED COMMUNITIES (attribute COMMUNITIES (attribute code 8), EXTENDED COMMUNITIES (attribute
code 16), IPv6 Address Specific Extended Community (attribute code code 16), IPv6 Address Specific Extended Community (attribute code
25), and LARGE_COMMUNITY (attribute code 32). 25), and LARGE_COMMUNITY (attribute code 32).
color:0:100: color:0:100 or col-100:
This notation denotes a Color Extended Community as defined in This notation denotes a Color extended community as defined in
[RFC9012] with the "Flags" field set to 0 and the "Color" field [RFC9012] with the "Flags" field set to 0 and the "Color Value"
set to 100. field set to 100.
End-to-End Tunnel: End-to-End Tunnel:
A tunnel spanning several adjacent tunnel domains created by A tunnel spanning several adjacent tunnel domains created by
"stitching" them together using MPLS labels or an equivalent "stitching" them together using MPLS labels or an equivalent
identifier based on the forwarding architecture. identifier based on the forwarding architecture.
Import processing: Import processing:
Receive-side processing of an overlay route, including things like Receive-side processing of an overlay route, including things like
import-policy application, resolution-scheme selection, and NH import-policy application, Resolution Scheme selection, and NH
resolution. resolution.
Mapping Community: Mapping Community:
Any BGP CCA (e.g., Community, Extended Community) on an overlay Any BGP CCA (e.g., Community, Extended Community) on an overlay
route that maps to a Resolution Scheme. For example, color:0:100, route that maps to a Resolution Scheme. For example, color:0:100,
transport-target:0:100. transport-target:0:100.
Provider Namespace: Provider Namespace:
Internal Infrastructure address space in a provider network Internal Infrastructure address space in a provider network
managed by the Operator. managed by the operator.
Resolution Scheme: Resolution Scheme:
A construct comprising of an ordered set of TRDBs to resolve NH A construct comprising of an ordered set of TRDBs to resolve NH
reachability for realizing a desired intent. reachability for realizing a desired Intent.
Service Family: Service Family:
A BGP address family used for advertising routes for destinations A BGP address family used for advertising routes for destinations
in "data traffic". For example, AFI/SAFIs 1/1 or 1/128. in "data traffic". For example, AFI/SAFIs 1/1 or 1/128.
Service Prefix: Service Prefix:
A destination in "data traffic". Routes to these prefixes are A destination in "data traffic". Routes to these prefixes are
carried in a Service family. carried in a Service Family.
Transport Family: Transport Family:
A BGP address family used for advertising tunnels, which are, in A BGP address family used for advertising tunnels, which are, in
turn, used by service routes for resolution. For example, AFI/ turn, used by service routes for resolution. For example, AFI/
SAFIs 1/4 or 1/76. SAFIs 1/4 or 1/76.
Transport Tunnel: Transport Tunnel:
A tunnel over which a service may place traffic. Such a tunnel A tunnel over which a service may place traffic. Such a tunnel
can be provisioned or signaled using a variety of means. For can be provisioned or signaled using a variety of means. For
example, Generic Routing Encapsulation (GRE), UDP, LDP, RSVP-TE, example, Generic Routing Encapsulation (GRE), UDP, LDP, RSVP-TE,
IGP Flexible Algorithm (FLEX-ALGO), or SRTE. IGP Flexible Algorithm (Flex-Algo), or SRTE.
Transport, Transport Layer: Transport Layer:
A layer in the network that contains Transport Tunnels and A layer in the network that contains Transport Tunnels and
Transport Families. Transport Families.
Tunnel Route: Tunnel Route:
A Route to Tunnel Destination/Endpoint that is installed at the A Route to Tunnel Destination/Endpoint that is installed at the
headend (ingress) of the tunnel. headend (ingress) of the tunnel.
Tunnel Domain: Tunnel Domain:
A domain of the network containing SNs and BNs under a single A domain of the network containing SNs and BNs under a single
administrative control that has tunnels between them. administrative control that has tunnels between them.
skipping to change at line 437 skipping to change at line 438
Transport Class: Transport Class:
A construct to group transport tunnels offering similar SLAs (see A construct to group transport tunnels offering similar SLAs (see
Section 4.1). Section 4.1).
Transport Class RT: Transport Class RT:
A Route Target extended community used to identify a specific A Route Target extended community used to identify a specific
Transport Class. Transport Class.
transport-target:0:100: transport-target:0:100:
This notation denotes a Transport Class Route Target extended This notation denotes a Transport Class RT as defined in this
community as defined in this document with the "Transport Class document with the "Transport Class ID" field set to 100.
ID" field set to 100.
Transport Route Database: Transport Route Database:
At the SN and BN, a Transport Class has an associated TRDB that At the SN and BN, a Transport Class has an associated TRDB that
collects its tunnel routes. collects its tunnel routes.
Transport Plane: Transport Plane:
An end-to-end plane consisting of transport tunnels belonging to An end-to-end plane consisting of transport tunnels belonging to
the same Transport Class. the same Transport Class.
2.3. Requirements Language 2.3. Requirements Language
skipping to change at line 463 skipping to change at line 463
"OPTIONAL" in this document are to be interpreted as described in "OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
3. Architecture Overview 3. Architecture Overview
This section describes the BGP CT architecture with a brief This section describes the BGP CT architecture with a brief
illustration: illustration:
INET [RR21]--------------<<---[RR11] INET [RR21]--------------<<---[RR11]
Service / / | IP1,color:0:100 Service / / | IP1,col-100
[PE21] <<--------+ : [SN11] <<-----+ ^ IP2,color:0:200 [PE21] <<--------+ : [SN11] <<-----+ ^ IP2,col-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......]
---------Traffic Direction-----------> ---------Traffic Direction----------->
.-- [PE21]--<<--[BN21] [BN21]--<<--[BN11] --. .-- [PE21]--<<--[BN21] [BN21]--<<--[BN11] --.
| <<--RD1:PE11(L3),PNH=BN21 : <<--RD1:PE11(L1),PNH=BN11 | | <<--RD1:PE11(L3),PNH=BN21 : <<--RD1:PE11(L1),PNH=BN11 |
| transport-target:0:100 : transport-target:0:100 | BGP | transport-target:0:100 : transport-target:0:100 |
| : | Classful | : | BGP CT
| <<--RD2:PE11(L4),PNH=BN21 : <<--RD2:PE11(L2),PNH=BN11 | Transport | <<--RD2:PE11(L4),PNH=BN21 : <<--RD2:PE11(L2),PNH=BN11 |
| transport-target:0:200 : transport-target:0:200 | | transport-target:0:200 : transport-target:0:200 |
| ^^^^^^^^^^^^^^^^^^^^^^ ^^^ | | ^^^^^^^^^^^^^^^^^^^^^^ ^^^ |
'-- 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
Figure 1: BGP CT Overview with Example Topology Figure 1: BGP CT Overview with Example Topology
To achieve end-to-end "Intent-Driven Service Mapping", this document To achieve end-to-end "Intent Driven Service Mapping", this document
defines the following constructs and BGP extensions: defines the following constructs and BGP extensions:
* The "Transport Class" construct (see Section 4) to group underlay * The "Transport Class" construct (see Section 4) to group underlay
tunnels. tunnels.
* The "Resolution Scheme" construct (see Section 5) for overlay * The "Resolution Scheme" construct (see Section 5) for overlay
routes with Mapping Communities to resolve NH reachability from routes with Mapping Communities to resolve NH reachability from
either one or an ordered set of Transport Classes. either one or an ordered set of Transport Classes.
* The "BGP Classful Transport" (see Section 6) address family to * The "BGP Classful Transport" (see Section 6) address family to
extend these constructs to adjacent domains. extend these constructs to adjacent domains.
Figure 1 depicts the intra-AS and inter-AS application of these Figure 1 depicts the intra-AS and inter-AS application of these
constructs. Interactions between SN1 and PE11 describe the Intra-AS constructs. Interactions between SN1 and PE11 describe the intra-AS
usage. Interactions between PE21 and PE11 describe the Inter-AS usage. Interactions between PE21 and PE11 describe the inter-AS
usage. usage.
The example topology is an Inter-AS option C network (Section 10 of The example topology is an inter-AS option C network (Section 10 of
[RFC4364]) with two AS domains; each domain contains tunnels serving [RFC4364]) with two AS domains; each domain contains tunnels serving
two Intents, e.g., 'low-latency' denoted by color 100 and 'high- two Intents, e.g., 'low-latency' denoted by color 100 and 'high-
bandwidth' denoted by color 200. AS1 is an RSVP-TE network; AS2 is bandwidth' denoted by color 200. AS1 is an RSVP-TE network; AS2 is
an SRTE network. BGP CT and BGP LU are transport families used an SRTE network. BGP CT and BGP LU are transport families used
between the two AS domains. IP1, IP2, and IP3 are service prefixes between the two AS domains. IP1, IP2, and IP3 are service prefixes
(AFI/SAFI: 1/1) behind egress PE11. (AFI/SAFI: 1/1) behind egress PE11.
PE21, SN11, and PE11 are the SNs in this network. SN11 is an ingress 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 PE with intra-domain reachability to PE11. PE21 is an ingress PE
with inter-domain reachability to PE11. with inter-domain reachability to PE11.
skipping to change at line 534 skipping to change at line 534
The tunneling mechanisms are made "Transport Class" aware. They The tunneling mechanisms are made "Transport Class" aware. They
publish their underlay tunnels for a Transport Class into an publish their underlay tunnels for a Transport Class into an
associated TRDB (see Section 4.2). In Figure 1, RSVP-TE publishes associated TRDB (see Section 4.2). In Figure 1, RSVP-TE publishes
its underlay tunnels into TRDBs created for Transport Classes 100 and its underlay tunnels into TRDBs created for Transport Classes 100 and
200 at BN11 and SN11 within AS1; Similarly, SR-TE publishes its 200 at BN11 and SN11 within AS1; Similarly, SR-TE publishes its
underlay tunnels into TRDBs created for Transport Classes 100 and 200 underlay tunnels into TRDBs created for Transport Classes 100 and 200
at PE21 within AS2. at PE21 within AS2.
Resolution Schemes are used to realize Intent. A Resolution Scheme Resolution Schemes are used to realize Intent. A Resolution Scheme
is identified by its "Mapping Community" and contains an ordered list is identified by its "Mapping Community" and contains an ordered list
of transport classes. Overlay routes carry an indication of the of Transport Classes. Overlay routes carry an indication of the
desired Intent using a BGP community, which assumes the role of desired Intent using a BGP community, which assumes the role of
"Mapping Community". "Mapping Community".
Egress SN "PE11" advertises service routes with desired Mapping Egress SN "PE11" advertises service routes with desired Mapping
Community, e.g., color:0:100. Community, e.g., color:0:100.
For the Intra-AS case, SN1 maps this intra-AS route on RSVP-TE 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 tunnels with TC ID 100 by using the Resolution Scheme for
color:0:100. color:0:100.
For the Inter-AS case, the underlay route in a TRDB is advertised in 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 BGP to extend an underlay tunnel to adjacent domains. A new BGP
transport family called "BGP Classful Transport", also known as BGP 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 CT (AFI/SAFIs 1/76, 2/76), is defined for this purpose. BGP CT makes
it possible to advertise multiple tunnels to the same destination it possible to advertise multiple tunnels to the same destination
address, thus avoiding the need for multiple loopbacks on the eSN. address, thus avoiding the need for multiple loopbacks on the eSN.
The BGP CT address family carries transport prefixes across tunnel 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" (AFI/SAFIs 1/4 or 2/4). It disseminates "Transport Class"
information for the transport prefixes across the participating information for the transport prefixes across the participating
domains while avoiding the need of per-transport class loopback. domains while avoiding the need of per-TC loopback. This is not
This is not possible with BGP LU without using per-color loopback. possible with BGP LU without using per-color loopback. This
This dissemination makes the end-to-end network a "Transport Class" dissemination makes the end-to-end network a "Transport Class" aware
aware tunneled network. tunneled network.
In Figure 1, BGP CT routes are originated at BN11 in AS1 with NH In Figure 1, BGP CT routes are originated at BN11 in AS1 with NH
"self" towards BN21 in AS2 to extend available RSVP-TE tunnels for "self" towards BN21 in AS2 to extend available RSVP-TE tunnels for
Transport Classes 100 and 200 in AS1. BN21 propagates these routes Transport Classes 100 and 200 in AS1. BN21 propagates these routes
with NH "self" to PE21, which resolves the BGP CT routes over SRTE with NH "self" to PE21, which resolves the BGP CT routes over SRTE
tunnels belonging to same transport class, thus forming a BGP CT tunnels belonging to same Transport Class, thus forming a BGP CT
tunnel for each TC ID at PE21. tunnel for each TC ID at PE21.
PE21 maps the Inter-AS service routes received with color:0:100 from 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 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 for color:0:100. Note that this procedure is same as that followed
by SN1 in the Intra-AS case. by SN1 in the intra-AS case.
The following text illustrates how CT architecture provides tiered The following text illustrates how CT architecture provides tiered
fallback options at a per-route granularity. Figure 1 shows the fallback options at a per-route granularity. Figure 1 shows the
Resolution Schemes in use, which make the following NH resolution Resolution Schemes in use, which make the following NH resolution
happen at SN11 (Intra-AS) and PE21 (Inter-AS) for the service routes happen at SN11 (intra-AS) and PE21 (inter-AS) for the service routes
of prefixes IP1, IP2, and IP3: of prefixes IP1, IP2, and IP3:
* Resolve IP1 NH over available tunnels in TRDB for Transport Class * Resolve IP1 NH over available tunnels in TRDB for Transport Class
100 with fallback to TRDB for best effort. 100 with fallback to TRDB for best effort.
* Resolve IP2 NH over available tunnels in TRDB for Transport Class * Resolve IP2 NH over available tunnels in TRDB for Transport Class
200 with fallback to TRDB for best effort. 200 with fallback to TRDB for best effort.
* Resolve IP3 NH over available tunnels in TRDB for Transport Class * Resolve IP3 NH over available tunnels in TRDB for Transport Class
100 with fallback to TRDB for Transport Class 200. 100 with fallback to TRDB for Transport Class 200.
skipping to change at line 619 skipping to change at line 619
attributes. Creation of a Transport Class instantiates its attributes. Creation of a Transport Class instantiates its
corresponding TRDB and Resolution Schemes on that node. corresponding TRDB and Resolution Schemes on that node.
All nodes within a domain agree on a common Transport Class ID All nodes within a domain agree on a common Transport Class ID
namespace. However, two cooperating domains may not always agree on namespace. However, two cooperating domains may not always agree on
the same namespace. Procedures to manage differences in Transport the same namespace. Procedures to manage differences in Transport
Class ID namespaces between cooperating domains are specified in Class ID namespaces between cooperating domains are specified in
Section 11.2.2. Section 11.2.2.
Transport Class ID conveys the Color of tunnels in a Transport Class. Transport Class ID conveys the Color of tunnels in a Transport Class.
The terms "Transport Class ID" and "Color" are used interchangeably The terms 'Transport Class ID' and 'Color' are used interchangeably
in this document. in this document.
4.1. Classifying TE Tunnels 4.1. Classifying TE Tunnels
TE tunnels can be classified into a Transport Class based on the TE 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 tunneling protocols exist, their TE attributes and characteristics
may not be equal but sufficiently similar. Some examples of such may not be equal but sufficiently similar. Some examples of such
classifications are as follows: classifications are as follows:
* Tunnels (RSVP-TE, IGP FLEX-ALGO, SR-TE) that support latency * Tunnels (RSVP-TE, IGP Flex-Algo, SR-TE) that support latency
sensitive routing. sensitive routing.
* RSVP-TE tunnels that only go over admin-group with Green links. * RSVP-TE tunnels that only go over admin-group with Green links.
* Tunnels (RSVP-TE, SR-TE) that offer FRR. * Tunnels (RSVP-TE, SR-TE) that offer FRR.
* Tunnels (RSVP-TE, SR-TE) that share resources in the network based * Tunnels (RSVP-TE, SR-TE) that share resources in the network based
on Shared Risk Link Groups defined by TE policy. on Shared Risk Link Groups defined by TE policy.
* Tunnels (RSVP-TE, SR-TE, BGP CT) that avoid certain nodes in the * Tunnels (RSVP-TE, SR-TE, BGP CT) that avoid certain nodes in the
skipping to change at line 655 skipping to change at line 655
An operator may configure an SN/BN to classify a tunnel into an 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 Transport Class aware is implementation specific and outside the
scope of this document. scope of this document.
When a tunnel is made Transport Class aware, it causes the Tunnel 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 Class. These routes are used to resolve overlay routes, including
BGP CT. The BGP CT routes may be further readvertised to adjacent BGP CT. The BGP CT routes may be further readvertised to adjacent
domains to extend these tunnels. While readvertising BGP CT routes, domains to extend these tunnels. While readvertising BGP CT routes,
the "Transport Class" identifier is encoded as part of the Transport the "Transport Class ID" is encoded as part of the Transport Class
Class RT, which is a new Route Target extended community defined in RT, which is a new Route Target extended community defined in
Section 4.3. Section 4.3.
An SN/BN receiving the transport routes via BGP with sufficient An 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 with the corresponding Transport Class. For those tunnel routes with the corresponding Transport Class. For
example, in BGP CT family routes, the Transport Class RT indicates example, in BGP CT family routes, the Transport Class RT indicates
the Transport Class. For BGP LU family routes, import processing the Transport Class. For BGP LU family routes, import processing
based on communities or Inter-AS source-peer may be used to place the based on communities or inter-AS source-peer may be used to place the
route in the desired Transport Class. route in the desired Transport Class.
When the tunnel route is received via [RFC9830] with "Color:Endpoint" When the tunnel route is received via [RFC9830] with "Color:Endpoint"
as the NLRI that encodes the Transport Class as an integer 'Color' in as the NLRI that encodes the Transport Class as an integer 'Color' in
its Policy Color field, the 'Color' is mapped to a Transport Class its Policy Color field, the 'Color' is mapped to a Transport Class
during the import processing. The SRTE tunnel route for this during the import processing. The SRTE tunnel route for this
'Endpoint' is installed in the corresponding TRDB. The SRTE tunnel 'Endpoint' is installed in the corresponding TRDB. The SRTE tunnel
will be extended by a BGP CT advertisement with NLRI 'RD:Endpoint', will be extended by a BGP CT advertisement with NLRI RD:EP, Transport
Transport Class RT, and a new label. The MPLS swap route thus Class RT, and a new label. The MPLS swap route thus installed for
installed for the new label will pop the label and forward the the new label will pop the label and forward the decapsulated traffic
decapsulated traffic into the path determined by the SRTE route for into the path determined by the SRTE route for further encapsulation.
further encapsulation.
[PCEP-SRPOLICY] extends the Path Computation Element Communication [PCEP-SRPOLICY] extends the Path Computation Element Communication
Protocol (PCEP) to signal attributes of an SR Policy that include Protocol (PCEP) to signal attributes of an SR Policy that include
Color. This Color is mapped to a Transport Class thus associating Color. This Color is mapped to a Transport Class thus associating
the SR Policy with the desired Transport Class. the SR Policy with the desired Transport Class.
Similarly, [PCEP-RSVP-COLOR] extends PCEP to carry the Color Similarly, [PCEP-RSVP-COLOR] extends PCEP to carry the Color
attribute for its use with RSVP-TE LSPs. This Color is mapped to a attribute for its use with RSVP-TE LSPs. This Color is mapped to a
Transport Class thus associating the RSVP-TE LSP with the desired Transport Class thus associating the RSVP-TE LSP with the desired
Transport Class. Transport Class.
skipping to change at line 706 skipping to change at line 705
representing the core transport region. representing the core transport region.
An implementation may realize the TRDB as a "Routing Table" referred An implementation may realize the TRDB as a "Routing Table" referred
to in Section 9.1.2.1 of [RFC4271], which is used only for resolving to in Section 9.1.2.1 of [RFC4271], which is used only for resolving
NH reachability in the control plane. An implementation may choose a NH reachability in the 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 adhering to the procedures defined in this document. The tunnel
routes in a TRDB require no footprint in the forwarding plane unless routes in a TRDB require no footprint in the forwarding plane unless
they are used to resolve an NH. they are used to resolve an NH.
SNs or BNs originate routes for the "Classful Transport" address SNs or BNs originate routes for the BGP CT address family from the
family from the TRDB. These routes have "RD:Endpoint" in the NLRI, TRDB. These routes have RD:EP in the NLRI, carry a Transport Class
carry a Transport Class RT, and an MPLS label or equivalent RT, and an MPLS label or equivalent identifier in different
identifier in different forwarding architecture. "Classful forwarding architecture. BGP CT family routes received with
Transport" family routes received with Transport Class RT are Transport Class RT are installed into their respective TRDB.
installed into their respective TRDB.
4.3. "Transport Class" Route Target Extended Community 4.3. Transport Class Route Target
This section defines a new type of Route Target called a "Transport This section defines a new type of Route Target called a "Transport
Class" Route Target extended community (also known as a "Transport Class Route Target extended community" (also known as a "Transport
Target"). The procedures for use of this extended community with BGP Class RT"). The procedures for use of this extended community with
CT routes (AFI/SAFI: 1/76 or 2/76) are described below. BGP CT routes (AFI/SAFI: 1/76 or 2/76) are described below.
The "Transport Class" Route Target extended community is a transitive The Transport Class RT is a transitive extended community [RFC4360]
extended community [RFC4360] of extended type, which has the format of extended type, which has the format as shown in Figure 2.
as shown in Figure 2.
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: "Transport Class" Route Target Extended Community Figure 2: Transport Class RT
Type: A 1-octet field that MUST be set to 0xa to indicate 'Transport Type: A 1-octet field that MUST be set to 0xa to indicate 'Transport
Class'. Class'.
SubType: A 1-octet field that MUST be set to 0x2 to indicate 'Route SubType: A 1-octet field that MUST be set to 0x2 to indicate 'Route
Target'. Target'.
Reserved: A 2-octet reserved bits field. Reserved: A 2-octet reserved bits field.
This field MUST be set to zero on transmission. This field MUST be set to zero on transmission.
This field SHOULD be ignored on reception and MUST be left This field SHOULD be ignored on reception and MUST be left
unaltered. unaltered.
Transport Class ID: This field is encoded in 4 octets. Transport Class ID: This field is encoded in 4 octets.
This field contains the "Transport Class" identifier, which is an This field contains the "Transport Class ID", which is an unsigned
unsigned 32-bit integer. 32-bit integer.
This document reserves the Transport class ID value 0 to represent This document reserves the Transport Class ID value 0 to represent
the "Best-Effort Transport Class ID". the "Best-Effort Transport Class ID".
A "Transport Class" Route Target extended community with TC ID 100 is A Transport Class RT with TC ID 100 is denoted as "transport-
denoted as "transport-target:0:100". target:0:100".
The VPN route import/export mechanisms specified in BGP/MPLS IP VPNs The VPN route import/export mechanisms specified in BGP/MPLS IP VPNs
(see [RFC4364]) and the Constrained Route Distribution mechanisms (see [RFC4364]) and the Constrained Route Distribution mechanisms
specified in Route Target Constrain (see [RFC4684]) are applied using specified in Route Target Constraint (see [RFC4684]) are applied
the Route Target extended community. These mechanisms are applied to using the Route Target extended community. These mechanisms are
BGP CT routes (AFI/SAFI: 1/76 or 2/76) using the "Transport Class applied to BGP CT routes (AFI/SAFI: 1/76 or 2/76) using the Transport
Route Target extended community". Class RT".
A BGP speaker that implements procedures described in this document A BGP speaker that implements procedures described in this document
and [RFC4684] MUST also apply the RTC procedures to the Transport and [RFC4684] MUST also apply the RTC procedures to the Transport
Class Route Target extended communities carried on BGP CT routes Class RT carried on BGP CT routes (AFI/SAFI: 1/76 or 2/76). An RTC
(AFI/SAFI: 1/76 or 2/76). An RTC route is generated for each Route route is generated for each Route Target imported by locally
Target imported by locally provisioned Transport Classes. provisioned Transport Classes.
Further, when processing RT membership NLRIs containing a Transport Further, when processing RT membership NLRIs containing a Transport
Class Route Target extended community received from external BGP Class RT received from external BGP peers, it is necessary to
peers, it is necessary to consider multiple External BGP (EBGP) paths consider multiple External BGP (EBGP) paths for a given RTC prefix
for a given RTC prefix for building the outbound route filter: not for building the outbound route filter: not just the best path. An
just the best path. An implementation MAY provide configuration to implementation MAY provide configuration to control how many EBGP RTC
control how many EBGP RTC paths are considered. paths are considered.
The Transport Class Route Target extended community is carried on BGP The Transport Class RT is carried on BGP CT family routes and is used
CT family routes and is used to associate them with appropriate TRDBs to associate them with appropriate TRDBs at receiving BGP speakers.
at receiving BGP speakers. The Transport Target is carried unaltered The Transport Class RT is carried unaltered on the BGP CT route
on the BGP CT route across BGP CT negotiated sessions except for across BGP CT negotiated sessions except for scenarios described in
scenarios described in Section 11.2.2. Implementations should Section 11.2.2. Implementations should provide policy mechanisms to
provide policy mechanisms to perform match, strip, or rewrite perform match, strip, or rewrite operations on a Transport Class RT
operations on a Transport Target just like any other BGP community. just like any other BGP community.
Defining a new type code for the Transport Class Route Target Defining a new type code for the Transport Class RT avoids
extended community avoids conflicting with any VPN Route Target conflicting with any VPN Route Target assignments already in use for
assignments already in use for service families. service families.
This document also reserves the Non-Transitive version of the This document also reserves the non-transitive version of the
Transport Class extended community (see Section 13.2.1.1.2) for Transport Class RT (see Section 13.2.1.1.2) for future use. The non-
future use. The "Non-Transitive Transport Class" Route Target transitive Transport Class RT is not used. If received, it is
extended community is not used. If received, it is considered considered equivalent in functionality to the transitive Transport
equivalent in functionality to the Transitive Transport Class Route Class RT, except for the difference in Transitive bit flag.
Target extended community, except for the difference in Transitive
bit flag.
5. Resolution Scheme 5. Resolution Scheme
A Resolution Scheme is a construct that consists of a specific TRDB 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. Community in the route.
Resolution Schemes enable a BGP speaker to resolve NH reachability Resolution Schemes enable a BGP speaker to resolve NH reachability
for overlay routes over the appropriate underlay tunnels within the for overlay routes over the appropriate underlay tunnels within the
scope of the TRDBs. Longest Prefix Match (LPM) of the NH is scope of the TRDBs. Longest Prefix Match (LPM) of the NH is
performed within the identified TRDB. performed within the identified TRDB.
An implementation may provide an option for the overlay route to 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. over a primary Transport Class fail.
To accomplish this, the "Resolution Scheme" is configured with the 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 Classes. Two Resolution Schemes are considered equivalent in Intent
if they consist of the same ordered set of TRDBs. if they consist of the same ordered set of TRDBs.
Operators must ensure that Resolution Schemes for a mapping community Operators must ensure that Resolution Schemes for a Mapping Community
are provisioned consistently on various nodes participating in a BGP are provisioned consistently on various nodes participating in a BGP
CT network based on desired Intent and transport classes available in CT network based on desired Intent and Transport Classes available in
that domain. that domain.
5.1. Mapping Community 5.1. Mapping Community
A "Mapping Community" is used to signal the desired Intent on an 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
NH. NH.
A Mapping Community is a "role" and not a new type of community; any A Mapping Community is a "role" and not a new type of community; any
BGP Community Carrying Attribute (e.g., Community or Extended BGP Community Carrying Attribute (e.g., Community or Extended
Community) may play this role in addition to the other roles it may Community) may play this role in addition to the other roles it may
already be playing. For example, the Transport Class Route Target already be playing. For example, the Transport Class RT plays a dual
extended community plays a dual role: as Route Target and a Mapping role: as Route Target and a Mapping Community.
Community.
Operator provisioning ensures that the ingress and egress SNs agree 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. Community.
A Mapping Community maps to exactly one Resolution Scheme at a A Mapping Community maps to exactly one Resolution Scheme at a
receiving BGP speaker. An implementation SHOULD allow the receiving BGP speaker. An implementation SHOULD allow the
association of multiple Mapping Communities to a Resolution Scheme. association of multiple Mapping Communities to a Resolution Scheme.
This helps with renumbering and migration scenarios. This helps with renumbering and migration scenarios.
An example of a mapping community is "color:0:100", described in An example of a Mapping Community is a Color extended community
[RFC9012], or the "transport-target:0:100" described in Section 4.3. "color:0:100", described in [RFC9012], or the "transport-
target:0:100" described in Section 4.3.
The first community on the overlay route that matches a Mapping 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 effective Mapping Community for the route. The Resolution Scheme
thus found is used when resolving the route's PNH. If a route thus found is used when resolving the route's PNH. If a route
contains more than one Mapping Community, it indicates that the route contains more than one Mapping Community, it indicates that the route
considers these distinct Mapping Communities as equivalent in Intent. considers these distinct Mapping Communities as equivalent in Intent.
If more than one distinct Mapping Community on an overlay route map On an overlay route, if more than one Mapping Community exists that
to distinct Resolution Schemes with dissimilar Intents at a receiving map to distinct Resolution Schemes having dissimilar Intents at a
node, it is considered a configuration error. receiving node, it is considered a configuration error.
Since a route can carry multiple communities, but only a single 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 in to a route will map to the desired Resolution Scheme at each point in
the network. the network.
It should be noted that the Mapping Community role does not require It should be noted that the Mapping Community role does not require
applying Route Target Constrain procedures specified in [RFC4684]. applying Route Target Constraint procedures specified in [RFC4684].
6. BGP Classful Transport Family 6. BGP Classful Transport Family
The BGP Classful Transport (BGP CT) family uses the existing Address 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. Transport" that applies to both IPv4 and IPv6 AFIs.
The AFI/SAFI 1/76 MUST be negotiated as per the Multiprotocol The AFI/SAFI 1/76 MUST be negotiated as per the Multiprotocol
Extensions capability described in Section 8 of [RFC4760] to be able Extensions capability described in Section 8 of [RFC4760] to be able
to send and receive BGP CT routes for IPv4 endpoint prefixes. to send and receive BGP CT routes for IPv4 endpoint prefixes.
The AFI/SAFI 2/76 MUST be negotiated as per the Multiprotocol The AFI/SAFI 2/76 MUST be negotiated as per the Multiprotocol
Extensions capability described in Section 8 of [RFC4760] to be able Extensions capability described in Section 8 of [RFC4760] to be able
to send and receive BGP CT routes for IPv6 endpoint prefixes. to send and receive BGP CT routes for IPv6 endpoint prefixes.
6.1. NLRI Encoding 6.1. NLRI Encoding
The "Classful Transport" SAFI NLRI has the same encoding as specified The "Classful Transport" SAFI NLRI has the same encoding as specified
in Section 2 of [RFC8277]. in Section 2 of [RFC8277].
When the AFI/SAFI is 1/76, the Classful Transport NLRI Prefix When the AFI/SAFI is 1/76, the BGP CT NLRI Prefix consists of an
consists of an 8-byte RD followed by an IPv4 prefix. When AFI/SAFI 8-byte RD followed by an IPv4 prefix. When AFI/SAFI is 2/76, the BGP
is 2/76, the Classful Transport NLRI Prefix consists of an 8-byte RD CT NLRI Prefix consists of an 8-byte RD followed by an IPv6 prefix.
followed by an IPv6 prefix.
The procedures described for AFI/SAFIs 1/4 or 1/128 in Section 2 of The procedures described for AFI/SAFIs 1/4 or 1/128 in Section 2 of
[RFC8277] apply for AFI/SAFI 1/76 also. The procedures described for [RFC8277] apply for AFI/SAFI 1/76 also. The procedures described for
AFI/SAFIs 2/4 or 2/128 in Section 2 of [RFC8277] apply for AFI/SAFI AFI/SAFIs 2/4 or 2/128 in Section 2 of [RFC8277] apply for AFI/SAFI
2/76 also. 2/76 also.
BGP CT routes MAY carry multiple labels in the NLRI by negotiating BGP CT routes MAY carry multiple labels in the NLRI by negotiating
the Multiple Labels Capability as described in Section 2.1 of the Multiple Labels Capability as described in Section 2.1 of
[RFC8277]. [RFC8277].
Properties received on a Classful Transport route include the Properties received on a BGP CT route include the Transport Class RT,
Transport Class Route Target extended community, which is used to which is used to associate the route with the correct TRDBs on SNs
associate the route with the correct TRDBs on SNs and BNs in the and BNs in the network, and either an IPv4 or an IPv6 NH.
network, and either an IPv4 or an IPv6 NH.
6.2. Next Hop Encoding 6.2. Next Hop Encoding
When the length of the Next hop Address field is 4, the next hop When the length of the Next hop Address field is 4, the next hop
address is an IPv4 address. address is an IPv4 address.
When the length of the Next hop Address field is 16 (or 32), the next When the length of the Next hop Address field is 16 (or 32), the next
hop address is an IPv6 address (potentially followed by the link- hop address is an IPv6 address (potentially followed by the link-
local IPv6 address of the next hop). This follows Section 3 of local IPv6 address of the next hop). This follows Section 3 of
[RFC2545]. [RFC2545].
skipping to change at line 930 skipping to change at line 923
followed by the link-local VPN-IPv6 address of the next hop with an 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 of [RFC4659]. 8-octet RD set to zero). This follows Section 3.2.1.1 of [RFC4659].
When the length of the Next hop Address field is 12, the next hop When the length of the Next hop Address field is 12, the next hop
address is a VPN-IPv4 with 8-octet RD set to zero. address is a VPN-IPv4 with 8-octet RD set to zero.
If the length of the Next hop Address field contains any other If the length of the Next hop Address field contains any other
values, it is considered an error and is handled via BGP session values, it is considered an error and is handled via BGP session
reset as per Section 7.11 of [RFC7606]. reset as per Section 7.11 of [RFC7606].
6.3. Carrying Multiple Encapsulation Information 6.3. Carrying Multiple Types of Encapsulation Information
To ease interoperability between nodes supporting different 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. types of encapsulation information.
An MPLS Label is carried using the encoding in [RFC8277]. A node An MPLS label is carried using the encoding in [RFC8277]. A node
that does not support MPLS forwarding advertises the special label 3 that does not support MPLS forwarding advertises the special label 3
(Implicit NULL) in the MPLS Label field (see [RFC8277]). The (Implicit NULL) in the MPLS label field (see [RFC8277]). The
Implicit NULL label carried in BGP CT route indicates to a receiving Implicit NULL label carried in BGP CT route indicates to a receiving
node that it should not impose any BGP CT label for this route. node that it should not impose any BGP CT label for this route.
The SID information for SR with respect to the MPLS data plane is The SID information for SR with respect to the MPLS data plane is
carried as specified in the Prefix SID attribute defined as part of carried as specified in the Prefix-SID attribute defined as part of
Section 3 of [RFC8669]. Section 3 of [RFC8669].
The SID information for SR with respect to SRv6 data plane is carried The SID information for SR with respect to SRv6 data plane is carried
as specified in Section 7.13. as specified in Section 7.13.
UDP tunneling information is carried using the Tunnel Encapsulation UDP tunneling information is carried using the Tunnel Encapsulation
Attribute as specified in [RFC9012]. Attribute as specified in [RFC9012].
6.4. Comparison with Other Families Using Encoding from RFC 8277 6.4. Comparison with Other Families Using Encoding from RFC 8277
AFI/SAFI 1/128 (MPLS-labeled VPN address) is a family encoded using AFI/SAFI 1/128 (L3VPN) is a family encoded using [RFC8277] that
[RFC8277] that carries service prefixes in the NLRI, where the carries service prefixes in the NLRI, where the prefixes come from
prefixes come from the customer namespaces and are contextualized the customer namespaces and are contextualized into separate user
into separate user virtual service RIBs called VRFs as per [RFC4364]. virtual service RIBs called VRFs as per [RFC4364].
AFI/SAFI 1/4 (BGP LU) is a family encoded using [RFC8277] that AFI/SAFI 1/4 (BGP LU) is a family encoded using [RFC8277] that
carries transport prefixes in the NLRI, where the prefixes come from carries transport prefixes in the NLRI, where the prefixes come from
the provider namespace. the provider namespace.
AFI/SAFI 1/76 (Classful Transport SAFI) is a family encoded using AFI/SAFI 1/76 (BGP CT) is a family encoded using [RFC8277] that
[RFC8277] that carries transport prefixes in the NLRI, where the carries transport prefixes in the NLRI, where the prefixes come from
prefixes come from the provider namespace and are contextualized into the provider namespace and are contextualized into separate TRDB,
separate TRDB, following mechanisms similar to [RFC4364] procedures. following mechanisms similar to [RFC4364] procedures.
It is worth noting that AFI/SAFI 1/128 has been used to carry 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 [RFC4364], where BGP LU/LDP prefixes in CsC defined in Section 10 of [RFC4364], where BGP LU/LDP prefixes in CsC
VRF are advertised in AFI/SAFI 1/128 towards the remote-end client VRF are advertised in AFI/SAFI 1/128 towards the remote-end client
carrier. carrier.
In this document, SAFI 76 (BGP CT) is used instead of reusing SAFI In this document, SAFI 76 (CT) is used instead of reusing SAFI 128
128 (L3VPN) for AFIs 1 or 2 to carry these transport routes because (L3VPN) for AFIs 1 or 2 to carry these transport routes because it is
it is operationally advantageous to segregate transport and service operationally advantageous to segregate transport and service
prefixes into separate address families. For example, such an prefixes into separate address families. For example, such an
approach allows operators to safely enable a "per-prefix" label- approach allows operators to safely enable a "per-prefix" label-
allocation scheme for Classful Transport prefixes, typically with a allocation scheme for BGP CT prefixes, typically with a number of
number of routes in the hundreds of thousands or less, without routes in the hundreds of thousands or less, without affecting SAFI
affecting SAFI 128 service prefixes, which may represent millions of 128 service prefixes, which may represent millions of routes at the
routes at the time of writing. The "per-prefix" label-allocation time of writing. The "per-prefix" label-allocation scheme localizes
scheme localizes routing churn during topology changes. routing churn during topology changes.
Service routes continue to be carried in their existing AFI/SAFIs 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 ), Virtual Private LAN Service (VPLS) (AFI/ EVPN (AFI/SAFI: 25/70 ), Virtual Private LAN Service (VPLS) (AFI/
SAFI: 25/65), or Internet (AFI/SAFI: 1/1 or 2/1). These service SAFI: 25/65), or Internet (AFI/SAFI: 1/1 or 2/1). These service
routes can resolve over BGP CT (AFI/SAFI: 1/76 or 2/76) transport routes can resolve over BGP CT (AFI/SAFI: 1/76 or 2/76) transport
routes. routes.
A new SAFI 76 for AFI 1 and AFI 2 also facilitates having a different A new SAFI 76 for AFI 1 and AFI 2 also facilitates having a different
distribution path of the transport family routes in a network than distribution path of the transport family routes in a network than
the service route distribution path. Service routes (Inet-VPN SAFI the service route distribution path. Service routes (SAFI 128) are
128) are exchanged over an EBGP multihop session between ASes with exchanged over an EBGP multihop session between ASes with the NH
the NH unchanged; whereas Classful Transport routes (SAFI 76) are unchanged; whereas BGP CT routes (SAFI 76) are advertised over EBGP
advertised over EBGP single-hop sessions with a "NH self" rewrite single-hop sessions with a "NH self" rewrite over inter-AS links.
over inter-AS links.
The BGP CT SAFI 76 for AFI 1 and 2 is conceptually similar to BGP LU 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 is SAFI 4 in that it carries transport prefixes. The only difference is
that it also carries in a Route Target an indication of which 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 message. UPDATE message.
7. Protocol Procedures 7. Protocol Procedures
This section summarizes the procedures followed by various nodes This section summarizes the procedures followed by various nodes
speaking Classful Transport family. speaking BGP CT family.
7.1. Preparing the Network to Deploy Classful Transport Planes 7.1. Preparing the Network to Deploy Classful Transport Planes
It is the responsibility of the operators to decide the Transport It is the responsibility of the operators to decide the Transport
Classes to enable and use in their network. They are also expected Classes to enable and use in their network. They are also expected
to allocate a Transport Class Route Target to identify each Transport to allocate a Transport Class RT to identify each Transport Class.
Class.
Operators configure the Transport Classes on the SNs and BNs in the Operators configure the Transport Classes on the SNs and BNs in the
network with Transport Class Route Targets and appropriate Route network with Transport Class RTs and appropriate Route
Distinguishers. Distinguishers.
Implementations MAY provide automatic generation and assignment of Implementations MAY provide automatic generation and assignment of
RD, RT values. They MAY also provide a way to manually override the RD, RT values. They MAY also provide a way to manually override the
automatic mechanism in order to deal with any conflicts that may automatic mechanism in order to deal with any conflicts that may
arise with existing RD, RT values in different network domains arise with existing RD, RT values in different network domains
participating in the deployment. participating in the deployment.
7.2. Originating Classful Transport Routes 7.2. Originating BGP CT Routes
BGP CT routes are sent only to BGP peers that have negotiated the BGP CT routes are sent only to BGP peers that have negotiated the
Multiprotocol Extensions capability described in Section 8 of Multiprotocol Extensions capability described in Section 8 of
[RFC4760] to be able to send and receive BGP CT routes. [RFC4760] to be able to send and receive BGP CT routes.
At the ingress node of the tunnel's home domain, the tunneling At the ingress node of the tunnel's home domain, the tunneling
protocols install tunnel routes in the TRDB associated with the protocols install tunnel routes in the TRDB associated with the
Transport Class to which the tunnel belongs. Transport Class to which the tunnel belongs.
The egress node of the tunnel, i.e., the tunnel endpoint (EP), The egress node of the tunnel, i.e., the tunnel endpoint (EP),
originates the BGP CT route with RD:EP in the NLRI, a Transport Class originates the BGP CT route with RD:EP in the NLRI, a Transport Class
RT, and a PNH as the EP. This BGP CT route will be resolved over the RT, and the PNH as the EP. This BGP CT route will be resolved over
tunnel route in TRDB at the ingress node. When the tunnel is up, the the tunnel route in TRDB at the ingress node. When the tunnel is up,
Classful Transport BGP route will become usable and get readvertised the Classful Transport BGP route will become usable and get
by the ingress node to BGP peers in neighboring domains. readvertised by the ingress node to BGP peers in neighboring domains.
Alternatively, the ingress node of the tunnel, which is also an ASBR/ 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 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 tunnel destination with RD:EP in the NLRI, attaching a Transport
Class Route Target that identifies the Transport Class. This BGP CT Class Route Target that identifies the Transport Class. This BGP CT
route is advertised to EBGP peers and IBGP peers in neighboring route is advertised to EBGP peers and IBGP peers in neighboring
domains. domains.
This originated route SHOULD NOT be advertised to the IBGP core that This originated route SHOULD NOT be advertised to the IBGP core that
contains the tunnel. This may be implemented by mechanisms such as contains the tunnel. This may be implemented by mechanisms such as
policy configuration. The impact of not prohibiting such policy configuration. The impact of not prohibiting such
advertisements is outside the scope of this document. advertisements is outside the scope of this document.
A unique RD SHOULD be used by the originator of a Classful Transport A unique RD SHOULD be used by the originator of a BGP CT route to
route to disambiguate the multiple BGP advertisements for a transport disambiguate the multiple BGP advertisements for a transport
endpoint. An administrator may use duplicate RDs based on local endpoint. An administrator may use duplicate RDs based on local
choice, understanding the impact on path diversity and choice, understanding the impact on path diversity and
troubleshooting, as described in Section 10.2. troubleshooting, as described in Section 10.2.
7.3. Processing Classful Transport Routes by Ingress Nodes 7.3. Processing BGP CT Routes by Ingress Nodes
Upon receipt of a BGP CT route with a PNH EP that is not directly 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 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. this route is to be mapped.
The resolution scheme for a Transport Class RT with Transport Class The Resolution Scheme for a Transport Class RT with Transport Class
ID "C1" contains the TRDB of a Transport Class with same ID. The ID "C1" contains the TRDB of a Transport Class with same ID. The
administrator MAY customize the resolution scheme for Transport Class administrator MAY customize the Resolution Scheme for Transport Class
ID "C1" to map to a different ordered list of TRDBs. If the 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. containing the Best-Effort TRDB is used.
The routes in the TRDBs associated with a selected resolution scheme The routes in the TRDBs associated with a selected Resolution Scheme
are used to resolve the received PNH EP. The order of TRDBs in the are used to resolve the received PNH EP. The order of TRDBs in the
resolution scheme is followed when resolving the received PNH, such Resolution Scheme is followed when resolving the received PNH, such
that a route in a backup TRDB is used only when a matching route was that a route in a backup TRDB is used only when a matching route was
not found for EP in the primary TRDBs preceding it. This achieves not found for EP in the primary TRDBs preceding it. This achieves
the fallback desired by the resolution scheme. the fallback desired by the Resolution Scheme.
If the resolution process does not find a matching route for the EP If the resolution process does not find a matching route for the 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 MUST be
considered unresolvable. (See Section 9.1.2.1 of [RFC4271].) considered unresolvable. (See Section 9.1.2.1 of [RFC4271].)
The received BGP CT route MUST be added to the TRDB corresponding to The received BGP CT route MUST be added to the TRDB corresponding to
the Transport Class ID "C1" if the transport class is provisioned the Transport Class ID "C1" if the TC is provisioned locally. This
locally. This step applies only if the Transport Class RT is step applies only if the Transport Class RT is received on a BGP CT
received on a BGP CT family route. The RD in the BGP CT NLRI prefix family route. The RD in the BGP CT NLRI prefix RD:EP is ignored when
RD:EP is ignored when the BGP CT route for EP is added to the TRDB so the BGP CT route for EP is added to the TRDB so that overlay routes
that overlay routes can resolve over this BGP CT tunnel route by can resolve over this BGP CT tunnel route by performing a lookup for
performing a lookup for the EP. Please note that a TRDB is a logical the EP. Please note that a TRDB is a logical database of tunnel
database of tunnel routes belonging to the same Transport Class ID; routes belonging to the same Transport Class ID; hence, it only uses
hence, it only uses the EP as the lookup key (without RD or TC ID). the EP as the lookup key (without RD or TC ID).
If no Mapping Community is found on a BGP CT route, the best-effort If no Mapping Community is found on a BGP CT route, the Best-Effort
resolution scheme is used to resolve the route's next hop, and the Resolution Scheme is used to resolve the route's next hop, and the
BGP CT route is not added to any TRDB. BGP CT route is not added to any TRDB.
7.4. Readvertising Classful Transport Route by Border Nodes 7.4. Readvertising BGP CT Route by Border Nodes
This section describes the MPLS label handling when readvertising a This section describes the MPLS label handling when readvertising a
BGP CT route with "NH self". When readvertising a BGP CT route with BGP CT route with "NH self". When readvertising a BGP CT route with
"NH self", a BN allocates an MPLS label to advertise upstream in the "NH self", a BN allocates an MPLS label to advertise upstream in the
Classful Transport NLRI. The BN also installs an MPLS route for that BGP CT NLRI. The BN also installs an MPLS route for that label that
label that swaps the incoming label with the label received from the swaps the incoming label with the label received from the downstream
downstream BGP speaker (or pops the incoming label if the label BGP speaker (or pops the incoming label if the label received from
received from the downstream BGP speaker was Implicit-NULL). The the downstream BGP speaker was Implicit NULL). The MPLS route then
MPLS route then pushes received traffic to the transport tunnel or pushes received traffic to the transport tunnel or direct interface
direct interface that the Classful Transport route's PNH resolved that the BGP CT route's PNH resolved over.
over.
The label SHOULD be allocated with "per-prefix" label-allocation The label SHOULD be allocated with "per-prefix" label-allocation
semantics. The IP prefix in the TRDB context (Transport-Class, IP- semantics. The IP prefix in the TRDB context (Transport Class, IP
prefix) is used as the key to "per-prefix" label allocation. This prefix) is used as the key to "per-prefix" label allocation. This
helps in avoiding BGP CT route churn throughout the CT network when helps in avoiding BGP CT route churn throughout the CT network when
an instability (e.g., link failure) is experienced in a domain. The an instability (e.g., link failure) is experienced in a domain. The
failure is not propagated further than the BN closest to the failure. failure is not propagated further than the BN closest to the failure.
If a different label-allocation mode is used, the impact on end-to- If a different label-allocation mode is used, the impact on end-to-
end convergence should be considered. end convergence should be considered.
The value of the advertised MPLS label is locally significant and is The value of the advertised MPLS label is locally significant and is
dynamic by default. A BN may provide an option to allocate a value dynamic by default. A BN may provide an option to allocate a value
from a statically provisioned range. This can be achieved using a from a statically provisioned range. This can be achieved using a
locally configured export policy or via mechanisms such as the ones locally configured export policy or via mechanisms such as the ones
described related to BGP Prefix-SID as described in BGP (see described related to BGP Prefix-SID as described in BGP (see
[RFC8669]). [RFC8669]).
7.5. Border Nodes Receiving Classful Transport Routes on EBGP 7.5. Border Nodes Receiving BGP CT Routes on EBGP
If a route is received with a PNH that is known to be directly If a route is received with a PNH that is known to be directly
connected (for example, an EBGP single-hop neighbor address), the 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. the inter-AS link can be used for any Transport Class.
If the inter-AS links need to honor Transport Class, then the BN MUST If the inter-AS links need to honor Transport Class, then the BN MUST
follow the procedures of an Ingress node (Section 7.3) and perform follow the procedures of an ingress node (Section 7.3) and perform
the next hop resolution process. In order to make the link Transport the next hop resolution process. In order to make the link Transport
Class aware, the route to the directly connected PNH is installed in Class aware, the route to the directly connected PNH is installed in
the TRDB belonging to the associated Transport Class. the TRDB belonging to the associated Transport Class.
7.6. Avoiding Path Hiding Through Route Reflectors 7.6. Avoiding Path Hiding Through Route Reflectors
When multiple instances of a given RD:EP exist with different When multiple instances of a given RD:EP exist with different
forwarding characteristics, BGP ADD-PATH (see [RFC7911]) is helpful. forwarding characteristics, BGP ADD-PATH (see [RFC7911]) is helpful.
When multiple BNs exist such that they advertise an "RD:EP" prefix to When multiple BNs exist such that they advertise an "RD:EP" prefix to
Route Reflectors (RRs), the RRs may hide all but one of the BNs, Route Reflectors (RRs), the RRs may hide all but one of the BNs,
unless BGP ADD-PATH (see [RFC7911]) is used for the Classful unless BGP ADD-PATH (see [RFC7911]) is used for the BGP CT family.
Transport family. This is similar to L3VPN Option B scenarios. This is similar to L3VPN inter-AS option B scenarios.
Hence, BGP ADD-PATH (see [RFC7911]) SHOULD be used for the Classful Hence, BGP ADD-PATH (see [RFC7911]) SHOULD be used for the BGP CT
Transport family to avoid path hiding through RRs so that the RR family to avoid path hiding through RRs so that the RR sends multiple
sends multiple CT routes for RD:EP to its clients. This improves the CT routes for RD:EP to its clients. This improves the convergence
convergence time when the path via one of the multiple BNs fails. time when the path via one of the multiple BNs fails.
7.7. Avoiding Loops Between Route Reflectors in Forwarding Paths 7.7. Avoiding Loops Between Route Reflectors in Forwarding Paths
A pair of redundant ABRs, each acting as an RR with the next hop set A pair of redundant ABRs, each acting as an RR with the next hop set
to itself, may choose each other as the best path instead of the to itself, may choose each other as the best path instead of the
upstream ASBR, causing a traffic-forwarding loop. upstream ASBR, causing a traffic-forwarding loop.
This problem can happen for routes of any BGP address family, This problem can happen for routes of any BGP address family,
including BGP CT and BGP LU. including BGP CT and BGP LU.
Using one or more of the approaches described in [BGP-FWD-RR] lowers Using one or more of the approaches described in [BGP-FWD-RR] lowers
the possibility of such loops in a network with redundant ABRs. the possibility of such loops in a network with redundant ABRs.
7.8. Ingress Nodes Receiving Service Routes with a Mapping Community 7.8. Ingress Nodes Receiving Service Routes with a Mapping Community
Upon receipt of a BGP service route (for example, AFI/SAFI: 1/1, 2/1) Upon receipt of a BGP service route (for example, AFI/SAFI: 1/1, 2/1)
with a PNH as the EP that is not directly connected (for example, an with a PNH as the EP that is not directly connected (for example, an
IBGP-route), a Mapping Community (for example, a Color Extended IBGP-route), a Mapping Community (for example, a 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. this route is to be mapped.
The resolution scheme for a Color Extended Community with Color "C1" The Resolution Scheme for a Color extended community with Color "C1"
contains a TRDB for a Transport Class with same ID followed by the contains a TRDB for a Transport Class with same ID followed by the
Best-Effort TRDB. The administrator MAY customize the resolution Best-Effort TRDB. The administrator MAY customize the 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. containing the Best-Effort TRDB is used.
If no Mapping Community was found on the overlay route, the "Best If no Mapping Community was found on the overlay route, the "Best
Effort" resolution scheme is used for resolving the route's next hop. Effort Resolution Scheme" is used for resolving the route's next hop.
This behavior is backward compatible to behavior of an implementation This behavior is backward compatible to behavior of an implementation
that does not follow procedures described in this document. that does not follow procedures described in this document.
The routes in the TRDBs associated with the selected resolution The routes in the TRDBs associated with the 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 route such that a route in a backup TRDB is used only when a matching route
was not found for the EP in the primary TRDBs preceding it. This was not found for the EP in the primary TRDBs preceding it. This
achieves the fallback desired by the resolution scheme. achieves the fallback desired by the Resolution Scheme.
If the resolution process does not find a Tunnel Route for the EP in If the resolution process does not find a Tunnel Route for the EP in
any of the Transport Route Databases, the service route MUST be any of the Transport Route Databases, the service route MUST be
considered unresolvable. (See Section 9.1.2.1 of [RFC4271]). considered unresolvable. (See Section 9.1.2.1 of [RFC4271]).
Note: For an illustration of above procedures in an MPLS network, Note: For an illustration of above procedures in an MPLS network,
refer to Section 8. refer to Section 8.
7.9. Best-Effort Transport Class 7.9. Best-Effort Transport Class
It is also possible to represent a 'Best-effort' SLA as a Transport It is also possible to represent a 'Best-Effort' SLA as a Transport
Class. At the time of writing, BGP LU is used to extend the best- Class. At the time of writing, BGP LU is used to extend the best-
effort intra-domain tunnels to other domains. effort intra-domain tunnels to other domains.
Alternatively, BGP CT may also be used to carry the best-effort 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 the "Best-Effort Transport Class ID". However, represent the "Best-Effort Transport Class ID". However,
implementations SHOULD provide configuration to use a different value implementations SHOULD provide configuration to use a different value
for this purpose. Procedures to manage differences in Transport for this purpose. Procedures to manage differences in Transport
Class ID namespaces between domains are provided in Section 11.2.2. Class ID namespaces between domains are provided in Section 11.2.2.
The "Best-Effort Transport Class ID" value is used in the "Transport The "Best-Effort Transport Class ID" value is used in the "Transport
Class ID" field of the Transport Route Target extended community that Class ID" field of the Transport Class RT that is attached to the BGP
is attached to the BGP CT route that advertises a best-effort tunnel CT route that advertises a best-effort tunnel endpoint. Thus, the RT
endpoint. Thus, the RT formed is called the "Best-Effort Transport formed is called the "Best-Effort Transport Class RT".
Class Route Target".
When a BN or SN receives a BGP CT route with Best-Effort Transport When a BN or SN receives a BGP CT route with Best-Effort Transport
Class Route Target as the mapping community, the Best-effort Class RT as the Mapping Community, the Best-Effort Resolution Scheme
resolution scheme is used for resolving the BGP next hop, and the is used for resolving the BGP next hop, and the resultant route is
resultant route is installed in the best-effort transport route installed in the best-effort transport route database. If no best-
database. If no best-effort tunnel was found to resolve the BGP next effort tunnel was found to resolve the BGP next hop, the BGP CT route
hop, the BGP CT route MUST be considered unusable and not be MUST be considered unusable and not be propagated further.
propagated further.
When a BGP speaker receives an overlay route without any explicit 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. document.
Implementations MAY provide configuration to selectively install BGP Implementations MAY provide configuration to selectively install BGP
CT routes to the Forwarding Information Base (FIB) to provide 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. domains.
7.10. Interaction with BGP Attributes Specifying Next Hop Address and 7.10. Interaction with BGP Attributes Specifying Next Hop Address and
Color Color
The Tunnel Encapsulation Attribute, described in [RFC9012], can be The Tunnel Encapsulation Attribute, described in [RFC9012], can be
used to request a specific type of tunnel encapsulation. This used to request a specific type of tunnel encapsulation. This
attribute may apply to BGP service routes or transport routes attribute may apply to BGP service routes or transport routes
including BGP Classful Transport family routes. including BGP CT family routes.
It should be noted that in such cases "Transport Class ID/Color" can 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 exist in multiple places on the same route, and a precedence order
needs to be established to determine which Transport Class the needs to be established to determine which Transport Class the
route's next hop should resolve over. This document specifies the route's next hop should resolve over. This document specifies the
following order of precedence with more-specific scoping of Color following order of precedence with more-specific scoping of Color
preferred to less-specific scoping: preferred to less-specific scoping:
* Color sub-TLV in the Tunnel Encapsulation Attribute. * Color sub-TLV in the Tunnel Encapsulation Attribute.
* Transport Target extended community on a BGP CT route. * Transport Class RT on a BGP CT route.
* Color Extended Community on a BGP service route. * Color extended community on a BGP service route.
Color specified in the Color sub-TLV in a TEA is a more-specific 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, in turn, is (Transport Class RT) 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). extended community).
Any BGP attributes or mechanisms defined in future that carry 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. order of precedence relative to the above.
7.11. Applicability to Flowspec Redirect-to-IP 7.11. Applicability to Flowspec Redirect-to-IP
Flowspec routes using redirect-to-IP next hop are described in Flowspec routes using redirect-to-IP next hop are described in
[FLOWSPEC-REDIR-IP]. [FLOWSPEC-REDIR-IP].
Such Flowspec BGP routes with redirect-to-IP next hop MAY be attached Such Flowspec BGP routes with redirect-to-IP next hop MAY be attached
with a Mapping Community (e.g., Color:0:100), which allows 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). satisfying the desired SLA (e.g., Transport Class color 100).
The Flowspec BGP family acts as just another service that can make The Flowspec BGP family acts as just another service that can make
use of the BGP CT architecture to achieve flow-based forwarding with use of the BGP CT architecture to achieve flow-based forwarding with
SLAs. SLAs.
7.12. Applicability to IPv6 7.12. Applicability to IPv6
BGP CT procedures apply equally to IPv4- and IPv6-enabled Intra-AS or BGP CT procedures apply equally to IPv4- and IPv6-enabled intra-AS or
Inter-AS Option A, B, and C networks. This section describes the inter-AS option A, B, and C networks. This section describes the
applicability of BGP CT to IPv6 at various layers. applicability of BGP CT to IPv6 at various layers.
A network that is BGP CT enabled supports IPv6 service families (for A network that is BGP CT enabled supports IPv6 service families (for
example, AFI/SAFI 2/1 or 2/128) and IPv6 transport signaling example, AFI/SAFI 2/1 or 2/128) and IPv6 transport signaling
protocols like SRTEv6, LDPv6, or RSVP-TEv6. protocols like SRTEv6, LDPv6, or RSVP-TEv6.
Procedures in this document also apply to a network with Pure IPv6 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. The BGP CTv6 family (AFI/SAFI: 2/76) is used to carry global links. The BGP CTv6 family (AFI/SAFI: 2/76) is used to carry global
IPv6 address tunnel endpoints in the NLRI. Service family routes IPv6 address tunnel endpoints in the NLRI. Service family routes
(for example, AFI/SAFI: 1/1, 2/1, 1/128, and 2/128) are also (for example, AFI/SAFI: 1/1, 2/1, 1/128, and 2/128) are also
advertised with those Global IPv6 addresses as next hop. advertised with those Global IPv6 addresses as next hop.
Procedures in this document also apply to a 6PE network with an IPv4 Procedures in this document also apply to a 6PE network with an IPv4
core, which uses MPLS forwarding for intra-domain tunnels and Inter- core, which uses MPLS forwarding for intra-domain tunnels and inter-
AS links. The BGP CTv6 family (AFI/SAFI: 2/76) is used to carry IPv4 AS links. The BGP CTv6 family (AFI/SAFI: 2/76) is used to carry IPv4
Mapped IPv6 address tunnel endpoints in the NLRI. IPv6 Service Mapped IPv6 address tunnel endpoints in the NLRI. IPv6 Service
family routes (for example, AFI/SAFI: 2/1, 2/128) are also advertised family routes (for example, AFI/SAFI: 2/1, 2/128) are also advertised
with those IPv4 Mapped IPv6 addresses as next hop. with those IPv4 Mapped IPv6 addresses as next hop.
The PE-CE attachment circuits may use IPv4 addresses only, IPv6 The PE-CE attachment circuits may use IPv4 addresses only, IPv6
addresses only, or both IPv4 and IPv6 addresses. addresses only, or both IPv4 and IPv6 addresses.
7.13. SRv6 Support 7.13. SRv6 Support
The BGP CT family (AFI/SAFI 2/76) may be used to set up inter-domain The BGP CT family (AFI/SAFI 2/76) may be used to set up inter-domain
tunnels of a certain Transport Class when using a Segment Routing 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 over IPv6 (SRv6) data plane on the inter-AS links or as an intra-AS
tunneling mechanism. tunneling mechanism.
Details of SRv6 Endpoint behaviors used by BGP CT and the procedures Details of SRv6 Endpoint behaviors used by BGP CT and the procedures
are specified and illustrated in a separate document (see are specified and illustrated in a separate document (see
[BGP-CT-SRv6]). As noted in that document, a BGP CT route update for [BGP-CT-SRv6]). As noted in that document, a BGP CT route update for
SRv6 includes a BGP attribute containing SRv6 SID information (e.g., SRv6 includes a BGP attribute containing SRv6 SID information (e.g.,
a BGP Prefix-SID [RFC9252]) with the Transposition scheme disabled. a BGP Prefix-SID [RFC9252]) with the Transposition Scheme disabled.
7.14. Error-Handling Considerations 7.14. Error-Handling Considerations
If a BGP speaker receives both Transitive and Non-Transitive (see If a BGP speaker receives both transitive and non-transitive (see
Section 13.2.1.1.1 and Section 13.2.1.1.2, respectievely) versions of Section 13.2.1.1.1 and Section 13.2.1.1.2, respectively) versions of
a Transport Class extended community on a route, only the Transitive a Transport Class extended community on a route, only the transitive
one is used. one is used.
If a BGP speaker considers a received "Transport Class" extended If a BGP speaker considers a received "Transport Class" extended
community (the Transitive or Non-Transitive version) or any other community (the transitive or non-transitive version) or any other
part of a BGP CT route invalid for some reason, but is able to part of a BGP CT route invalid for some reason, but is able to
successfully parse the NLRI and attributes, the treat-as-withdraw successfully parse the NLRI and attributes, the treat-as-withdraw
approach from [RFC7606] is used. The route is kept as Unusable, with approach from [RFC7606] is used. The route is kept as Unusable, with
appropriate diagnostic information, to aid troubleshooting. appropriate diagnostic information, to aid troubleshooting.
8. Illustration of BGP CT Procedures 8. Illustration of BGP CT Procedures
This section illustrates BGP CT procedures in an Inter-AS Option C This section illustrates BGP CT procedures in an inter-AS option C
MPLS network. MPLS network.
All illustrations in this document make use of IP address ranges as All illustrations in this document make use of IP address ranges as
described in [RFC6890]. The range 192.0.2.0/24 is used to represent described in [RFC6890]. The range 192.0.2.0/24 is used to represent
transport endpoints like loopback addresses. The range transport endpoints like loopback addresses. The range
203.0.113.0/24 is used to represent service route prefixes advertised 203.0.113.0/24 is used to represent service route prefixes advertised
in AFI/SAFIs: 1/1 or 1/128. in AFI/SAFIs: 1/1 or 1/128.
Though this section illustrates the use of IPv4, as described in Though this section illustrates the use of IPv4, as described in
Section 7.12, these procedures work equally for IPv6 as well. Section 7.12, these procedures work equally for IPv6 as well.
8.1. Reference Topology 8.1. Reference Topology
[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
Figure 3: Multi-Domain BGP CT Network Figure 3: Multi-Domain BGP CT Network
This example shows a provider MPLS network that consists of two ASes, This example shows a provider MPLS network that consists of two ASes,
AS1 and AS2, that serve customers AS3 and AS4, respectively. The AS1 and AS2, that serve customers AS3 and AS4, respectively. The
traffic direction being described is from CE41 to CE31. CE31 may traffic direction being described is from CE41 to CE31. CE31 may
request a specific SLA (mapped to Gold for this example), when request a specific SLA (mapped to Gold for this example), when
traversing these provider networks. traversing these provider networks.
AS2 is further divided into two regions. There are three tunnel AS2 is further divided into two regions. There are three tunnel
domains in the provider's space: domains in the provider's space:
skipping to change at line 1423 skipping to change at line 1411
The following tunnels exist for Bronze Transport Class: The following tunnels exist for Bronze Transport Class:
* PE25_to_ABR23_bronze - RSVP-TE tunnel * PE25_to_ABR23_bronze - RSVP-TE tunnel
* ABR23_to_ASBR21_bronze - RSVP-TE tunnel * ABR23_to_ASBR21_bronze - RSVP-TE tunnel
* ABR23_to_ASBR22_bronze - RSVP-TE tunnel * ABR23_to_ASBR22_bronze - RSVP-TE tunnel
* ABR24_to_ASBR21_bronze - RSVP-TE tunnel * ABR24_to_ASBR21_bronze - RSVP-TE tunnel
* ASBR13_to_PE12_bronze - ISIS FlexAlgo tunnel * ASBR13_to_PE12_bronze - ISIS Flex-Algo tunnel
* ASBR14_to_PE11_bronze - ISIS FlexAlgo tunnel * ASBR14_to_PE11_bronze - ISIS Flex-Algo tunnel
These tunnels are either provisioned or autodiscovered to belong to These tunnels are either provisioned or autodiscovered to belong to
Transport Class IDs 100 or 200. Transport Class IDs 100 or 200.
8.2. Service-Layer Route Exchange 8.2. Service Layer Route Exchange
Service nodes PE11 and PE12 negotiate service families (AFI: 1 and Service nodes PE11 and PE12 negotiate service families (AFI/SAFIs:
SAFIs 1, 128) on the BGP session with RR16. Service helpers RR16 and 1/1 and 1/128) on the BGP session with RR16. Service helpers RR16
RR26 exchange these service routes with the next hop unchanged over a and RR26 exchange these service routes with the next hop unchanged
multihop EBGP session between the two ASes. PE25 negotiates service over a multihop EBGP session between the two ASes. PE25 negotiates
families (AFI: 1 and SAFIs 1, 128) with RR26. service families (AFI/SAFIs: 1/1 and 1/128) with RR26.
The PEs see each other as the next hop in the BGP UPDATE message for The PEs see each other as the next hop in the BGP UPDATE message for
the service family routes. BGP ADD-PATH send and receive are enabled the service family routes. BGP ADD-PATH send and receive are enabled
on both directions on the EBGP multihop session between RR16 and RR26 on both directions on the EBGP multihop session between RR16 and RR26
for AFI:1 and SAFIs 1, 128. BGP ADD-PATH send is negotiated in the for AFI/SAFIs: 1/1 and 1/128. BGP ADD-PATH send is negotiated in the
RR to PE direction in each AS. This is to avoid the path-hiding RR to PE direction in each AS. This is to avoid the path-hiding
service routes at the RR, i.e., AFI/SAFI 1/1 routes advertised by service 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 both PE11 and PE12 or AFI/SAFI 1/128 routes originated by both PE11
and PE12 using the same RD. and PE12 using the same RD.
Forwarding happens using service routes installed at service nodes Forwarding happens using service routes installed at service nodes
PE25, PE11, and 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. present in any other nodes' FIB in the network.
As an example, CE31 advertises a route for prefix 203.0.113.31 with As an example, CE31 advertises a route for prefix 203.0.113.31 with
the next hop as itself to PE11 and PE12. CE31 can attach a Mapping the next hop as itself to PE11 and PE12. CE31 can attach a Mapping
Community Color:0:100 on this route to indicate its request for a Community color:0:100 on this route to indicate its request for a
Gold SLA. Or, PE11 can attach the same using locally configured Gold SLA. Or, PE11 can attach the same using locally configured
policies. policies.
Consider CE31 getting VPN service from PE11. The RD1:203.0.113.31 Consider CE31 getting VPN service from PE11. The RD1:203.0.113.31
route is readvertised in AFI/SAFI 1/128 by PE11 with the next hop set route is readvertised in AFI/SAFI 1/128 by PE11 with the next hop set
to itself (192.0.2.11) and label V-L1 to RR16 with the Mapping to itself (192.0.2.11) and label V-L1 to RR16 with the Mapping
Community Color:0:100 attached. RR16 advertises this route with the 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 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 hop unchanged. Now, PE25 can resolve the PNH 192.0.2.11 using
transport routes received in BGP CT or BGP LU. transport routes received in BGP CT or BGP LU.
Using BGP ADD-PATH, service routes advertised by PE11 and PE12 for 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/SAFIs: 1/1 and 1/128 reach PE25 via RR16, RR26 with the next hop
unchanged, as PE11 or PE12. unchanged, as PE11 or PE12.
The IP FIB at the PE25 VRF will have a route for 203.0.113.31 with a The IP FIB at the 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 the ingress
domain. domain.
8.3. Transport-Layer Route Propagation 8.3. Transport Layer Route Propagation
Egress nodes PE11 and PE12 negotiate a BGP CT family with transport Egress nodes PE11 and PE12 negotiate a BGP CT family with transport
ASBRs ASBR13 and ASBR14. These egress nodes originate BGP CT routes ASBRs ASBR13 and ASBR14. These egress nodes originate BGP CT routes
for tunnel endpoint addresses that are advertised as a next hop in for tunnel endpoint addresses that are advertised as a next hop in
BGP service routes. In this example, both PEs participate in BGP service routes. In this example, both PEs participate in
transport classes Gold and Bronze. The protocol procedures are Transport Classes Gold and Bronze. The protocol procedures are
explained using the Gold SLA transport plane; the Bronze SLA explained using the Gold SLA transport plane; the Bronze SLA
transport plane is used to highlight the path-hiding aspects. transport plane is used to highlight the path-hiding aspects.
For Gold tunnels, PE11 is provisioned with transport class 100, RD For Gold tunnels, PE11 is provisioned with Transport Class having TC
value 192.0.2.11:100, and a transport-target:0:100. For Bronze ID 100, RD value 192.0.2.11:100, and a transport-target:0:100. For
tunnels, PE11 is provisioned with Transport class 200, RD value Bronze tunnels, PE11 is provisioned with Transport Class 200, RD
192.0.2.11:200, and transport route target 0:200. Similarly, for value 192.0.2.11:200, and transport-target:0:200. Similarly, for
Gold tunnels, PE12 is provisioned with transport class 100, RD value Gold tunnels, PE12 is provisioned with Transport Class having TC ID
192.0.2.12:100, and a transport-target:0:100. For Bronze tunnels, 100, RD value 192.0.2.12:100, and a transport-target:0:100. For
PE12 is provisioned with transport class 200, RD value Bronze tunnels, PE12 is provisioned with Transport Class having TC ID
192.0.2.12:200, and transport-target:0:200. Note that, in this 200, RD value 192.0.2.12:200, and transport-target:0:200. Note that,
example, the BGP CT routes carry only the transport class route in this example, the BGP CT routes carry only the Transport Class RT
target and no IP address format route target. and no IP address format route target.
The RD value originated by an egress node is not modified by any BGP 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, 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). or set of originators (RD reused on multiple nodes).
Similarly, these transport classes are also configured on ASBRs, Similarly, these Transport Classes are also configured on ASBRs,
ABRs, and PEs with same Transport Route Target and unique RDs. ABRs, and PEs with same Transport Class RT and unique RDs.
ASBR13 and ASBR14 negotiate BGP CT family with transport ASBRs ASBR21 ASBR13 and ASBR14 negotiate BGP CT family with transport ASBRs ASBR21
and ASBR22 in neighboring ASes. ASBR21 and ASBR22 negotiate BGP CT and ASBR22 in neighboring ASes. ASBR21 and ASBR22 negotiate BGP CT
family with RR27 in region 2, which reflects BGP CT routes to ABR23 family with RR27 in region 2, which reflects BGP CT routes to ABR23
and ABR24. ABR23 and ABR24 negotiate BGP CT family with Ingress node and ABR24. ABR23 and ABR24 negotiate BGP CT family with ingress node
PE25 in region 1. The BGP LU family is also negotiated on these PE25 in region 1. The BGP LU family is also negotiated on these
sessions alongside the BGP CT family. The BGP LU family carries sessions alongside the BGP CT family. The BGP LU family carries
"best-effort" transport class routes; BGP CT carries Gold and Bronze Best-Effort Transport Class routes; BGP CT carries Gold and Bronze
transport class routes. Transport Class routes.
PE11 is provisioned to originate a BGP CT route for endpoint PE11, PE11 is provisioned to originate a BGP CT route for endpoint PE11,
with a 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 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 Route Target extended community transport-target:0:100. Label B-L0
can either be Implicit Null (Label 3) or a UHP label. can either be Implicit NULL (Label 3) or a UHP label.
This route is received by ASBR13 and it resolves over the tunnel 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, the next hop set to itself, and transport-target:0:100. Label B-L1, the next hop set to itself, and transport-target:0:100.
An MPLS swap route is installed at ASBR13 for B-L1 with a next hop An MPLS swap route is installed at ASBR13 for B-L1 with a next hop
pointing to ASBR13_to_PE11_gold tunnel. pointing to ASBR13_to_PE11_gold tunnel.
Similarly, ASBR14 also receives a BGP CT route for Similarly, ASBR14 also receives a BGP CT route for
skipping to change at line 1538 skipping to change at line 1526
BGP CT family to ASBRs ASBR21 and ASBR22 according to export policy. BGP CT family to ASBRs ASBR21 and ASBR22 according to export policy.
This route is sent with the same NLRI RD prefix This route is sent with the same NLRI RD prefix
192.0.2.11:100:192.0.2.11, Label B-L2, next hop set to itself, and 192.0.2.11:100:192.0.2.11, Label B-L2, next hop set to itself, and
transport-target:0:100. An MPLS swap route is installed at ASBR14 transport-target:0:100. An MPLS swap route is installed at ASBR14
for B-L1 with a next hop pointing to ASBR14_to_PE11_gold tunnel. for B-L1 with a next hop pointing to ASBR14_to_PE11_gold tunnel.
In the Bronze plane, the BGP CT route with a Bronze SLA to endpoint In the Bronze plane, the BGP CT route with a Bronze SLA to endpoint
PE11 is originated by PE11 with an NLRI containing RD prefix PE11 is originated by PE11 with an NLRI containing RD prefix
192.0.2.11:200:192.0.2.11 and an appropriate label. The use of 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 distinct RDs for Gold and Bronze allows both Gold and Bronze
advertisements to traverse path-selection pinchpoints without any advertisements to traverse path-selection pinch points without any
path hiding at RRs or ASBRs. And Route Target extended community path hiding at RRs or ASBRs. And Route Target extended community
transport-target:0:200 lets the route resolve over Bronze tunnels in transport-target:0:200 lets the route resolve over Bronze tunnels in
the network, similar to the process being described for the Gold SLA the network, similar to the process being described for the Gold SLA
path. path.
Moving back to the Gold plane, ASBR21 receives the Gold SLA BGP CT 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 EBGP sessions from ASBR13 and ASBR14 and can compute ECMP/FRR hop EBGP sessions from ASBR13 and ASBR14 and can compute ECMP/FRR
towards them. ASBR21 readvertises the BGP CT route for towards them. ASBR21 readvertises the BGP CT route for
192.0.2.11:100:192.0.2.11 with a next hop set to itself (loopback 192.0.2.11:100:192.0.2.11 with a next hop set to itself (loopback
skipping to change at line 1571 skipping to change at line 1559
RR27 also readvertises this BGP CT route to ABR23 and ABR24 with the RR27 also readvertises this BGP CT route to ABR23 and ABR24 with the
label and next hop unchanged. label and next hop unchanged.
BGP ADD-PATH is enabled for the BGP CT family on the sessions between BGP ADD-PATH is enabled for the BGP CT family on the sessions between
RR27 and the ASBRs and ABRs such that routes for 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 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 reflected to ABR23 and ABR24 without any path hiding. Thus, ABR23 is
given visibility of both available next hops for the Gold SLA. given visibility of both available next hops for the Gold SLA.
ABR23 receives the route with next hop 192.0.2.21 and label B-L3 from ABR23 receives the route with next hop 192.0.2.21 and label B-L3 from
RR27. The route target "transport-target:0:100" on this route acts RR27. The transport-target:0:100 on this route acts as the Mapping
as the Mapping Community and instructs ABR23 to strictly resolve the Community and instructs ABR23 to strictly resolve the next hop using
next hop using transport class 100 routes only. ABR23 is unable to routes in TC 100 TRDB only. ABR23 is unable to find a route for
find a route for 192.0.2.21 with transport class 100. Thus, it 192.0.2.21 in the TC 100 TRDB. Thus, it considers this route
considers this route unusable and does not propagate it further. unusable and does not propagate it further. This prunes ASBR21 from
This prunes ASBR21 from the Gold SLA tunneled path. the Gold SLA tunneled path.
ABR23 also receives the route with next hop 192.0.2.22 and label B-L4 ABR23 also receives the route with next hop 192.0.2.22 and label B-L4
from RR27. The route target "transport-target:0:100" on this route from RR27. The transport-target:0:100 on this route acts as the
acts as the Mapping Community and instructs ABR23 to strictly resolve Mapping Community and instructs ABR23 to strictly resolve the next
the next hop using transport class 100 routes only. ABR23 hop using routes in TC 100 TRDB only. ABR23 successfully resolves
successfully resolves the next hop to point to ABR23_to_ASBR22_gold the next hop to point to ABR23_to_ASBR22_gold tunnel. ABR23
tunnel. ABR23 readvertises this BGP CT route with the next hop set readvertises this BGP CT route with the next hop set to itself
to itself (loopback address 192.0.2.23) and a new label B-L5 to PE25. (loopback address 192.0.2.23) and a new label B-L5 to PE25. A swap
A swap route for B-L5 is installed by ABR23 to swap to label B-L4 and route for B-L5 is installed by ABR23 to swap to label B-L4 and
forward into ABR23_to_ASBR22_gold tunnel. forward into ABR23_to_ASBR22_gold tunnel.
PE25 receives the BGP CT route for prefix 192.0.2.11:100:192.0.2.11 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. 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 tunnel. class 100, pushing labels associated with PE25_to_ABR23_gold tunnel.
In this manner, the Gold transport LSP "ASBR13_to_PE11_gold" in the 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 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 the ingress domain, to create an end-to-end Gold SLA path. MPLS swap
routes are installed at ASBR13, ASBR22, and ABR23, when propagating 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 the PE11 BGP CT Gold Transport Class route 192.0.2.11:100:192.0.2.11
with next hop set to itself towards PE25. with next hop set to itself towards PE25.
Thus formed, the BGP CT LSP originates in PE25 and terminates in Thus formed, the BGP CT LSP 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 CT LSP into the "ASBR13_to_PE11_gold" LSP to traverse the last
domain, thus satisfying Gold SLA end-to-end. domain, thus satisfying Gold SLA end-to-end.
When PE25 receives service routes from RR26 with next hop 192.0.2.11 When PE25 receives service routes from RR26 with next hop 192.0.2.11
and mapping community Color:0:100, it resolves over this BGP CT route 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 pushing as 192.0.2.11:100:192.0.2.11. Thus, pushing label B-L5 and pushing as
the top label the labels associated with PE25_to_ABR23_gold tunnel. the top label the labels associated with PE25_to_ABR23_gold tunnel.
8.4. Data Plane View 8.4. Data Plane View
8.4.1. Steady State 8.4.1. Steady State
This section describes how the data plane looks in steady state. This section describes how the data plane looks in steady state.
CE41 transmits an IP packet with the destination 203.0.113.31. On CE41 transmits an IP packet with the destination 203.0.113.31. On
skipping to change at line 1638 skipping to change at line 1626
lookup for label B-L5 in the global MPLS FIB. This yields the route 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 label that swaps label B-L5 with label B-L4 and pushes the top label
provided by ABR23_to_ASBR22_gold tunnel. Thus, ABR23 transmits the provided by ABR23_to_ASBR22_gold tunnel. Thus, ABR23 transmits the
MPLS packet with label B-L4 to ASBR22 on a tunnel that satisfies the MPLS packet with label B-L4 to ASBR22 on a tunnel that satisfies the
Gold SLA. Gold SLA.
ASBR22 similarly performs a lookup for label B-L4 in the global MPLS ASBR22 similarly performs a lookup for label B-L4 in the global MPLS
FIB, finds the route that swaps label B-L4 with label B-L2, and FIB, finds the route that swaps label B-L4 with label B-L2, and
forwards it 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. specific Transport Class, in this example.
ASBR13 receives the MPLS packet with label B-L2 and performs a lookup 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 pushes in the MPLS FIB, finds the route that pops label B-L2, and pushes
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 the Gold SLA in AS 1. preserves the Gold SLA in AS 1.
PE11 receives the MPLS packet with V-L1 and performs VPN forwarding, PE11 receives the MPLS packet with V-L1 and performs VPN forwarding,
thus transmitting the original IP payload from CE41 to CE31. The thus transmitting the original IP payload from CE41 to CE31. The
payload has traversed path satisfying the Gold SLA end-to-end. payload has traversed path satisfying the Gold SLA end-to-end.
skipping to change at line 1679 skipping to change at line 1667
experiences a failure but no alternate path exists. experiences a failure but no alternate path exists.
Assume tunnel ABR23_to_ASBR22_gold goes down, such that now no end- Assume tunnel ABR23_to_ASBR22_gold goes down, such that now no end-
to-end Gold path exists in the network. This makes the BGP CT route 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 unusable at ABR23. This 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 to makes ABR23 send a BGP withdrawal for 192.0.2.11:100:192.0.2.11 to
PE25. PE25.
The withdrawal for 192.0.2.11:100:192.0.2.11 allows PE25 to react to 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 the loss of the Gold path to 192.0.2.11. Assuming PE25 is
provisioned to use a best-effort transport class as the backup path, provisioned to use a Best-Effort Transport Class as the backup path,
this withdrawal of a 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. route. That repairs the traffic to go via the best-effort path.
PE25 can also be provisioned to use the Bronze transport class as the PE25 can also be provisioned to use the Bronze Transport Class as the
backup path. The repair will happen in similar manner in that case backup path. The repair will happen in similar manner in that case
as well. as well.
Traffic repair to absorb the failure happens at ingress node PE25 in Traffic repair to absorb the failure happens at ingress node PE25 in
a service prefix scale independent manner (PIC). The repair time a service prefix scale independent manner (PIC). The repair time
will be proportional to time taken for withdrawing the BGP CT route. will be proportional to time taken for withdrawing the BGP CT route.
These examples demonstrate the various levels of failsafe mechanisms These examples demonstrate the various levels of fail-safe mechanisms
available to protect traffic in a BGP CT network. available to protect traffic in a BGP CT network.
9. Scaling Considerations 9. Scaling Considerations
9.1. Avoiding Unintended Spread of BGP CT Routes Across Domains 9.1. Avoiding Unintended Spread of BGP CT Routes Across Domains
[RFC8212] suggests BGP speakers require explicit configuration of [RFC8212] suggests BGP speakers require explicit configuration of
both BGP Import and Export Policies in order to receive or send both BGP Import and Export Policies in order to receive or send
routes over EBGP sessions. routes over EBGP sessions.
It is recommended to follow this for BGP CT routes. It will prohibit It is recommended to follow this for BGP CT routes. It will prohibit
unintended advertisement of transport routes throughout the BGP CT unintended advertisement of transport routes throughout the BGP CT
transport domain, which may span across multiple AS domains. This transport domain, which may span across multiple AS domains. This
will conserve usage resources for MPLS labels and next hops in the will conserve usage resources for MPLS labels and next hops in the
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 Class RTs that are required by SNs in the domain.
domain.
9.2. Constrained Distribution of PNHs to SNs (On-Demand Next Hop) 9.2. Constrained Distribution of PNHs to SNs (On-Demand Next Hop)
This section describes how the number of Protocol Next Hops (PNHs) This section describes how the number of Protocol Next Hops (PNHs)
advertised to an SN or BN can be constrained using BGP Classful advertised to an SN or BN can be constrained using BGP Classful
Transport and RTC (see [RFC4684]. Transport and RTC (see [RFC4684].
An egress SN MAY advertise a BGP CT route for RD:eSN with two Route An egress SN MAY advertise a BGP CT route for RD:eSN with two Route
Targets: transport-target:0:<TC> and an RT carrying <eSN>:<TC>, where Targets: transport-target:0:<TC> and an RT carrying <eSN>:<TC>, where
TC is the Transport Class identifier and eSN is the IP address used TC is the Transport Class identifier and eSN is the IP address used
by the SN as BGP next hop in its service route advertisements. by the SN as BGP next hop in its service route advertisements.
Note that such use of the IP-address-specific route target <eSN>:<TC> Note that such use of the IP-address-specific route target <eSN>:<TC>
is optional in a BGP CT network. It is required only if there is a is optional in a BGP CT network. It is required only if there is a
requirement to prune the propagation of the transport route for an requirement to prune the propagation of the transport route for an
egress node eSN to only the set of ingress nodes that need it. When egress node eSN to only the set of ingress nodes that need it. When
only the RT of transport-target:0:<TC> is used, the pruning happens only the RT of transport-target:0:<TC> is used, the pruning happens
in granularity of Transport Class ID (Color), not BGP next hop; a BGP in 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 PE CT route will only be advertised into a domain with at least one PE
that imports its transport class. that imports its Transport Class.
The transport-target:0:<TC> is the new type of route target The transport-target:0:<TC> is the new type of route target
(Transport Class RT) defined in this document. It is carried in the (Transport Class RT) defined in this document. It is carried in the
BGP extended community attribute (BGP attribute code 16). BGP extended community attribute (attribute code 16).
The RT carrying <eSN>:<TC> MAY be an IP-address-specific regular RT The RT carrying <eSN>:<TC> MAY be an IP-address-specific regular RT
(BGP attribute code 16), or IPv6-address specific RT (BGP attribute (attribute code 16), or IPv6-address specific RT (attribute code 25).
code 25). It should be noted that the Local Administrator field of It should be noted that the Local Administrator field of these RTs
these RTs can only carry two octets of information; thus, the <TC> can only carry two octets of information; thus, the <TC> field in
field in this approach is limited to a 2-octet value. Future this approach is limited to a 2-octet value. Future protocol
protocol extension work is needed to define a BGP CCA that can extension work is needed to define a BGP CCA that can accommodate an
accomodate an IPv4/IPv6 address along with a 4-octet Local IPv4/IPv6 address along with a 4-octet Local Administrator field.
Administrator field.
An ingress SN MAY import BGP CT routes with a Route Target carrying An ingress SN MAY import BGP CT routes with a Route Target carrying
<eSN>:<TC>. The ingress SN may learn the eSN values by configuration <eSN>:<TC>. The ingress SN may learn the eSN values by configuration
or it may discover them from the BGP next hop field in the BGP VPN or it may discover them from the BGP next hop field in the BGP VPN
service routes received from the eSN. A BGP ingress SN receiving a service routes received from the eSN. A BGP ingress SN receiving a
BGP service route with a next hop of eSN generates an RTC route for BGP service route with a next hop of eSN generates an RTC route for
Route Target prefix <Origin ASN>:<eSN>/[80|176] in order to learn BGP Route Target prefix <Origin ASN>:<eSN>/[80|176] in order to learn BGP
CT transport routes to reach eSN. This allows constrained CT transport routes to reach eSN. This allows constrained
distribution of the transport routes to the PNHs actually required by distribution of the transport routes to the PNHs actually required by
iSN. iSN.
skipping to change at line 1785 skipping to change at line 1771
Such a BN in the core of the network imports BGP CT routes with Such a BN in the core of the network imports BGP CT routes with
Transport-Target:0:<TC> and generates an RTC route for <Origin Transport-Target:0:<TC> and generates an RTC route for <Origin
ASN>:0:<TC>/96, while not propagating the more specific RTC requests ASN>:0:<TC>/96, while not propagating the more specific RTC requests
for specific PNHs. This lets the BN learn transport routes to all for specific PNHs. This lets the BN learn transport routes to all
eSN nodes but confines their propagation to ingress SNs. eSN nodes but confines their propagation to ingress SNs.
9.3. Limiting the Visibility Scope of PE Loopback as PNHs 9.3. Limiting the Visibility Scope of PE Loopback as PNHs
It may be even more desirable to limit the number of PNHs that are It may be even more desirable to limit the number of PNHs that are
globally visible in the network. This is possible using the globally visible in the network. This is possible using the
mechanism described in Appendix D, such that advertisement of PE mechanism described in Appendix D.
loopback addresses as next hops in BGP service routes is confined to
the region they belong to. An anycast IP address called a "Context
Protocol Nexthop" (or "CPNH") address abstracts the SNs in a region
from other regions in the network.
Such that advertisement of PE loopback addresses as next hop in BGP Such that advertisement of PE loopback addresses as next hop in BGP
service routes is confined to the region they belong to. An anycast service routes is confined to the region they belong to. An anycast
IP-address called "Context Protocol Nexthop Address" (CPNH) abstracts IP-address called "Context Protocol Nexthop Address" (CPNH) abstracts
the SNs in a region from other regions in the network. the SNs in a region from other regions in the network.
This provides much greater advantage in terms of scaling, convergence This provides much greater advantage in terms of scaling, convergence
and security. Changes to implement this feature are required only on and security. Changes to implement this feature are required only on
the local region's BNs and RRs, so legacy PE devices can also benefit the local region's BNs and RRs, so legacy PE devices can also benefit
from this approach. from this approach.
10. Operations and Manageability Considerations 10. Operations and Manageability Considerations
10.1. MPLS OAM 10.1. MPLS OAM
MPLS Operations, Administration, and Maintenance (OAM) procedures MPLS Operations, Administration, and Maintenance (OAM) procedures
specified in [RFC8029] also apply to BGP Classful Transport. specified in [RFC8029] also apply to BGP CT.
The Target FEC Stack sub-TLV for IPv4 Classful Transport has a Sub- The Target FEC Stack sub-TLV for IPv4 BGP CT has a Sub-Type of 31744
Type of 31744 and a length of 13. The Value field consists of the RD and a length of 13. The Value field consists of the RD advertised
advertised with the Classful Transport prefix, the IPv4 prefix (with with the BGP CT prefix, the IPv4 prefix (with trailing 0 bits to make
trailing 0 bits to make 32 bits in all), and a prefix length encoded 32 bits in all), and a prefix length encoded as shown in Figure 4.
as shown in Figure 4.
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4: Classful Transport IPv4 FEC Figure 4: BGP CT IPv4 FEC
The Target FEC Stack sub-TLV for IPv6 Classful Transport has a Sub- The Target FEC Stack sub-TLV for IPv6 BGP CT has a Sub-Type of 31745
Type of 31745 and a length of 25. The Value field consists of the RD and a length of 25. The Value field consists of the RD advertised
advertised with the Classful Transport prefix, the IPv6 prefix (with with the BGP CT prefix, the IPv6 prefix (with trailing 0 bits to make
trailing 0 bits to make 128 bits in all) and a prefix length encoded 128 bits in all) and a prefix length encoded as shown in Figure 5.
as shown in Figure 5.
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 5: Classful Transport IPv6 FEC Figure 5: BGP CT IPv6 FEC
These prefix layouts are inherited from Sections 3.2.5 and 3.2.6 of These prefix layouts are inherited from Sections 3.2.5 and 3.2.6 of
[RFC8029]. [RFC8029].
10.2. Usage of RD and Label-Allocation Modes 10.2. Usage of RD and Label-Allocation Modes
RDs aid in troubleshooting provider networks that deploy BGP CT, by 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. provider network or span closely coordinated provider networks.
skipping to change at line 1872 skipping to change at line 1852
RDs. RDs.
For example, unique "RDx:EP1" prefixes can be advertised by an SN for For example, unique "RDx:EP1" prefixes can be advertised by an SN for
an EP1 to different upstream BNs with unique forwarding-specific an EP1 to different upstream BNs with unique forwarding-specific
encapsulation (e.g., a Label) in order to collect traffic statistics encapsulation (e.g., a Label) in order to collect traffic statistics
at the SN for each BN. In the absence of an RD, duplicated Transport at the SN for each BN. In the absence of an RD, duplicated Transport
Class / Color values will be needed in the transport network to Class / Color values will be needed in the transport network to
achieve such use cases. achieve such use cases.
The allocation of RDs is done at the point of origin of the BGP CT The allocation of RDs is done at the point of origin of the BGP CT
route. This can be either 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. does not require full visibility of all nodes originating an EP.
A label is allocated for a BGP CT route when it is advertised with A label is allocated for a BGP CT route when it is advertised with
the next hop set to itself by an SN or a BN. An implementation may the next hop set to itself by an SN or a BN. An implementation may
use different label-allocation modes with BGP CT. Per-prefix is the use different label-allocation modes with BGP CT. Per-prefix is the
recommended label-allocation mode as it provides better traffic recommended label-allocation mode as it provides better traffic
convergence properties than a per-NH label-allocation mode. convergence properties than a per-NH label-allocation mode.
Furthermore, BGP CT offers two flavors for per-prefix label Furthermore, BGP CT offers two flavors for per-prefix label
allocation: allocation:
* The first flavor assigns a label for each unique "RD, EP". * The first flavor assigns a label for each unique "RD, EP".
* The second flavor assigns a label for each unique "Transport * The second flavor assigns a label for each unique "Transport
Class, EP" while ignoring the RD. Class, EP" while ignoring the RD.
In a BGP CT network, the number of routes at an Ingress PE is a 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 function of unique EPs multiplied by BNs in the ingress domain that
have the next hop set to themselves. BGP CT provides flexible RD and have the next hop set to themselves. BGP CT provides flexible RD and
label-allocation modes to address operational requirements in a label-allocation modes to address operational requirements in a
multi-domain network. The impacts on the control plane and multi-domain network. The impacts on the control plane and
forwarding behavior for these modes are detailed with an example in forwarding behavior for these modes are detailed with an example in
Section 10.3. Section 10.3.
10.3. Managing Transport-Route Visibility 10.3. Managing Transport-Route Visibility
This section details the usage of BGP CT RD and label-allocation This section details the usage of BGP CT RD and label-allocation
skipping to change at line 1992 skipping to change at line 1972
change. change.
Figure 7 demonstrates that BGP CT allows an operator to control how Figure 7 demonstrates that BGP CT allows an operator to control how
much path visibility and forwarding diversity is desired in the much path visibility and forwarding diversity is desired in the
network for both Unicast and Anycast endpoints. network for both Unicast and Anycast endpoints.
11. Deployment Considerations 11. Deployment Considerations
11.1. Coordination Between Domains Using Different Community Namespaces 11.1. Coordination Between Domains Using Different Community Namespaces
Cooperating Inter-AS Option C domains may sometimes not agree on RT, Cooperating inter-AS option C domains may sometimes not agree on RT,
RD, Mapping community, or Transport Route Target values because of RD, Mapping Community, or Transport Class RT 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 renumbering for expansion). Such deployments may deploy mechanisms
to map and rewrite the Route Target values on domain boundaries using to map and rewrite the Route Target values on domain boundaries using
per-ASBR import policies. This is no different than any other BGP per-ASBR import policies. This is no different than any other BGP
VPN family. Mechanisms used in inter-AS VPN deployments may be VPN family. Mechanisms used in inter-AS VPN deployments may be
leveraged with the Classful Transport family also. leveraged with the BGP CT family also.
A resolution scheme allows association with multiple Mapping 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. network merger, or transition scenarios.
The Transport Class Route Target extended community is useful to The Transport Class RT is useful to avoid collision with regular
avoid collision with regular Route Target namespace used by service Route Target namespace used by service routes.
routes.
11.2. Managing Intent at Service and Transport Layers 11.2. Managing Intent at Service and Transport Layers
Section 8 shows multiple domains that agree on a color namespace Section 8 shows multiple domains that agree on a color namespace
(Agreeing Color Domains) and contain tunnels with an equivalent set (Agreeing Color Domains) and contain tunnels with an equivalent set
of colors (Homogenous Color Domains). of colors (Homogenous Color Domains).
However, in the real world, this may not always be guaranteed. Two 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 known as Non-Agreeing Color Domains. Two domains may have tunnels
with unequal sets of colors; these are known as Heterogeneous Color with unequal sets of colors; these are known as Heterogeneous Color
Domains. Domains.
This section describes how BGP CT is deployed in such scenarios to 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. option A and inter-AS option B scenarios as well.
11.2.1. Service-Layer Color Management 11.2.1. Service Layer Color Management
At the service layer, it is recommended that a global color namespace At the service layer, it is recommended that a global color namespace
be maintained across multiple cooperating domains. BGP CT allows be maintained across multiple cooperating domains. BGP CT allows
indirection using resolution schemes to be able to maintain a global indirection using Resolution Schemes to be able to maintain a global
namespace in the service layer. This is possible even if each domain namespace in the service layer. This is possible even if each domain
independently maintains its own local transport color namespace. independently maintains its own local transport color namespace.
As explained in Section 5, a mapping community carried on a service As explained in Section 5, 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. transport layer Intent available in each domain.
In this manner, it is recommended to keep color namespace management In this manner, it is recommended to keep color namespace management
at the service layer and the transport layer decoupled from each at the service layer and the transport layer decoupled from each
other. In the following sections, the service layer agrees on a other. In the following sections, the service layer agrees on a
single global namespace. single global namespace.
11.2.2. Non-Agreeing Color Transport Domains 11.2.2. Non-Agreeing Color Transport Domains
Non-Agreeing Color Domains require a mapping community rewrite on 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. namespace to another domain's color namespace.
The following example illustrates how traffic is stitched and SLA is The following example illustrates how traffic is stitched and SLA is
preserved when domains don't use the same namespace at the transport preserved when domains don't use the same namespace at the transport
layer. Each domain specifies the same SLA using different color layer. Each domain specifies the same SLA using different color
values. values.
..................... ....................... ...................... ..................... ....................... .....................
: 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 -------->
Figure 8: Transport Layer with Non-Agreeing Color Domains Figure 8: Transport Layer with Non-agreeing Color Domains
In the topology shown in Figure 8, we have three Autonomous Systems. In the topology shown in Figure 8, we have three Autonomous Systems.
All the nodes in the topology support BGP CT. All the nodes in the topology support BGP CT.
* In AS1, the Gold SLA is represented by color 100 and Bronze by * In AS1, the Gold SLA is represented by color 100 and Bronze by
200. 200.
* In AS2, the Gold SLA is represented by color 300 and Bronze by * In AS2, the Gold SLA is represented by color 300 and Bronze by
400. 400.
* In AS3, the Gold SLA is represented by color 500 and Bronze by * In AS3, the Gold SLA is represented by color 500 and Bronze by
600. 600.
Though the color values are different, they map to tunnels with Though the color values are different, they map to tunnels with
sufficiently similar TE characteristics in each domain. sufficiently similar TE characteristics in each domain.
The service route carries an abstract mapping community that maps to The service route carries an abstract Mapping Community that maps to
the required SLA. For example, service routes that need to resolve the required SLA. For example, service routes that need to resolve
over Gold transport tunnels carry a mapping community color:0:100500. over Gold transport tunnels carry a Mapping Community color:0:100500.
In AS3, it maps to a resolution scheme containing a TRDB with color In AS3, it maps to a Resolution Scheme containing TRDB with color
500; in AS2, it maps to a TRDB with color 300; and in AS1, it maps to 500; in AS2, it maps to TRDB with color 300; and in AS1, it maps to
a TRDB with color 100. Coordination is needed to provision the TRDB with color 100. Coordination is needed to provision the
resolution schemes in each domain, as explained previously. Resolution Schemes in each domain, as explained previously.
At the AS boundary, the transport-class route-target is rewritten for At the AS boundary, the Transport Class RT is rewritten for the BGP
the BGP CT routes. In the previous topology, at ASBR31, the CT routes. In the previous topology, at ASBR31, the transport-
transport-target:0:500 for Gold tunnels is rewritten to transport- target:0:500 for Gold tunnels is rewritten to transport-target:0:300
target:0:300 and then advertised to ASBR22. Similarly, the and then advertised to ASBR22. Similarly, the transport-target:0:300
transport-target:0:300 for Gold tunnels are rewritten to transport- for Gold tunnels are rewritten to transport-target:0:100 at ASBR21
target:0:100 at ASBR21 before advertising to ASBR11. At PE11, the before advertising to ASBR11. At PE11, the transport route received
transport route received with transport-target:0:100 will be added to with transport-target:0:100 will be added to the color 100 TRDB. The
the color 100 TRDB. The service route received with mapping service route received with Mapping Community color:0:100500 at PE1
community color:0:100500 at PE1 maps to the Gold TRDB and resolves maps to the Gold TRDB and resolves over this transport route.
over this transport route.
Inter-domain traffic forwarding in the previous topology works as Inter-domain traffic forwarding in the previous topology works as
explained in Section 8. explained in Section 8.
Transport-target rewrite requires coordination of color values Transport Class RT rewrite requires coordination 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 rewrite 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 non- coordinating service layer colors deployed in a global mesh of non-
adjacent color domains. This basically allows localizing the problem adjacent color domains. This basically allows localizing the problem
to a pair of adjacent color domains and solving it. to a pair of adjacent color domains and solving it.
11.2.3. Heterogeneous Agreeing Color Transport Domains 11.2.3. Heterogeneous Agreeing Color Transport Domains
In a heterogeneous-domain scenario, it might not be possible to map a In a heterogeneous-domain scenario, it might not be possible to map a
service-layer intent to the matching transport color, as the color service layer Intent to the matching transport color, as the color
might not be locally available in a domain. might not be locally available in a domain.
The following example illustrates how traffic is stitched when a 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. otherwise.
..................... ....................... ...................... ..................... ....................... .....................
: : : 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 -------->
Figure 9: Transport Layer with Heterogenous Color Domains Figure 9: Transport Layer with Heterogenous Color Domains
In Figure 9, we have three Autonomous Systems. All the nodes in the In Figure 9, we have three Autonomous Systems. All the nodes in the
topology support BGP CT. topology support BGP CT.
* In AS1, the Gold SLA is represented by color 100. * In AS1, the Gold SLA is represented by color 100.
* In AS2, Gold has finer shades: Gold1 by color 101 and Gold2 by * In AS2, Gold has finer shades: Gold1 by color 101 and Gold2 by
color 102. color 102.
* In AS3, the Gold SLA is represented by color 100. * In AS3, the Gold SLA is represented by color 100.
skipping to change at line 2166 skipping to change at line 2144
11.2.3.1. Duplicate Tunnels Approach 11.2.3.1. Duplicate Tunnels Approach
In this approach, duplicate tunnels that satisfy the Gold SLA are 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. colors 101 and 102.
These tunnels will be installed in TRDBs corresponding to transport These tunnels will be installed in TRDBs corresponding to transport
classes of colors 101 and 102. classes of colors 101 and 102.
Overlay routes received with a mapping community (e.g., transport- Overlay routes received with a Mapping Community (e.g., transport-
target or color community) can resolve over these tunnels in the TRDB target or color community) can resolve over these tunnels in the TRDB
with matching colors by using resolution schemes. with matching colors by using Resolution Schemes.
This approach consumes more resources in the transport and forwarding This approach consumes more resources in the transport and forwarding
layer because of the duplicate tunnels. layer because of the duplicate tunnels.
11.2.3.2. Customized Resolution Schemes Approach 11.2.3.2. Customized Resolution Schemes Approach
In this approach, resolution schemes in domains AS1 and AS3 are In this approach, Resolution Schemes in domains AS1 and AS3 are
customized to map the received mapping community (e.g., transport- customized to map the received Mapping Community (e.g., transport-
target or color community) over available Gold SLA tunnels. This target or color community) over available Gold SLA tunnels. This
conserves resource usage with no additional state in the transport or conserves resource usage with no additional state in the transport or
forwarding planes. forwarding planes.
Service routes advertised by PE31 that need to resolve over Gold1 Service routes advertised by PE31 that need to resolve over Gold1
transport tunnels carry a mapping community color:0:101. In AS3 and transport tunnels carry a Mapping Community color:0:101. In AS3 and
AS1, where Gold1 is not available, it is mapped to color 100 TRDB AS1, where Gold1 is not available, it is mapped to color 100 TRDB
using a customized resolution scheme. In AS2, Gold1 is available, using a customized Resolution Scheme. In AS2, Gold1 is available,
and it maps to color 101 TRDB. and it maps to color 101 TRDB.
Similarly, service routes advertised by PE31 that need to resolve Similarly, service routes advertised by PE31 that need to resolve
over Gold2 transport tunnels carry a mapping community color:0:102. over Gold2 transport tunnels carry a Mapping Community color:0:102.
In AS3 and AS1, where Gold2 is not available, it is mapped to color In AS3 and AS1, where Gold2 is not available, it is mapped to color
100 TRDB using a customized resolution scheme. In AS2, Gold2 is 100 TRDB using a customized Resolution Scheme. In AS2, Gold2 is
available, and it maps to color 102 TRDB. available, and it maps to color 102 TRDB.
To facilitate this, SNs/BNs in all three ASes provision the transport To facilitate this, SNs/BNs in all three ASes provision the transport
classes 100, 101, and 102. SNs and BNs in AS1 and AS3 are classes 100, 101, and 102. SNs and BNs 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 100 with transport-target:0:101 or transport-target:0:102 using color 100
TRDB. TRDB.
PE31 is provisioned to originate BGP CT routes with color 101 for PE31 is provisioned to originate BGP CT routes with color 101 for
endpoint PE31. This route is sent with an NLRI RD prefix RD1:PE31 endpoint PE31. This route is sent with an NLRI RD prefix RD1:PE31
and Route Target extended community transport-target:0:101. and Route Target extended community transport-target:0:101.
Similarly, PE31 is provisioned to originate BGP CT routes with color Similarly, PE31 is provisioned to originate BGP CT routes with color
102 for endpoint PE31. This route is sent with an NLRI RD prefix 102 for endpoint PE31. This route is sent with an NLRI RD prefix
RD2:PE31 and Route Target extended community transport-target:0:102. RD2:PE31 and Route Target extended community transport-target:0:102.
The following description explains the remaining procedures with The following description explains the remaining procedures with
color 101 as an example. color 101 as an example.
At ASBR31, the route target "transport-target:0:101" on this BGP CT At ASBR31, the Route Target role of transport-target:0:101 on this
route gives instruction to add the route to color 101 TRDB. ASBR31 BGP CT route gives instruction to add the route to color 101 TRDB.
is provisioned with a customized resolution scheme that resolves the ASBR31 is provisioned with a customized Resolution Scheme that
routes carrying mapping community transport-target:0:101 to resolve resolves the routes carrying Mapping Community transport-target:0:101
using color 100 TRDB. This route is then readvertised from color 101 to resolve using color 100 TRDB. This route is then readvertised
TRDB to ASBR22 with route-target:0:101. from color 101 TRDB to ASBR22 with route-target:0:101.
At ASBR22, the BGP CT routes received with transport-target:0:101 At ASBR22, the BGP CT routes received with transport-target:0:101
will be added to color 101 TRDB and strictly resolve over tunnel will be added to color 101 TRDB and strictly resolve over tunnel
routes in the same TRDB. This route is readvertised to ASBR21 with routes in the same TRDB. This route is readvertised to ASBR21 with
transport-target:0:101. transport-target:0:101.
Similarly, at ASBR21, the BGP CT routes received with transport- Similarly, at ASBR21, the BGP CT routes received with transport-
target:0:101 will be added to color 101 TRDB and strictly resolve target:0:101 will be added to color 101 TRDB and strictly resolve
over tunnel routes in the same TRDB. This route is readvertised to over tunnel routes in the same TRDB. This route is readvertised to
ASBR11 with transport-target:0:101. ASBR11 with transport-target:0:101.
At ASBR11, the route target "transport-target:0:101" on this BGP CT At ASBR11, the Route Target role of transport-target:0:101 on this
route gives instruction to add the route to color 101 TRDB. ASBR11 BGP CT route gives instruction to add the route to color 101 TRDB.
is provisioned with a customized resolution scheme that resolves the ASBR11 is provisioned with a customized Resolution Scheme that
routes carrying transport-target:0:101 to use color 100 TRDB. This resolves the routes carrying transport-target:0:101 to use color 100
route is then readvertised from color 101 TRDB to PE11 with TRDB. This route is then readvertised from color 101 TRDB to PE11
transport-target:0:101. with transport-target:0:101.
At PE11, the route target "transport-target:0:101" on this BGP CT At PE11, the Route Target role of transport-target:0:101 on this BGP
route gives instruction to add the route to color 101 TRDB. PE11 is CT route gives instruction to add the route to color 101 TRDB. PE11
provisioned with a customized resolution scheme that resolves the is provisioned with a customized Resolution Scheme that resolves the
routes carrying transport-target:0:101 to use color 100 TRDB. routes carrying transport-target:0:101 to use color 100 TRDB.
When PE11 receives the service route with the mapping community When PE11 receives the service route with the Mapping Community
color:0:101, it directly resolves over the BGP CT route in color 101 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 TRDB. TRDB, which, in turn, resolves over tunnel routes in color 100 TRDB.
Similar processing is done for color 102 routes also at ASBR31, Similar processing is done for color 102 routes also at ASBR31,
ASBR22, ASBR21, ASBR11, and PE11. ASBR22, ASBR21, ASBR11, and PE11.
In doing so, PE11 can forward traffic via tunnels with color 101, In doing so, PE11 can forward traffic via tunnels with color 101,
color 102 in the core domain and color 100 in the metro domains. color 102 in the core domain and color 100 in the metro domains.
11.3. Migration Scenarios 11.3. Migration Scenarios
skipping to change at line 2369 skipping to change at line 2347
This section describes how nodes supporting dissimilar encapsulation This section describes how nodes supporting dissimilar encapsulation
technologies can interoperate when using the BGP CT family. technologies can interoperate when using the BGP CT family.
11.3.2.1. Interoperation Between MPLS and SRv6 Nodes 11.3.2.1. Interoperation Between MPLS and SRv6 Nodes
BGP speakers may carry MPLS labels and SRv6 SIDs in BGP CT SAFI 76 BGP speakers may carry MPLS labels and SRv6 SIDs in BGP CT SAFI 76
for AFI 1 or 2 routes using protocol encoding as described in for AFI 1 or 2 routes using protocol encoding as described in
Section 6.3. Section 6.3.
MPLS Labels are carried using the encoding described in [RFC8277], MPLS labels are carried using the encoding described in [RFC8277],
and SRv6 SIDs are carried using the Prefix SID attribute as specified and SRv6 SIDs are carried using the Prefix-SID attribute as specified
in Section 7.13. in Section 7.13.
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 ----->
skipping to change at line 2396 skipping to change at line 2374
MPLS and SRv6 packets. R3 supports forwarding MPLS packets only. R4 MPLS and SRv6 packets. R3 supports forwarding MPLS packets only. R4
supports forwarding SRv6 packets only. All these nodes have a BGP supports forwarding SRv6 packets only. All these nodes have a BGP
session with Route Reflector RR1, which reflects routes between these session with Route Reflector RR1, which reflects routes between these
nodes with the next hop unchanged. The BGP CT family is negotiated nodes with the next hop unchanged. The BGP CT family is negotiated
on these sessions. on these sessions.
R1 and R2 send and receive both MPLS labels and SRv6 SIDs in the BGP R1 and R2 send and receive both MPLS labels and SRv6 SIDs in the BGP
CT control plane routes. This allows them to be ingress and egress CT control plane routes. This allows them to be ingress and egress
for both MPLS and SRv6 data planes. The MPLS label is carried using for both MPLS and SRv6 data planes. The MPLS label is carried using
the encoding described in [RFC8277], and an SRv6 SID is carried using the encoding described in [RFC8277], and an SRv6 SID is carried using
the Prefix SID attribute as specified in Section 7.13 without the the Prefix-SID attribute as specified in Section 7.13 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. can be used between R1 and R2.
R1 and R3 send and receive an MPLS label in the BGP CT control plane R1 and R3 send and receive an MPLS label in the BGP CT control plane
routes using the encoding described in [RFC8277]. This allows them routes using the encoding described in [RFC8277]. This allows them
to be ingress and egress for MPLS data plane. R1 will carry an SRv6 to be ingress and egress for MPLS data plane. R1 will carry an SRv6
SID in the Prefix SID attribute, which will not be used by R3. In SID in the Prefix-SID attribute, which will not be used by R3. In
order to interoperate with MPLS-only device R3, R1 MUST NOT use the order to interoperate with MPLS-only device R3, R1 MUST NOT use the
SRv6 Transposition scheme described in [RFC9252]. The encoding SRv6 Transposition Scheme described in [RFC9252]. The encoding
suggested in Section 7.13 is used by R1. MPLS forwarding will be suggested in Section 7.13 is used by R1. MPLS forwarding will be
used between R1 and R3. used between R1 and R3.
R1 and R4 send and receive SRv6 SIDs in the BGP CT control plane R1 and R4 send and receive SRv6 SIDs in the BGP CT control plane
routes using the BGP Prefix SID attribute, without a Transposition routes using the BGP Prefix-SID attribute, without a Transposition
Scheme. This allows them to be ingress and egress for the SRv6 data Scheme. This allows them to be ingress and egress for the SRv6 data
plane. R4 will carry the special MPLS label with a value of 3 plane. R4 will carry the special MPLS label with a value of 3
(Implicit-NULL) in the encoding described in [RFC8277], which tells (Implicit NULL) in the encoding described in [RFC8277], which tells
R1 not to push any MPLS label for this BGP CT route towards R4. The R1 not to push any MPLS label for this BGP CT route towards R4. The
MPLS label advertised by R1 in an NLRI as described in [RFC8277] will MPLS label advertised by R1 in an NLRI as described in [RFC8277] will
not be used by R4. SRv6 forwarding will be used between R1 and R4. not be used by R4. SRv6 forwarding will be used between R1 and R4.
Note that, in this example, R3 and R4 cannot communicate directly Note that, in this example, 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 and R4 from each other
will remain unusable due to incompatible forwarding technology. will remain unusable due to incompatible forwarding technology.
11.3.2.2. Interop Between Nodes Supporting MPLS and UDP Tunneling 11.3.2.2. Interop Between Nodes Supporting MPLS and UDP Tunneling
This section describes how nodes supporting MPLS forwarding can This section describes how nodes supporting MPLS forwarding can
interoperate with other nodes supporting UDP (or IP) tunneling when interoperate with other nodes supporting UDP (or IP) tunneling when
using BGP CT family. using BGP CT family.
MPLS Labels are carried using the encoding described in [RFC8277], MPLS labels are carried using the encoding described in [RFC8277],
and UDP (or IP) tunneling information is carried using the TEA and UDP (or IP) tunneling information is carried using the TEA
attribute or the Encapsulation Extended Community as specified in attribute or the Encapsulation extended community as specified in
[RFC9012]. [RFC9012].
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 ----->
skipping to change at line 2457 skipping to change at line 2435
supports forwarding UDP tunneled packets only. All these nodes have supports forwarding UDP tunneled packets only. All these nodes have
BGP session with Route Reflector RR1, which reflects routes between BGP session with Route Reflector RR1, which reflects routes between
these nodes with the next hop unchanged. The BGP CT family is these nodes with the next hop unchanged. The BGP CT family is
negotiated on these sessions. negotiated on these sessions.
R1 and R2 send and receive both MPLS labels and UDP tunneling info in R1 and R2 send and receive both MPLS labels and UDP tunneling info in
the BGP CT control plane routes. This allows them to be ingress and the BGP CT control plane routes. This allows them to be ingress and
egress for both MPLS and UDP tunneling data planes. The MPLS label egress for both MPLS and UDP tunneling data planes. The MPLS label
is carried using the encoding described in [RFC8277]. As specified is carried using the encoding described in [RFC8277]. As specified
in [RFC9012], UDP tunneling information is carried using the Tunnel in [RFC9012], UDP tunneling information is carried using the Tunnel
Encasulation Attribute (code 23) or the "barebones" Tunnel TLV Encapsulation Attribute (attribute code 23) or the "barebones" Tunnel
carried in Encapsulation Extended Community. Either MPLS or UDP TLV carried in Encapsulation extended community. Either MPLS or UDP
tunnel forwarding can be used between R1 and R2. tunnel forwarding can be used between R1 and R2.
R1 and R3 send and receive MPLS labels in the BGP CT control plane R1 and R3 send and receive MPLS labels in the BGP CT control plane
routes using the encoding described in [RFC8277]. This allows them routes using the encoding described in [RFC8277]. This allows them
to be ingress and egress for MPLS data plane. R1 will carry UDP to be ingress and egress for MPLS data plane. R1 will carry UDP
tunneling info in the TEA, which will not be used by R3. MPLS tunneling info in the TEA, which will not be used by R3. MPLS
forwarding will be used between R1 and R3. forwarding will be used between R1 and R3.
R1 and R4 send and receive UDP tunneling info in the BGP CT control R1 and R4 send and receive UDP tunneling info in the BGP CT control
plane routes using the BGP TEA. This allows them to be ingress and plane routes using the BGP TEA. This allows them to be ingress and
egress for UDP tunneled data plane. R4 will carry special MPLS Label egress for UDP tunneled data plane. R4 will carry MPLS special label
with value 3 (Implicit-NULL) in the encoding described in [RFC8277], 3 (Implicit NULL) in the encoding described in [RFC8277], which tells
which tells R1 not to push any MPLS label for this BGP CT route R1 not to push any MPLS label for this BGP CT route towards R4. The
towards R4. The MPLS Label advertised by R1 will not be used by R4. MPLS label advertised by R1 will not be used by R4. UDP tunneled
UDP tunneled forwarding will be used between R1 and R4. forwarding will be used between R1 and R4.
Note that, in this example, R3 and R4 cannot communicate directly Note that, in this example, 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 and R4 from each other
will remain unusable due to incompatible forwarding technology. will remain unusable due to incompatible forwarding technology.
11.4. MTU Considerations 11.4. MTU Considerations
Operators should coordinate the MTU of the intra-domain tunnels used Operators should coordinate the MTU of the intra-domain tunnels used
to prevent Path MTU discovery problems that could appear in to prevent Path MTU discovery problems that could appear in
deployments. The encapsulation overhead due to the MPLS label stack deployments. The encapsulation overhead due to the MPLS label stack
or equivalent tunnel header in different forwarding architecture or equivalent tunnel header in different forwarding architecture
should also be considered when determining the Path MTU of the end- should also be considered when determining the Path MTU of the end-
to-end BGP CT tunnel. to-end BGP CT tunnel.
[INTAREA-TUNNELS] discusses these considerations in more detail. [INTAREA-TUNNELS] discusses these considerations in more detail.
11.5. Use of DSCP 11.5. Use of DSCP
BGP CT specifies procedures for Intent-Driven Service Mapping in a BGP CT specifies procedures for Intent Driven Service Mapping in a
service provider network and defines the 'Transport Class' construct service provider network and defines the 'Transport Class' construct
to represent an Intent. to represent an Intent.
It may be desirable to allow a CE device to indicate in the data 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 it sends what treatment it desires (the Intent) when the
packet is forwarded within the provider network. packet is forwarded within the provider network.
Such an indication can be in the form of a DSCP (see [RFC2474]) in Such an indication can be in the form of a DSCP (see [RFC2474]) in
the IP header. the IP header.
skipping to change at line 2516 skipping to change at line 2494
layer. layer.
----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---->
Figure 13: Example Topology with DSCP on PE-CE Links Figure 13: Example Topology with DSCP on PE-CE Links
Let PE1 be configured to map DSCP1 to the Gold Transport class and Let PE1 be configured to map DSCP1 to the Gold TC and DSCP2 to the
DSCP2 to the Bronze Transport class. Based on the DSCP received on Bronze TC. Based on the DSCP received on the IP traffic from the CE
the IP traffic from the CE device, PE1 forwards the IP packet over a device, PE1 forwards the IP packet over a Gold or Bronze TC tunnel.
Gold or Bronze TC tunnel. Thus, the forwarding is not based on just Thus, the forwarding is not based on just the destination IP address
the destination IP address but also the DSCP. This is known as but also the DSCP. This is known as Class-Based Forwarding (CBF).
Class-Based Forwarding (CBF).
CBF is configured at the PE1 device, mapping the DSCP values to CBF is configured at the PE1 device, mapping the DSCP values to
respective Transport Classes. This mapping (DSCP peering agreement) respective Transport Classes. This mapping (DSCP peering agreement)
is communicated to CE devices by out-of-band mechanisms. This allows is 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 to encode so that traffic is the provider network and which DSCP to encode so that traffic is
forwarded using the desired Transport Class in the provided network. forwarded using the desired Transport Class in the provided network.
When the IP packet exits the provider network to CE2, PE2 resets the When the IP packet exits the provider network to CE2, PE2 resets the
DSCP based on the DSCP peering agreement with CE2. DSCP based on the DSCP peering agreement with CE2.
12. Applicability to Network Slicing 12. Applicability to Network Slicing
In Network Slicing, the IETF Network Slice Controller (NSC) is 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 (e.g., RSVP-TE, SRTE tunnels with desired characteristics) and
skipping to change at line 2554 skipping to change at line 2531
The NSC can use the Transport Class Identifier (Color value) to The NSC can use the Transport Class Identifier (Color value) to
provision a transport tunnel in a specific IETF Network Slice. provision a transport tunnel in a specific IETF Network Slice.
Furthermore, the NSC can use the Mapping Community on the service Furthermore, the NSC can use the Mapping Community on the service
route to map traffic to the desired IETF Network Slice. route to map traffic to the desired IETF Network Slice.
13. IANA Considerations 13. IANA Considerations
13.1. New BGP SAFI 13.1. New BGP SAFI
IANA has assigned BGP SAFI code 76 for the "Classful Transport SAFI". IANA has assigned BGP SAFI code 76 for the "Classful Transport (CT)"
SAFI.
Registry Group: Subsequent Address Family Identifiers (SAFI) Registry Group: Subsequent Address Family Identifiers (SAFI)
Parameters Parameters
Registry Name: SAFI Values Registry Name: SAFI Values
+=======+=========================+===========+ +=======+=========================+===========+
| Value | Description | Reference | | Value | Description | Reference |
+=======+=========================+===========+ +=======+=========================+===========+
| 76 | Classful Transport SAFI | RFC 9832 | | 76 | Classful Transport (CT) | RFC 9832 |
+-------+-------------------------+-----------+ +-------+-------------------------+-----------+
Table 1 Table 1
This will be used to create new AFI/SAFI pairs for IPv4 and IPv6 This will be used to create new AFI/SAFI pairs for IPv4 and IPv6 BGP
Classful Transport families, namely: CT families, namely:
* "IPv4, Classful Transport" AFI/SAFI = "1/76" for carrying IPv4 * IPv4 BGP CT: AFI/SAFI = 1/76, for carrying IPv4 prefixes.
Classful Transport prefixes.
* "IPv6, Classful Transport" AFI/SAFI = "2/76" for carrying IPv6 * IPv6 BGP CT: AFI/SAFI = 2/76, for carrying IPv6 prefixes.
Classful Transport prefixes.
13.2. New Format for BGP Extended Community 13.2. New Format for BGP Extended Community
IANA has assigned a Format type (Type high = 0xa) of Extended IANA has assigned a Format type (Type high = 0xa) of Extended
Community [RFC4360] for the Transport Class from the following Community [RFC4360] for the Transport Class from the following
registries in the "Border Gateway Protocol (BGP) Extended registries in the "Border Gateway Protocol (BGP) Extended
Communities" registry group: Communities" registry group:
* the "BGP Transitive Extended Community Types" registry and * the "BGP Transitive Extended Community Types" registry and
* the "BGP Non-Transitive Extended Community Types" registry. * the "BGP Non-Transitive Extended Community Types" registry.
The same low-order six bits have been assigned for both allocations. The same low-order six bits have been assigned for both allocations.
This document uses this new Format with subtype 0x2 (route target), This document uses this new Format with subtype 0x2 (route target),
as a transitive extended community. The Route Target thus formed is as a transitive extended community. The Route Target thus formed is
called "Transport Class" Route Target extended community. called "Transport Class Route Target extended community".
The Non-Transitive Transport Class extended community with subtype The non-transitive Transport Class extended community with subtype
0x2 (route target) is called the "Non-Transitive Transport Class 0x2 (route target) is called the "Non-Transitive Transport Class
Route Target extended community". Route Target extended community".
Taking a reference of [RFC7153], the assignments in the following Following [RFC7153], assignments in the following subsections have
subsections have been made. been made.
13.2.1. Existing Registries 13.2.1. Existing Registries
13.2.1.1. Registries for the "Type" Field 13.2.1.1. Registries for the "Type" Field
13.2.1.1.1. Transitive Types 13.2.1.1.1. Transitive Types
This registry contains values of the high-order octet (the "Type" This registry contains values of the high-order octet (the "Type"
field) of a Transitive Extended Community. field) of a Transitive Extended Community.
skipping to change at line 2763 skipping to change at line 2739
+==============+========================+ +==============+========================+
| 0 | IETF Review | | 0 | IETF Review |
+--------------+------------------------+ +--------------+------------------------+
| 1-4294967295 | Private Use | | 1-4294967295 | Private Use |
+--------------+------------------------+ +--------------+------------------------+
Table 9 Table 9
As shown in the table below, the Transport Class ID value 0 is As shown in the table below, the Transport Class ID value 0 is
Reserved to represent the "Best-Effort Transport Class ID". This is Reserved to represent the "Best-Effort Transport Class ID". This is
used in the 'Transport Class ID' field of a Transport Route Target used in the 'Transport Class ID' field of a Transport Class RT that
extended community that represents the best-effort transport class. represents the Best-Effort Transport Class.
+==============+================================+ +==============+================================+
| Value | Name | | Value | Name |
+==============+================================+ +==============+================================+
| 0 | Best-Effort Transport Class ID | | 0 | Best-Effort Transport Class ID |
+--------------+--------------------------------+ +--------------+--------------------------------+
| 1-4294967295 | Private Use | | 1-4294967295 | Private Use |
+--------------+--------------------------------+ +--------------+--------------------------------+
Table 10 Table 10
As noted in Sections 4 and 7.10, 'Transport Class ID' is As noted in Sections 4 and 7.10, 'Transport Class ID' is
interchangeable with 'Color'. For purposes of backward compatibility interchangeable with 'Color'. For purposes of backward compatibility
with usage of a 'Color' field in a Color Extended Community as with usage of a 'Color' field in a Color extended community as
specified in [RFC9012] and [RFC9256], the range 1-4294967295 uses specified in [RFC9012] and [RFC9256], the range 1-4294967295 uses
'Private Use' as the Registration Procedure. 'Private Use' as the Registration Procedure.
15. Security Considerations 15. Security Considerations
This document uses the mechanisms from [RFC4760] to define new BGP This document uses the mechanisms from [RFC4760] to define new BGP
address families (AFI/SAFI : 1/76 and 2/76) that carry transport- address families (AFI/SAFI : 1/76 and 2/76) that carry transport
layer endpoints. These address families are explicitly configured layer endpoints. These address families are explicitly configured
and negotiated between BGP speakers, which confines the propagation and negotiated between BGP speakers, which confines the propagation
scope of this reachability information. These routes stay in the scope of this reachability information. These routes stay in the
part of network where the new address family is negotiated and don't part of network where the new address family is negotiated and don't
leak out into the Internet. leak out into the Internet.
Furthermore, procedures defined in Section 9.1 mitigate the risk of Furthermore, procedures defined in Section 9.1 mitigate the risk of
unintended propagation of BGP CT routes across Inter-AS boundaries unintended propagation of BGP CT routes across inter-AS boundaries
even when a BGP CT family is negotiated. BGP import and export even when a BGP CT family is negotiated. BGP import and export
policies are used to control the BGP CT reachability information policies are used to control the BGP CT reachability information
exchanged across AS boundaries. This mitigates the risk of exchanged across AS boundaries. This mitigates the risk of
advertising internal loopback addresses outside the administrative advertising internal loopback addresses outside the administrative
control of the provider network. control of the provider network.
This document does not change the underlying security issues inherent This document does not change the underlying security issues inherent
in the existing BGP protocol, such as those described in [RFC4271] in the existing BGP protocol, such as those described in [RFC4271]
and [RFC4272]. and [RFC4272].
skipping to change at line 2823 skipping to change at line 2799
routes. To avoid such scenarios, it is RECOMMENDED that routes. To avoid such scenarios, it is RECOMMENDED that
implementations support keeping SAFI 76 and SAFI 4 transport routes implementations support keeping SAFI 76 and SAFI 4 transport routes
in separate transport RIBs, distinct from service RIB that contain in separate transport RIBs, distinct from service RIB that contain
SAFI 1 service routes. SAFI 1 service routes.
BGP CT routes distribute label binding using [RFC8277] for the MPLS BGP CT routes distribute label binding using [RFC8277] for the MPLS
data plane; hence, its security considerations apply. data plane; hence, its security considerations apply.
BGP CT routes distribute SRv6 SIDs for SRv6 data planes; hence, the BGP CT routes distribute SRv6 SIDs for SRv6 data planes; hence, the
security considerations of Section 9.3 of [RFC9252] apply. Moreover, security considerations of Section 9.3 of [RFC9252] apply. Moreover,
the SRv6 SID transposition scheme is disabled in BGP CT, as described the SRv6 SID Transposition Scheme is disabled in BGP CT, as described
in Section 7.13, to mitigate the risk of misinterpreting transposed in Section 7.13, to mitigate the risk of misinterpreting transposed
SRv6 SID information as an MPLS label. SRv6 SID information as an MPLS label.
As [RFC4272] discusses, BGP is vulnerable to traffic-diversion As [RFC4272] discusses, BGP is vulnerable to traffic-diversion
attacks. This SAFI route adds a new means by which an attacker could attacks. This SAFI route adds a new means by which an attacker could
cause the traffic to be diverted from its normal path. Potential cause the traffic to be diverted from its normal path. Potential
consequences include "hijacking" of traffic (insertion of an consequences include "hijacking" of traffic (insertion of an
undesired node in the path, which allows for inspection or undesired node in the path, which allows for inspection or
modification of traffic, or avoidance of security controls) or denial modification of traffic, or avoidance of security controls) or denial
of service (directing traffic to a node that doesn't desire to of service (directing traffic to a node that doesn't desire to
skipping to change at line 2982 skipping to change at line 2958
At the time of writing, this BCP comprises the following: At the time of writing, this BCP comprises the following:
Cotton, M., Leiba, B., and T. Narten, "Guidelines for Cotton, M., Leiba, B., and T. Narten, "Guidelines for
Writing an IANA Considerations Section in RFCs", BCP 26, Writing an IANA Considerations Section in RFCs", BCP 26,
RFC 8126, DOI 10.17487/RFC8126, June 2017, RFC 8126, DOI 10.17487/RFC8126, June 2017,
<https://www.rfc-editor.org/info/rfc8126>. <https://www.rfc-editor.org/info/rfc8126>.
[BGP-CT-SRv6] [BGP-CT-SRv6]
Vairavakkalai, K., Ed. and N. Venkataraman, Ed., "BGP CT - Vairavakkalai, K., Ed. and N. Venkataraman, Ed., "BGP CT -
Adaptation to SRv6 dataplane", Work in Progress, Internet- Adaptation to SRv6 dataplane", Work in Progress, Internet-
Draft, draft-ietf-idr-bgp-ct-srv6-06, 9 November 2024, Draft, draft-ietf-idr-bgp-ct-srv6-07, 22 August 2025,
<https://datatracker.ietf.org/doc/html/draft-ietf-idr-bgp- <https://datatracker.ietf.org/doc/html/draft-ietf-idr-bgp-
ct-srv6-06>. ct-srv6-07>.
[BGP-CT-UPDATE-PACKING-TEST]
"update-packing-test-results.txt", 1a75d4d, 25 June 2023,
<https://github.com/ietf-wg-idr/draft-ietf-idr-bgp-
ct/blob/main/update-packing-test-results.txt>.
[BGP-FWD-RR] [BGP-FWD-RR]
Vairavakkalai, K., Ed. and N. Venkataraman, Ed., "BGP Vairavakkalai, K., Ed. and N. Venkataraman, Ed., "BGP
Route Reflector with Next Hop Self", Work in Progress, Route Reflector with Next Hop Self", Work in Progress,
Internet-Draft, draft-ietf-idr-bgp-fwd-rr-03, 17 September Internet-Draft, draft-ietf-idr-bgp-fwd-rr-04, 22 August
2024, <https://datatracker.ietf.org/doc/html/draft-ietf- 2025, <https://datatracker.ietf.org/doc/html/draft-ietf-
idr-bgp-fwd-rr-03>. idr-bgp-fwd-rr-04>.
[BGP-LU-EPE] [BGP-LU-EPE]
Gredler, H., Ed., Vairavakkalai, K., Ed., R, C., Gredler, H., Ed., Vairavakkalai, K., Ed., R, C.,
Rajagopalan, B., Aries, E., and L. Fang, "Egress Peer Rajagopalan, B., Aries, E., and L. Fang, "Egress Peer
Engineering using BGP-LU", Work in Progress, Internet- Engineering using BGP-LU", Work in Progress, Internet-
Draft, draft-gredler-idr-bgplu-epe-16, 14 October 2024, Draft, draft-gredler-idr-bgplu-epe-16, 14 October 2024,
<https://datatracker.ietf.org/doc/html/draft-gredler-idr- <https://datatracker.ietf.org/doc/html/draft-gredler-idr-
bgplu-epe-16>. bgplu-epe-16>.
[FLOWSPEC-REDIR-IP] [FLOWSPEC-REDIR-IP]
skipping to change at line 3038 skipping to change at line 3009
[MNH] Vairavakkalai, K., Ed., Jeganathan, J. M., Nanduri, M., [MNH] Vairavakkalai, K., Ed., Jeganathan, J. M., Nanduri, M.,
and A. R. Lingala, "BGP MultiNexthop Attribute", Work in and A. R. Lingala, "BGP MultiNexthop Attribute", Work in
Progress, Internet-Draft, draft-ietf-idr-multinexthop- Progress, Internet-Draft, draft-ietf-idr-multinexthop-
attribute-04, 25 March 2025, attribute-04, 25 March 2025,
<https://datatracker.ietf.org/doc/html/draft-ietf-idr- <https://datatracker.ietf.org/doc/html/draft-ietf-idr-
multinexthop-attribute-04>. multinexthop-attribute-04>.
[MPLS-NS] Vairavakkalai, K., Ed., Jeganathan, J. M., Ramadenu, P., [MPLS-NS] Vairavakkalai, K., Ed., Jeganathan, J. M., Ramadenu, P.,
and I. Means, "BGP Signaled MPLS Namespaces", Work in and I. Means, "BGP Signaled MPLS Namespaces", Work in
Progress, Internet-Draft, draft-kaliraj-bess-bgp-sig- Progress, Internet-Draft, draft-kaliraj-bess-bgp-mpls-
private-mpls-labels-09, 9 November 2024, namespaces-01, 21 August 2025,
<https://datatracker.ietf.org/doc/html/draft-kaliraj-bess- <https://datatracker.ietf.org/doc/html/draft-kaliraj-bess-
bgp-sig-private-mpls-labels-09>. bgp-mpls-namespaces-01>.
[PACKING-TEST]
"update-packing-test-results.txt", 1a75d4d, 25 June 2023,
<https://github.com/ietf-wg-idr/draft-ietf-idr-bgp-
ct/blob/main/update-packing-test-results.txt>.
[PCEP-RSVP-COLOR] [PCEP-RSVP-COLOR]
Rajagopalan, B., Beeram, V. P., Peng, S., Koldychev, M., Rajagopalan, B., Beeram, V. P., Peng, S., Koldychev, M.,
and G. S. Mishra, "Path Computation Element Protocol and G. S. Mishra, "Path Computation Element Protocol
(PCEP) Extension for Color", Work in Progress, Internet- (PCEP) Extension for Color", Work in Progress, Internet-
Draft, draft-ietf-pce-pcep-color-12, 26 February 2025, Draft, draft-ietf-pce-pcep-color-12, 26 February 2025,
<https://datatracker.ietf.org/doc/html/draft-ietf-pce- <https://datatracker.ietf.org/doc/html/draft-ietf-pce-
pcep-color-12>. pcep-color-12>.
[PCEP-SRPOLICY] [PCEP-SRPOLICY]
skipping to change at line 3118 skipping to change at line 3094
Mechanisms described in [BGP-LU-EPE] also apply to the BGP CT family. Mechanisms described in [BGP-LU-EPE] also apply to the BGP CT family.
The Peer/32 or Peer/128 EPE route MAY be originated in the BGP CT The Peer/32 or Peer/128 EPE route MAY be originated in the BGP CT
family with the appropriate Mapping Community (e.g., transport- family with the appropriate Mapping Community (e.g., transport-
target:0:100), thus allowing an EPE path to the peer that satisfies target:0:100), thus allowing an EPE path to the peer that satisfies
the desired SLA. the desired SLA.
Appendix B. Applicability to Intra-AS and Different Inter-AS Appendix B. Applicability to Intra-AS and Different Inter-AS
Deployments Deployments
As described in Section 10 of [RFC4364], in an Option C network, As described in Section 10 of [RFC4364], in an option C network,
service routes (VPN-IPv4) are neither maintained nor distributed by service routes (VPN-IPv4) are neither maintained nor distributed by
the ASBRs. Transport routes are maintained in the ASBRs and the ASBRs. Transport routes are maintained in the ASBRs and
propagated in BGP LU or BGP CT. propagated in BGP LU or BGP CT.
Section 8 illustrates how constructs of BGP CT work in an inter-AS Section 8 illustrates how constructs of BGP CT work in an inter-AS
Option C deployment. The BGP CT constructs: AFI/SAFI 1/76, Transport option C deployment. The BGP CT constructs: AFI/SAFI 1/76, Transport
Class, and Resolution Scheme are used in an inter-AS Option C Class, and Resolution Scheme are used in an inter-AS option C
deployment. deployment.
In Intra-AS and Inter-AS option A and option B scenarios, AFI/SAFI In intra-AS and inter-AS option A and option B scenarios, AFI/SAFI
1/76 may not be used, but the Transport Class and Resolution Scheme 1/76 may not be used, but the Transport Class and Resolution Scheme
mechanisms are used to provide service mapping. mechanisms are used to provide service mapping.
This section illustrates how BGP CT constructs work in Intra-AS and This section illustrates how BGP CT constructs work in intra-AS and
Inter-AS Option A and B deployment scenarios. inter-AS option A and option B deployment scenarios.
B.1. Intra-AS Use Case B.1. Intra-AS Use Case
B.1.1. Topology B.1.1. Topology
[RR11] [RR11]
| |
+ +
[CE21]---[PE11]-------[P1]------[PE12]------[CE31] [CE21]---[PE11]-------[P1]------[PE12]------[CE31]
skipping to change at line 3162 skipping to change at line 3138
Figure 14 shows a provider network Autonomous System, AS1. It serves Figure 14 shows a provider network Autonomous System, AS1. It serves
customers AS2 and AS3. Traffic direction being described is CE21 to customers AS2 and AS3. Traffic direction being described is CE21 to
CE31. CE31 may request a specific SLA (e.g., Gold for this traffic) CE31. CE31 may request a specific SLA (e.g., Gold for this traffic)
when traversing this provider network. when traversing this provider network.
B.1.2. Transport Layer B.1.2. Transport Layer
AS1 uses RSVP-TE intra-domain tunnels between PE11 and PE12. And it AS1 uses RSVP-TE intra-domain tunnels between PE11 and PE12. And it
uses LDP tunnels for best-effort traffic. uses LDP tunnels for best-effort traffic.
The network has two Transport classes: Gold with Transport Class ID The network has two TCs: Gold with TC ID 100 and Bronze with TC ID
100 and Bronze with Transport Class ID 200. These transport classes 200. These TCs are provisioned at the PEs. This creates the
are provisioned at the PEs. This creates the Resolution Schemes for Resolution Schemes for these TCs at these PEs.
these transport classes at these PEs.
The following tunnels exist for the Gold transport class: The following tunnels exist for the Gold TC:
* PE11_to_PE12_gold - RSVP-TE tunnel * PE11_to_PE12_gold - RSVP-TE tunnel
* PE12_to_PE11_gold - RSVP-TE tunnel * PE12_to_PE11_gold - RSVP-TE tunnel
The following tunnels exist for Bronze transport class: The following tunnels exist for Bronze TC:
* PE11_to_PE12_bronze - RSVP-TE tunnel * PE11_to_PE12_bronze - RSVP-TE tunnel
* PE11_to_PE12_bronze - RSVP-TE tunnel * PE11_to_PE12_bronze - RSVP-TE tunnel
These tunnels are provisioned to belong to transport class 100 or These tunnels are provisioned to belong to Transport Class 100 or
200. 200.
B.1.3. Service-Layer Route Exchange B.1.3. Service Layer Route Exchange
Service nodes PE11 and PE12 negotiate service families (AFI/SAFI 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 the next hop unchanged. 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 There are no tunnels for Transport Class 100 or 200 from RR11 to the
PEs. PEs.
Forwarding happens using service routes at service nodes PE11 and Forwarding happens using service routes at service nodes PE11 and
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. FIB in the provider network.
CE31 advertises a route, for example, prefix 203.0.113.31 with the CE31 advertises a route, for example, prefix 203.0.113.31 with the
next hop set to itself to PE12. CE31 can attach a Mapping Community next hop set to itself to PE12. CE31 can attach a Mapping Community
Color:0:100 on this route to indicate its request for a Gold SLA. color:0:100 on this route to indicate its request for a Gold SLA.
Or, PE12 can attach the same using locally configured policies. Or, PE12 can attach the same using locally configured policies.
Consider CE31 getting VPN service from PE12. The RD:203.0.113.31 Consider CE31 getting VPN service from PE12. The RD:203.0.113.31
route is readvertised in AFI/SAFI 1/128 by PE12 with the next hop set route is readvertised in AFI/SAFI 1/128 by PE12 with the next hop set
to itself (192.0.2.12) and label V-L1 to RR11 with the Mapping to itself (192.0.2.12) and label V-L1 to RR11 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
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 the PE11_to_PE12_gold Now PE11 can resolve the PNH 192.0.2.12 using the PE11_to_PE12_gold
RSVP TE LSP. RSVP TE LSP.
The IP FIB at PE11 VRF will have a route for 203.0.113.31 with a next The IP FIB at PE11 VRF will have a route for 203.0.113.31 with a next
hop when resolved using the Resolution Scheme belonging to the hop when resolved using the Resolution Scheme belonging to the
mapping community Color:0:100, points to a PE11_to_PE12_gold tunnel. Mapping Community color:0:100, points to a PE11_to_PE12_gold tunnel.
BGP CT AFI/SAFI 1/76 is not used in this Intra-AS deployment. But 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. preserve end-to-end SLA.
B.2. Inter-AS Option A Use Case B.2. Inter-AS Option A Use Case
B.2.1. Topology B.2.1. Topology
[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
Figure 15: BGP CT Inter-AS Option A Figure 15: BGP CT Inter-AS option A
This example in Figure 15 shows two provider network Autonomous This example in Figure 15 shows two provider network Autonomous
systems AS1, AS2. They serve L3VPN customers AS3, AS4 respectively. systems AS1, AS2. They serve L3VPN customers AS3, AS4 respectively.
The ASBRs ASBR11 and ASBR21 have IP VRFs connected directly. The The ASBRs ASBR11 and ASBR21 have IP VRFs connected directly. The
inter-AS link is IP enabled with no MPLS forwarding. inter-AS link is IP enabled with no MPLS forwarding.
Traffic direction being described is CE31 to CE41. CE41 may request Traffic direction being described is CE31 to CE41. CE41 may request
a specific SLA (e.g., Gold for this traffic), when traversing these a specific SLA (e.g., Gold for this traffic), when traversing these
provider core networks. provider core networks.
B.2.2. Transport Layer B.2.2. Transport Layer
AS1 uses RSVP-TE intra-domain tunnels between PE11 and ASBR11. And AS1 uses RSVP-TE intra-domain tunnels between PE11 and ASBR11. And
LDP tunnels for best-effort traffic. AS2 uses SRTE intra-domain LDP tunnels for best-effort traffic. AS2 uses SRTE intra-domain
tunnels between ASBR21 and PE21, and L-ISIS for best-effort tunnels. tunnels between ASBR21 and PE21, and L-ISIS for best-effort tunnels.
The networks have two Transport classes: Gold with Transport Class ID The networks have two TCs: Gold with TC ID 100, Bronze with TC ID
100, Bronze with Transport Class ID 200. These transport classes are 200. These TCs are provisioned at the PEs and ASBRs. This creates
provisioned at the PEs and ASBRs. This creates the Resolution the Resolution Schemes for these TCs at these PEs and ASBRs.
Schemes for these transport classes at these PEs and ASBRs.
Following tunnels exist for Gold transport class. Following tunnels exist for Gold TC.
* PE11_to_ASBR11_gold - RSVP-TE tunnel * PE11_to_ASBR11_gold - RSVP-TE tunnel
* ASBR11_to_PE11_gold - RSVP-TE tunnel * ASBR11_to_PE11_gold - RSVP-TE tunnel
* PE21_to_ASBR21_gold - SRTE tunnel * PE21_to_ASBR21_gold - SRTE tunnel
* ASBR21_to_PE21_gold - SRTE tunnel * ASBR21_to_PE21_gold - SRTE tunnel
Following tunnels exist for Bronze transport class. Following tunnels exist for Bronze TC.
* PE11_to_ASBR11_bronze - RSVP-TE tunnel * PE11_to_ASBR11_bronze - RSVP-TE tunnel
* ASBR11_to_PE11_bronze - RSVP-TE tunnel * ASBR11_to_PE11_bronze - RSVP-TE tunnel
* PE21_to_ASBR21_bronze - SRTE tunnel * PE21_to_ASBR21_bronze - SRTE tunnel
* ASBR21_to_PE21_bronze - SRTE tunnel * ASBR21_to_PE21_bronze - SRTE tunnel
These tunnels are provisioned to belong to transport class 100 or These tunnels are provisioned to belong to TC 100 or 200.
200.
B.2.3. Service Layer Route Exchange B.2.3. Service Layer Route Exchange
Service nodes PE11, ASBR11 negotiate service family (AFI/SAFI 1/128) Service nodes PE11, ASBR11 negotiate service family (AFI/SAFI 1/128)
on the BGP session with RR11. Service helper RR11 reflects service on the BGP session with RR11. Service helper RR11 reflects service
routes between the PE11 and ASBR11 with next hop unchanged. routes between the PE11 and ASBR11 with next hop unchanged.
Similarly, in AS2 PE21, ASBR21 negotiate service family (AFI/SAFI 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. between the PE21 and ASBR21 with next hop unchanged.
CE41 advertises a route for example prefix 203.0.113.41 with next hop CE41 advertises a route for example prefix 203.0.113.41 with next hop
self to PE21 VRF. CE41 can attach a Mapping Community Color:0:100 on self to PE21 VRF. CE41 can attach a Mapping Community color:0:100 on
this route, to indicate its request for Gold SLA. Or, PE21 can this route, to indicate its request for Gold SLA. Or, PE21 can
attach the same using locally configured policies. attach the same using locally configured policies.
Consider, CE41 is getting VPN service from PE21. The RD:203.0.113.41 Consider, CE41 is getting VPN service from PE21. The RD:203.0.113.41
route is readvertised in AFI/SAFI 1/128 by PE21 with next hop self route is readvertised in AFI/SAFI 1/128 by PE21 with next hop self
(203.0.113.21) and label V-L1 to RR21 with the Mapping Community (203.0.113.21) and label V-L1 to RR21 with the Mapping Community
Color:0:100 attached. This AFI/SAFI 1/128 route reaches ASBR21 via color:0:100 attached. This AFI/SAFI 1/128 route reaches ASBR21 via
RR21 with the next hop unchanged as PE21 and label V-L1. Now ASBR21 RR21 with the next hop unchanged as PE21 and label V-L1. Now ASBR21
can resolve the PNH 203.0.113.21 using ASBR21_to_PE21_gold SRTE LSP. can resolve the PNH 203.0.113.21 using ASBR21_to_PE21_gold SRTE LSP.
The IP FIB at ASBR21 VRF will have a route for 203.0.113.41 with a 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 next hop resolved using Resolution Scheme associated with mapping
community Color:0:100, pointing to ASBR21_to_PE21_gold tunnel. community color:0:100, pointing to ASBR21_to_PE21_gold tunnel.
This route is readvertised with the next hop set to itself by ASBR21 This route is readvertised with the next hop set to itself by ASBR21
to ASBR11 on a BGP session in the VRF. The single-hop EBGP session to ASBR11 on a BGP session in the VRF. The single-hop EBGP session
endpoints are interface addresses. ASBR21 and ASBR11 act like a CE endpoints are interface addresses. ASBR21 and ASBR11 act like a CE
to each other. The previously mentioned process repeats in AS1 until to each other. The previously mentioned process repeats in AS1 until
the route reaches PE11 and resolves over the PE11_to_ASBR11_gold RSVP the route reaches PE11 and resolves over the PE11_to_ASBR11_gold RSVP
TE tunnel. TE tunnel.
Traffic traverses as an unlabeled IP packet on the following legs: Traffic traverses as an unlabeled IP packet on the following legs:
CE31-PE11, ASBR11-ASBR21, PE21-CE41. And it uses MPLS forwarding CE31-PE11, ASBR11-ASBR21, PE21-CE41. And it uses MPLS forwarding
inside the AS1 and AS2 core. inside the AS1 and AS2 core.
BGP CT AFI/SAFI 1/76 is not used in this Inter-AS Option B 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 an end-to-end SLA. are used to preserve an end-to-end SLA.
B.3. Inter-AS Option B Use Case B.3. Inter-AS Option B Use Case
B.3.1. Topology B.3.1. Topology
[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
Figure 16: BGP CT Inter-AS Option B Figure 16: BGP CT Inter-AS option B
Figure 16 shows two provider network Autonomous Systems: AS1 and AS2. Figure 16 shows two provider network Autonomous Systems: AS1 and AS2.
They serve L3VPN customers AS3 and AS4, respectively. The ASBRs They serve L3VPN customers AS3 and AS4, respectively. The ASBRs
ASBR12 and ASBR21 don't have any IP VRFs. The inter-AS link is MPLS- ASBR12 and ASBR21 don't have any IP VRFs. The inter-AS link is MPLS-
forwarding enabled. forwarding enabled.
Traffic direction being described is CE31 to CE41. CE41 may request Traffic direction being described is CE31 to CE41. CE41 may request
a specific SLA (e.g., Gold for this traffic) when traversing these a specific SLA (e.g., Gold for this traffic) when traversing these
provider core networks. provider core networks.
B.3.2. Transport Layer B.3.2. Transport Layer
AS1 uses RSVP-TE intra-domain tunnels between PE11 and ASBR21 and LDP AS1 uses RSVP-TE intra-domain tunnels between PE11 and ASBR21 and LDP
tunnels for best-effort traffic. AS2 uses SRTE intra-domain tunnels tunnels for best-effort traffic. AS2 uses SRTE intra-domain tunnels
between ASBR21 and PE22 along with L-ISIS for best-effort tunnels. between ASBR21 and PE22 along with L-ISIS for best-effort tunnels.
The networks have two Transport classes: Gold with Transport Class ID The networks have two TCs: Gold with TC ID 100 and Bronze with TC ID
100 and Bronze with Transport Class ID 200. These transport classes 200. These TCs are provisioned at the PEs and ASBRs. This creates
are provisioned at the PEs and ASBRs. This creates the Resolution the Resolution Schemes for these Transport Classes at these PEs and
Schemes for these transport classes at these PEs and ASBRs. ASBRs.
The following tunnels exist for Gold transport class: The following tunnels exist for Gold TC:
* PE11_to_ASBR12_gold - RSVP-TE tunnel * PE11_to_ASBR12_gold - RSVP-TE tunnel
* ASBR12_to_PE11_gold - RSVP-TE tunnel * ASBR12_to_PE11_gold - RSVP-TE tunnel
* PE22_to_ASBR21_gold - SRTE tunnel * PE22_to_ASBR21_gold - SRTE tunnel
* ASBR21_to_PE22_gold - SRTE tunnel * ASBR21_to_PE22_gold - SRTE tunnel
The following tunnels exist for Bronze transport class: The following tunnels exist for Bronze TC:
* PE11_to_ASBR12_bronze - RSVP-TE tunnel * PE11_to_ASBR12_bronze - RSVP-TE tunnel
* ASBR12_to_PE11_bronze - RSVP-TE tunnel * ASBR12_to_PE11_bronze - RSVP-TE tunnel
* PE22_to_ASBR21_bronze - SRTE tunnel * PE22_to_ASBR21_bronze - SRTE tunnel
* ASBR21_to_PE22_bronze - SRTE tunnel * ASBR21_to_PE22_bronze - SRTE tunnel
These tunnels are provisioned to belong to transport class 100 or These tunnels are provisioned to belong to TC 100 or 200.
200.
B.3.3. Service-Layer Route Exchange B.3.3. Service Layer Route Exchange
Service nodes PE11 and ASBR12 negotiate service family (AFI/SAFI 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 the next hop service routes between the PE11 and ASBR12 with the next hop
unchanged. unchanged.
Similarly, in AS2 PE22, ASBR21 negotiates service family (AFI/SAFI Similarly, in AS2 PE22, ASBR21 negotiates 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 PE22 and ASBR21 with the next hop unchanged. between PE22 and ASBR21 with the next hop unchanged.
ASBR21 and ASBR12 negotiate AFI/SAFI 1/128 between them and ASBR21 and ASBR12 negotiate AFI/SAFI 1/128 between them and
readvertise L3VPN routes with the next hop set to themselves, readvertise L3VPN routes with the next hop set to themselves,
allocating new labels. The single-hop EBGP session endpoints are allocating new labels. The single-hop EBGP session endpoints are
interface addresses. interface addresses.
CE41 advertises a route, for example, prefix 203.0.113.41 with the CE41 advertises a route, for example, prefix 203.0.113.41 with the
next hop set to itself to PE22 VRF. CE41 can attach a Mapping next hop set to itself to PE22 VRF. CE41 can attach a Mapping
Community Color:0:100 on this route to indicate its request for the Community color:0:100 on this route to indicate its request for the
Gold SLA. Or, PE22 can attach the same using locally configured Gold SLA. Or, PE22 can attach the same using locally configured
policies. policies.
Consider CE41 getting VPN service from PE22. The RD:203.0.113.41 Consider CE41 getting VPN service from PE22. The RD:203.0.113.41
route is readvertised in AFI/SAFI 1/128 by PE22 with the next hop set route is readvertised in AFI/SAFI 1/128 by PE22 with the next hop set
to itself (192.0.2.22) and label V-L1 to RR23 with the Mapping to itself (192.0.2.22) and label V-L1 to RR23 with the Mapping
Community Color:0:100 attached. This AFI/SAFI 1/128 route reaches 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. SRTE LSP.
Next, ASBR21 readvertises the RD:203.0.113.41 route with the next hop Next, ASBR21 readvertises the RD:203.0.113.41 route with the next hop
set to itself to ASBR12 with a newly allocated MPLS label V-L2. set to itself to ASBR12 with a newly allocated MPLS label V-L2.
Forwarding for this label is installed to Swap V-L1, and Push labels Forwarding for this label is installed to Swap V-L1, and Push labels
for ASBR21_to_PE22_gold tunnel. for ASBR21_to_PE22_gold tunnel.
ASBR12 further readvertises the RD:203.0.113.41 route via RR13 to ASBR12 further readvertises the RD:203.0.113.41 route via RR13 to
PE11 with the next hop set to itself, 192.0.2.12. PE11 resolves the PE11 with the next hop set to itself, 192.0.2.12. PE11 resolves the
next hop 192.0.2.12 over PE11_to_ASBR12_gold RSVP TE tunnel. next hop 192.0.2.12 over PE11_to_ASBR12_gold RSVP TE tunnel.
Traffic traverses as the IP packet on the following legs: CE31-PE11 Traffic traverses as the IP packet on the following legs: CE31-PE11
and PE21-CE41. And it uses MPLS forwarding on the ASBR11-ASBR21 link and PE21-CE41. And it uses MPLS forwarding on the ASBR11-ASBR21 link
and inside the AS1-AS2 core. and inside the AS1-AS2 core.
BGP CT AFI/SAFI 1/76 is not used in this Inter-AS Option B 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 an end-to-end SLA. are used to preserve an end-to-end SLA.
Appendix C. Why reuse RFCs 8277 and 4364? Appendix C. Why reuse RFCs 8277 and 4364?
[RFC4364] is one of the key design patterns produced by the [RFC4364] is one of the key design patterns produced by the
networking industry. It introduced virtualization and allowed networking industry. It introduced virtualization and allowed
sharing of resources in the service provider space with multiple sharing of resources in the service provider space with multiple
tenant networks, providing isolated and secure Layer 3 VPN services. tenant networks, providing isolated and secure Layer 3 VPN services.
This design pattern has been reused since to provide other service- This design pattern has been reused since to provide other service
layer virtualizations like Layer 2 virtualization (VPLS, L2VPN, layer virtualizations like Layer 2 virtualization (VPLS, L2VPN,
EVPN), ISO virtualization, ATM virtualization, and Flowspec VPN. EVPN), ISO virtualization, ATM virtualization, and Flowspec VPN.
It is to be noted that these services have different NLRI encodings. It is to be noted that these services have different NLRI encodings.
The L3VPN Service family that binds the MPLS label to an IP prefix The L3VPN service family that binds the MPLS label to an IP prefix
uses the encoding described in [RFC8277] and others define different uses the encoding described in [RFC8277] and others define different
NLRI encodings. NLRI encodings.
BGP CT reuses the procedures described in [RFC4364] to slice a BGP CT reuses the procedures described in [RFC4364] to slice a
transport network into multiple transport planes that different transport network into multiple transport planes that different
service routes can bind to using color. service routes can bind to using color.
BGP CT reuses [RFC8277] because it precisely fits the purpose. That BGP CT reuses [RFC8277] because it precisely fits the purpose. That
is, in an MPLS network, BGP CT needs to bind the MPLS label for is, in an MPLS network, BGP CT needs to bind the MPLS label for
transport endpoints, which are IPv4 or IPv6 endpoints, and transport endpoints, which are IPv4 or IPv6 endpoints, and
skipping to change at line 3466 skipping to change at line 3438
In the future, if [RFC8277] evolves into a typed NLRI that does not In the future, if [RFC8277] evolves into a typed NLRI that does not
carry Label in the NLRI, BGP CT will be compatible with that as well. carry Label in the NLRI, BGP CT will be compatible with that as well.
In essence, BGP CT encoding is compatible with existing deployed In essence, BGP CT encoding is compatible with existing deployed
technologies ([RFC4364] and [RFC8277]) and will adapt to any changes technologies ([RFC4364] and [RFC8277]) and will adapt to any changes
mechanisms from [RFC8277] undergo in future. mechanisms from [RFC8277] undergo in future.
This approach leverages the benefits of time-tested design patterns This approach leverages the benefits of time-tested design patterns
proposed in [RFC4364] and [RFC8277]. Moreover, this approach greatly proposed in [RFC4364] and [RFC8277]. Moreover, 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 considerations as it complements and works well with existing
protocol machineries: this problem does not need a brand new NLRI and protocol machinery: this problem does not need a brand new NLRI and
procedures. procedures.
BGP CT design also avoids overloading the NLRI MPLS Label field from BGP CT design also avoids overloading the NLRI MPLS label field from
[RFC8277] with information related to the non-MPLS data plane because [RFC8277] with information related to the non-MPLS data plane because
it leads to backward-compatibility issues. it leads to backward-compatibility issues.
C.1. Update Packing Considerations C.1. Update Packing Considerations
BGP CT carries transport class as an attribute. This means routes BGP CT carries Transport Class as an attribute. This means routes
that don't share the same transport class cannot be packed into the that don't share the same Transport Class cannot be packed into the
same BGP UPDATE message. Update packing in BGP CT will be similar to same BGP UPDATE message. Update packing in BGP CT will be similar to
family routes from [RFC8277] carrying attributes like communities or family routes from [RFC8277] carrying attributes like communities or
extended communities. Service families like AFI/SAFI 1/128 have extended communities. Service families like AFI/SAFI 1/128 have
considerably more scale than transport families like AFI/SAFI 1/4 or considerably more scale than transport families like AFI/SAFI 1/4 or
AFI/SAFI 1/76, which carry only loopbacks. Update packing mechanisms AFI/SAFI 1/76, which carry only loopbacks. Update packing mechanisms
that scale for AFI/SAFI 1/128 routes will scale similarly for AFI/ that scale for AFI/SAFI 1/128 routes will scale similarly for AFI/
SAFI 1/76 routes. SAFI 1/76 routes.
Section 6.3.2.1 of [Intent-Routing-Color] suggests scaling numbers Section 6.3.2.1 of [Intent-Routing-Color] suggests scaling numbers
for a transport network where BGP CT can be deployed. Experiments for a transport network where BGP CT can be deployed. Experiments
were conducted with this scale to find the convergence time with BGP were conducted with this scale to find the convergence time with BGP
CT for those scaling numbers. Scenarios involving BGP CT carrying CT for those scaling numbers. Scenarios involving BGP CT carrying
IPv4 and IPv6 endpoints with an MPLS label were tested. Tests with IPv4 and IPv6 endpoints with an MPLS label were tested. Tests with
BGP CT IPv6 endpoints and SRv6 SID are planned. BGP CT IPv6 endpoints and SRv6 SID are planned.
Tests were conducted with a 1.9 million BGP CT route scale (387K Tests were conducted with a 1.9 million BGP CT route scale (387K
endpoints in 5 transport classes). Initial convergence time for all endpoints in 5 TCs). Initial convergence time for all cases was less
cases was less than 2 minutes, which compares favorably with user than 2 minutes, which compares favorably with user expectation for
expectation for such a scale. This experiment proves that carrying such a scale. This experiment proves that carrying Transport Class
transport-class information as an attribute keeps BGP convergence information as an attribute keeps BGP convergence within an
within an acceptable range. Details of the experiment and test acceptable range. Details of the experiment and test results are
results are available in [BGP-CT-UPDATE-PACKING-TEST]. available in [PACKING-TEST].
Furthermore, even in today's BGP LU deployments, each egress node Furthermore, even in today's BGP LU deployments, each egress node
originates a BGP LU route for its loopback, with some attributes like originates a BGP LU route for its loopback, with some attributes like
community identifying the originating node or region and an AIGP community identifying the originating node or region and an AIGP
attribute. These attributes may be unique per egress node; thus, attribute. These attributes may be unique per egress node; thus,
they do not help with update packing in transport family routes. they do not help with update packing in transport family routes.
Appendix D. Scaling Using BGP MPLS Namespaces Appendix D. Scaling Using BGP MPLS Namespaces
This document considers the scaling scenario suggested in This document considers the scaling scenario suggested in
Section 6.3.2.1 of [Intent-Routing-Color] where 300K nodes exist in Section 6.3.2.1 of [Intent-Routing-Color] where 300K nodes exist in
the network with 5 transport classes. the network with 5 TCs.
This may result in 1.5M transport layer routes and MPLS transit 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. nodes' MPLS-forwarding resources.
Section 6.2 of [MPLS-NS] describes how MPLS Namespaces mechanism is Section 6.2 of [MPLS-NS] describes how MPLS Namespaces mechanism is
used to scale such a network. This approach reduces the number of used to scale such a network. This approach reduces the number of
PNHs that are globally visible in the network, thus reducing 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. also.
Acknowledgements Acknowledgements
The authors thank Jeff Haas, John Scudder, Susan Hares, Dongjie The authors thank Jeff Haas, John Scudder, Susan Hares, Dongjie
(Jimmy), Moses Nagarajah, Jeffrey (Zhaohui) Zhang, Joel Halpern, (Jimmy), Moses Nagarajah, Jeffrey (Zhaohui) Zhang, Joel Halpern,
Jingrong Xie, Mohamed Boucadair, Greg Skinner, Simon Leinen, Jingrong Xie, Mohamed Boucadair, Greg Skinner, Simon Leinen,
Navaneetha Krishnan, Ravi M R, Chandrasekar Ramachandran, Shradha Navaneetha Krishnan, Ravi M R, Chandrasekar Ramachandran, Shradha
 End of changes. 280 change blocks. 
575 lines changed or deleted 547 lines changed or added

This html diff was produced by rfcdiff 1.48.