rfc9871.original   rfc9871.txt 
IDR WorkGroup D. Rao, Ed. Internet Engineering Task Force (IETF) D. Rao, Ed.
Internet-Draft S. Agrawal, Ed. Request for Comments: 9871 S. Agrawal, Ed.
Intended status: Experimental Cisco Systems Category: Experimental Cisco Systems
Expires: 24 August 2025 20 February 2025 ISSN: 2070-1721 September 2025
BGP Color-Aware Routing (CAR) BGP Color-Aware Routing (CAR)
draft-ietf-idr-bgp-car-16
Abstract Abstract
This document describes a BGP based routing solution to establish This document describes a BGP-based routing solution to establish
end-to-end intent-aware paths across a multi-domain transport end-to-end intent-aware paths across a multi-domain transport
network. The transport network can span multiple service provider network. The transport network can span multiple service provider
and customer network domains. The BGP intent-aware paths can be used and customer network domains. The BGP intent-aware paths can be used
to steer traffic flows for service routes that need a specific to steer traffic flows for service routes that need a specific
intent. This solution is called BGP Color-Aware Routing (BGP CAR). intent. This solution is called BGP Color-Aware Routing (BGP CAR).
This document describes the routing framework and BGP extensions to This document describes the routing framework and BGP extensions to
enable intent-aware routing using the BGP CAR solution. The solution enable intent-aware routing using the BGP CAR solution. The solution
defines two new BGP SAFIs (BGP CAR SAFI and BGP VPN CAR SAFI) for defines two new BGP SAFIs (BGP CAR SAFI and BGP VPN CAR SAFI) for
IPv4 and IPv6. It also defines an extensible NLRI model for both IPv4 and IPv6. It also defines an extensible Network Layer
SAFIs that allow multiple NLRI types to be defined for different use Reachability Information (NLRI) model for both SAFIs that allows
cases. Each type of NLRI contains key and TLV based non-key fields multiple NLRI types to be defined for different use cases. Each type
for efficient encoding of different per-prefix information. This of NLRI contains key and TLV-based non-key fields for efficient
specification defines two NLRI types, Color-Aware Route NLRI and IP encoding of different per-prefix information. This specification
Prefix NLRI. It defines non-key TLV types for MPLS label stack, defines two NLRI types: Color-Aware Route NLRI and IP Prefix NLRI.
Label Index and SRv6 SIDs. This solution also defines a new Local It defines non-key TLV types for the MPLS label stack -- Label Index
Color Mapping (LCM) Extended Community. and and Segment Routing over IPv6 (SRv6) Segment Identifiers (SIDs).
This solution also defines a new Local Color Mapping (LCM) Extended
Community.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This document is not an Internet Standards Track specification; it is
provisions of BCP 78 and BCP 79. published for examination, experimental implementation, and
evaluation.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months This document defines an Experimental Protocol for the Internet
and may be updated, replaced, or obsoleted by other documents at any community. This document is a product of the Internet Engineering
time. It is inappropriate to use Internet-Drafts as reference Task Force (IETF). It represents the consensus of the IETF
material or to cite them other than as "work in progress." community. It has received public review and has been approved for
publication by the Internet Engineering Steering Group (IESG). Not
all documents approved by the IESG are candidates for any level of
Internet Standard; see Section 2 of RFC 7841.
This Internet-Draft will expire on 24 August 2025. Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc9871.
Copyright Notice Copyright Notice
Copyright (c) 2025 IETF Trust and the persons identified as the Copyright (c) 2025 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents
license-info) in effect on the date of publication of this document. (https://trustee.ietf.org/license-info) in effect on the date of
Please review these documents carefully, as they describe your rights publication of this document. Please review these documents
and restrictions with respect to this document. Code Components carefully, as they describe your rights and restrictions with respect
extracted from this document must include Revised BSD License text as to this document. Code Components extracted from this document must
described in Section 4.e of the Trust Legal Provisions and are include Revised BSD License text as described in Section 4.e of the
provided without warranty as described in the Revised BSD License. Trust Legal Provisions and are provided without warranty as described
in the Revised BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 5 1.1. Terminology
1.2. Illustration . . . . . . . . . . . . . . . . . . . . . . 9 1.2. Illustration
1.3. Requirements Language . . . . . . . . . . . . . . . . . . 11 1.3. Requirements Language
2. BGP CAR SAFI . . . . . . . . . . . . . . . . . . . . . . . . 11 2. BGP CAR SAFI
2.1. Data Model . . . . . . . . . . . . . . . . . . . . . . . 11 2.1. Data Model
2.2. Extensible Encoding . . . . . . . . . . . . . . . . . . . 12 2.2. Extensible Encoding
2.3. BGP CAR Route Origination . . . . . . . . . . . . . . . . 13 2.3. BGP CAR Route Origination
2.4. BGP CAR Route Validation . . . . . . . . . . . . . . . . 13 2.4. BGP CAR Route Validation
2.5. BGP CAR Route Resolution . . . . . . . . . . . . . . . . 13 2.5. BGP CAR Route Resolution
2.6. AIGP Metric Computation . . . . . . . . . . . . . . . . . 15 2.6. AIGP Metric Computation
2.7. Native MultiPath Capability . . . . . . . . . . . . . . . 15 2.7. Native Multipath Capability
2.8. BGP CAR Signaling through different Color Domains . . . . 16 2.8. BGP CAR Signaling Through Different Color Domains
2.9. Format and Encoding . . . . . . . . . . . . . . . . . . . 17 2.9. Format and Encoding
2.9.1. BGP CAR SAFI NLRI Format . . . . . . . . . . . . . . 18 2.9.1. BGP CAR SAFI NLRI Format
2.9.2. Type-Specific Non-Key TLV Format . . . . . . . . . . 19 2.9.2. Type-Specific Non-Key TLV Format
2.9.3. Color-Aware Route (E, C) NLRI Type . . . . . . . . . 23 2.9.3. Color-Aware Route (E, C) NLRI Type
2.9.4. IP Prefix (E) NLRI Type . . . . . . . . . . . . . . . 25 2.9.4. IP Prefix (E) NLRI Type
2.9.5. Local-Color-Mapping (LCM) Extended-Community . . . . 26 2.9.5. Local-Color-Mapping (LCM) Extended-Community
2.10. LCM-EC and BGP Color-EC usage . . . . . . . . . . . . . . 27 2.10. LCM-EC and BGP Color-EC Usage
2.11. Error Handling . . . . . . . . . . . . . . . . . . . . . 28 2.11. Error Handling
3. Service Route Automated Steering on Color-Aware Path . . . . 30 3. Service Route Automated Steering on Color-Aware Paths
4. Filtering . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4. Filtering
5. Scaling . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 5. Scaling
5.1. Ultra-Scale Reference Topology . . . . . . . . . . . . . 32 5.1. Ultra-Scale Reference Topology
5.2. Deployment Model . . . . . . . . . . . . . . . . . . . . 33 5.2. Deployment Model
5.2.1. Flat . . . . . . . . . . . . . . . . . . . . . . . . 33 5.2.1. Flat
5.2.2. Hierarchical Design with Next-Hop-Self at Ingress 5.2.2. Hierarchical Design with Next-Hop-Self at Ingress
Domain BR . . . . . . . . . . . . . . . . . . . . . . 34 Domain BR
5.2.3. Hierarchical Design with Next-Hop-Unchanged at Ingress 5.2.3. Hierarchical Design with Next-Hop-Unchanged at Ingress
Domain BR . . . . . . . . . . . . . . . . . . . . . . 36 Domain BR
5.3. Scale Analysis . . . . . . . . . . . . . . . . . . . . . 37 5.3. Scale Analysis
5.4. Anycast SID . . . . . . . . . . . . . . . . . . . . . . . 39 5.4. Anycast SID
5.4.1. Anycast SID for Transit Inter-domain Nodes . . . . . 39 5.4.1. Anycast SID for Transit Inter-Domain Nodes
5.4.2. Anycast SID for Transport Color Endpoints (e.g., 5.4.2. Anycast SID for Transport Color Endpoints
PEs) . . . . . . . . . . . . . . . . . . . . . . . . 39 6. Routing Convergence
6. Routing Convergence . . . . . . . . . . . . . . . . . . . . . 40 7. CAR SRv6
7. CAR SRv6 . . . . . . . . . . . . . . . . . . . . . . . . . . 40 7.1. Overview
7.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 40 7.1.1. Routed Service SID
7.1.1. Routed Service SID . . . . . . . . . . . . . . . . . 40 7.1.2. Non-Routed Service SID
7.1.2. Non-routed Service SID . . . . . . . . . . . . . . . 41 7.2. Deployment Options for CAR SRv6 Locator Reachability
7.2. Deployment Options For CAR SRv6 Locator Reachability Distribution and Forwarding
Distribution and Forwarding . . . . . . . . . . . . . . . 43 7.2.1. Hop-by-Hop IPv6 Forwarding for BGP SRv6 Prefixes
7.2.1. Hop by Hop IPv6 Forwarding for BGP SRv6 Prefixes . . 43 7.2.2. Encapsulation Between BRs for BGP SRv6 Prefixes
7.2.2. Encapsulation between BRs for BGP SRv6 Prefixes . . . 44 7.3. Operational Benefits of Using CAR SAFI for SRv6 Locator
7.3. Operational Benefits of using CAR SAFI for SRv6 Locator Prefix Distribution
Prefix Distribution . . . . . . . . . . . . . . . . . . . 45 8. CAR IP Prefix Route
8. CAR IP Prefix Route . . . . . . . . . . . . . . . . . . . . . 45 9. VPN CAR
9. VPN CAR . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 9.1. Format and Encoding
9.1. Format and Encoding . . . . . . . . . . . . . . . . . . . 48 9.1.1. VPN CAR (E, C) NLRI Type
9.1.1. VPN CAR (E, C) NLRI Type . . . . . . . . . . . . . . 49 9.1.2. VPN CAR IP Prefix NLRI Type
9.1.2. VPN CAR IP Prefix NLRI Type . . . . . . . . . . . . . 50 10. IANA Considerations
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 50 10.1. BGP CAR SAFIs
10.1. BGP CAR SAFIs . . . . . . . . . . . . . . . . . . . . . 50 10.2. "BGP CAR NLRI Types" Registry
10.2. BGP CAR NLRI Types Registry . . . . . . . . . . . . . . 51 10.3. "BGP CAR NLRI TLV" Registry
10.3. BGP CAR NLRI TLV Registry . . . . . . . . . . . . . . . 51 10.4. Guidance for Designated Experts
10.4. Guidance for Designated Experts . . . . . . . . . . . . 51 10.4.1. Additional Evaluation Criteria for the "BGP CAR NLRI
10.4.1. Additional evaluation criteria for the BGP CAR NLRI Types" Registry
Types Registry . . . . . . . . . . . . . . . . . . . 52 10.4.2. Additional Evaluation Criteria for the "BGP CAR NLRI
10.4.2. Additional evaluation criteria for the BGP CAR NLRI TLV" Registry
TLV Registry . . . . . . . . . . . . . . . . . . . . 52 10.5. "Border Gateway Protocol (BGP) Extended Communities"
10.5. BGP Extended-Community Registry . . . . . . . . . . . . 52 Registry
11. Manageability and Operational Considerations . . . . . . . . 53 11. Manageability and Operational Considerations
12. Security Considerations . . . . . . . . . . . . . . . . . . . 53 12. Security Considerations
13. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 54 13. References
13.1. Co-authors . . . . . . . . . . . . . . . . . . . . . . . 55 13.1. Normative References
13.2. Additional Contributors . . . . . . . . . . . . . . . . 56 13.2. Informative References
14. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 56 Appendix A. Illustrations of Service Steering
15. References . . . . . . . . . . . . . . . . . . . . . . . . . 56 A.1. E2E BGP Transport CAR Intent Realized Using IGP Flex-Algo
15.1. Normative References . . . . . . . . . . . . . . . . . . 56 A.2. E2E BGP Transport CAR Intent Realized Using SR Policy
15.2. Informative References . . . . . . . . . . . . . . . . . 58 A.3. BGP Transport CAR Intent Realized in a Section of the
Appendix A. Illustrations of Service Steering . . . . . . . . . 60 Network
A.1. E2E BGP transport CAR intent realized using IGP A.3.1. Provide Intent for Service Flows Only in Core Domain
Flex-Algo . . . . . . . . . . . . . . . . . . . . . . . . 60 Running IS-IS Flex-Algo
A.2. E2E BGP transport CAR intent realized using SR Policy . . 62 A.3.2. Provide Intent for Service Flows Only in Core Domain
A.3. BGP transport CAR intent realized in a section of the over TE Tunnel Mesh
network . . . . . . . . . . . . . . . . . . . . . . . . . 64 A.4. Transit Network Domains That Do Not Support CAR
A.3.1. Provide intent for service flows only in core domain A.5. Resource Avoidance Using BGP CAR and IGP Flex-Algo
running IS-IS Flex-Algo . . . . . . . . . . . . . . . 64 A.6. Per-Flow Steering over CAR Routes
A.7. Advertising BGP CAR Routes for Shared IP Addresses
A.3.2. Provide intent for service flows only in core domain Appendix B. Color Mapping Illustrations
over TE tunnel mesh . . . . . . . . . . . . . . . . . 66 B.1. Single Color Domain Containing Network Domains with N:N
A.4. Transit network domains that do not support CAR . . . . . 68 Color Distribution
A.5. Resource Avoidance using BGP CAR and IGP Flex-Algo . . . 69 B.2. Single Color Domain Containing Network Domains with N:M
A.6. Per-Flow Steering over CAR routes . . . . . . . . . . . . 71 Color Distribution
A.7. Advertising BGP CAR routes for shared IP addresses . . . 72 B.3. Multiple Color Domains
Appendix B. Color Mapping Illustrations . . . . . . . . . . . . 74 Appendix C. CAR SRv6 Illustrations
B.1. Single color domain containing network domains with N:N C.1. BGP CAR SRv6 Locator Reachability Hop-by-Hop Distribution
color distribution . . . . . . . . . . . . . . . . . . . 74 C.2. BGP CAR SRv6 Locator Reachability Distribution with
B.2. Single color domain containing network domains with N:M Encapsulation
color distribution . . . . . . . . . . . . . . . . . . . 74 C.3. BGP CAR (E, C) Route Distribution for Steering Non-Routed
B.3. Multiple color domains . . . . . . . . . . . . . . . . . 78 Service SID
Appendix C. CAR SRv6 Illustrations . . . . . . . . . . . . . . . 79 Appendix D. CAR SAFI NLRI Update Packing Efficiency Calculation
C.1. BGP CAR SRv6 locator reachability hop by hop Acknowledgements
distribution . . . . . . . . . . . . . . . . . . . . . . 79 Contributors
C.2. BGP CAR SRv6 locator reachability distribution with Authors' Addresses
encapsulation . . . . . . . . . . . . . . . . . . . . . . 82
C.3. BGP CAR (E, C) route distribution for steering non-routed
service SID . . . . . . . . . . . . . . . . . . . . . . . 84
Appendix D. CAR SAFI NLRI update packing efficiency
calculation . . . . . . . . . . . . . . . . . . . . . . . 87
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 91
1. Introduction 1. Introduction
BGP Color-Aware Routing (CAR) is a BGP based routing solution to BGP Color-Aware Routing (CAR) is a BGP-based routing solution to
establish end-to-end intent-aware paths across a multi-domain service establish end-to-end intent-aware paths across a multi-domain service
provider transport network. BGP CAR distributes distinct routes to a provider transport network. BGP CAR distributes distinct routes to a
destination network endpoint, such as a PE router, for different destination network endpoint, such as a Provider Edge (PE) router,
intents or colors. Color is a non-zero 32-bit integer value for different intents or colors. Color is a non-zero 32-bit integer
associated with a network intent (low-cost, low-delay, avoid some value associated with a network intent (such as low cost, low delay,
resources, 5G network slice, etc.) as defined in Section 2.1 of avoid some resources, 5G network slice, etc.) as defined in
[RFC9256]. Section 2.1 of [RFC9256].
BGP CAR fulfills the transport and VPN problem statement and BGP CAR fulfills the transport and VPN problem statement and the
requirements described in requirements described in [INTENT-AWARE].
[I-D.hr-spring-intentaware-routing-using-color].
For this purpose, this document specifies two new BGP SAFIs, called For this purpose, this document specifies two new BGP SAFIs, called
BGP CAR SAFI (83) and VPN CAR SAFI (84) that carry infrastructure BGP CAR SAFI (83) and VPN CAR SAFI (84), that carry infrastructure
routes to set up the transport paths. Both CAR SAFI and VPN CAR SAFI routes to set up the transport paths. Both CAR SAFI and VPN CAR SAFI
apply to IPv4 Unicast and IPv6 Unicast AFIs (AFI 1 and AFI 2). The apply to IPv4 Unicast and IPv6 Unicast AFIs (AFI 1 and AFI 2). The
use of these SAFIs with other AFIs are outside the scope of this use of these SAFIs with other AFIs are outside the scope of this
document. document.
BGP CAR SAFI can be enabled on transport devices in a provider BGP CAR SAFI can be enabled on transport devices in a provider
network (underlay) to set up color-aware transport/infrastructure network (underlay) to set up color-aware transport/infrastructure
paths across provider networks. The multi-domain transport network paths across provider networks. The multi-domain transport network
may comprise of multiple BGP ASes as well as multiple IGP domains may comprise of multiple BGP Autonomous Systems (ASes) as well as
within a single BGP AS. BGP CAR SAFI can also be enabled within a multiple IGP domains within a single BGP AS. BGP CAR SAFI can also
VRF on a PE router towards a peering CE router, and on devices within be enabled within a VPN Routing and Forwarding (VRF) on a PE router
a customer network. VPN CAR SAFI is used for the distribution of towards a peering Customer Edge (CE) router, and on devices within a
customer network. VPN CAR SAFI is used for the distribution of
intent-aware routes from different customers received on a PE router intent-aware routes from different customers received on a PE router
across the provider networks, maintaining the separation of the across the provider networks, maintaining the separation of the
customer address spaces that may overlap. The BGP CAR solution thus customer address spaces that may overlap. The BGP CAR solution thus
enables intent-aware transport paths to be set up across a multi- enables intent-aware transport paths to be set up across a multi-
domain network that can span customer and provider network domains. domain network that can span customer and provider network domains.
The document also defines two BGP CAR route types for this purpose. This document also defines two BGP CAR route types for this purpose.
The BGP CAR Type-1 NLRI (E, C) enables the generation and The BGP CAR Type-1 NLRI (E, C) enables the generation and
distribution of multiple color-aware routes to the same destination distribution of multiple color-aware routes to the same destination
IP prefix for different colors. This case arises from situations IP prefix for different colors. This case arises from situations
where a transport node such as a PE has a common IP address (such as where a transport node such as a PE has a common IP address (such as
a loopback) to advertise for multiple intents. The operator intends a loopback) to advertise for multiple intents. The operator intends
to use the common IP address as both the BGP next hop for service to use the common IP address as both the BGP next hop for service
routes and as the transport endpoint for the data plane path. routes and as the transport endpoint for the data plane path.
Multiple routes are needed for this same address or prefix to set up Multiple routes are needed for this same address or prefix to set up
a unique path for each intent. One example is setting up multiple a unique path for each intent. One example is setting up multiple
MPLS/SR-MPLS LSPs to an egress PE, one per intent. Label Switched Paths (LSPs) for MPLS or Segment Routing over MPLS
(SR-MPLS) to an egress PE, one per intent.
The BGP CAR Type-2 NLRI (IP Prefix or E) enables the distribution of The BGP CAR Type-2 NLRI (IP Prefix or E) enables the distribution of
multiple color-aware routes to a transport node for the case where multiple color-aware routes to a transport node for the case where
the operator specifies a unique network IP address block for a given the operator specifies a unique network IP address block for a given
intent, and the transport node gets assigned a unique IP prefix or intent, and the transport node gets assigned a unique IP prefix or
address for each intent. An example use-case is SRv6 per-intent address for each intent. An example use case is Segment Routing over
locators. IPv6 (SRv6) per-intent locators.
These BGP CAR intent-aware paths are then used by an ingress node These BGP CAR intent-aware paths are then used by an ingress node
(such as a PE) to steer traffic flows for service routes that need (such as a PE) to steer traffic flows for service routes that need
the specific intents. Steering may be towards a destination for all the specific intents. Steering may be towards a destination for all
or specific traffic flows. or specific traffic flows.
BGP CAR adheres to the flat routing model of BGP-IP/LU(Labeled BGP CAR adheres to the flat routing model of BGP-IP/LU(Labeled
Unicast) but extends it to support intent-awareness, thereby Unicast) but extends it to support intent awareness, thereby
providing a consistent operational experience with those widely providing a consistent operational experience with those widely
deployed transport routing technologies. deployed transport routing technologies.
1.1. Terminology 1.1. Terminology
+=============+===================================================+ Intent (in routing):
+=============+===================================================+ Any behaviors to influence routing or path selection, including
| Intent (in | Any behaviors to influence routing or path | any combination of the following behaviors:
| routing) | selection, including any combination of the |
| | following behaviors: a) Topology path selection |
| | (e.g. minimize metric or avoid resource), b) NFV |
| | service insertion (e.g. service chain steering), |
| | c) per-hop behavior (e.g. a 5G slice). This is a |
| | more specific concept w.r.t. routing beyond best- |
| | effort, compared to intent as a declarative |
| | abstraction in [RFC9315]. |
+-------------+---------------------------------------------------+
+-------------+---------------------------------------------------+
| Color | A non-zero 32-bit integer value associated with |
| | an intent (e.g. low-cost , low-delay, or avoid |
| | some resources) as defined in [RFC9256] |
| | Section 2.1. Color assignment is managed by the |
| | operator. |
+-------------+---------------------------------------------------+
+-------------+---------------------------------------------------+
| Colored | An egress PE (e.g. E2) colors its BGP service |
| Service | (e.g. VPN) route (e.g. V/v) to indicate the |
| Route | intent that it requests for the traffic bound to |
| | V/v. The color is encoded as a BGP Color |
| | Extended-Community [RFC9012], used as per |
| | [RFC9256], or represented by the locator part of |
| | SRv6 Service SID [RFC9252]. |
+-------------+---------------------------------------------------+
+-------------+---------------------------------------------------+
| Color-Aware | A path to forward packets towards E2 which |
| Path to | satisfies the intent associated with color C. |
| (E2, C) | Several technologies may provide a Color-Aware |
| | Path to (E2, C): SR Policy [RFC9256], IGP Flex- |
| | Algo [RFC9350], BGP CAR [specified in this |
| | document]. |
+-------------+---------------------------------------------------+
+-------------+---------------------------------------------------+
| Color-Aware | A distributed or signaled route that builds a |
| Route (E2, | color-aware path to E2 for color C. |
| C) | |
+-------------+---------------------------------------------------+
+-------------+---------------------------------------------------+
| Service | An ingress PE (or ASBR) E1 automatically steers |
| Route | traffic for a C-colored service route V/v from E2 |
| Automated | onto an (E2, C) color-aware path. If several |
| Steering on | such paths exist, a preference scheme is used to |
| Color-Aware | select the best path (for example, IGP Flex-Algo |
| Path | preferred over SR Policy preferred over BGP CAR. |
+-------------+---------------------------------------------------+
+-------------+---------------------------------------------------+
| Color | A set of nodes which share the same Color-to- |
| Domain | Intent mapping, typically under single |
| | administration. This set can be organized into |
| | one or multiple network domains (IGP areas/ |
| | instances within a single BGP AS, or multiple BGP |
| | ASes). Color-to-intent mapping on nodes is set |
| | by configuration. Color re-mapping and filtering |
| | may happen at color domain boundaries. Refer to |
| | [I-D.hr-spring-intentaware-routing-using-color]. |
+-------------+---------------------------------------------------+
+-------------+---------------------------------------------------+
| Resolution | An inter-domain BGP CAR route (E, C) via N is |
| of a BGP | resolved on an intra-domain color-aware path (N, |
| CAR route | C) where N is the next hop of the BGP CAR route. |
| (E, C) | |
+-------------+---------------------------------------------------+
+-------------+---------------------------------------------------+
| Resolution | In this document, and consistent with the |
| vs Steering | terminology used in the SR Policy document |
| | [RFC9256] Section 8, (Service route) steering is |
| | used to describe the mapping of the traffic for a |
| | service route onto a BGP CAR path. In contrast, |
| | the term resolution is preserved for the mapping |
| | of an inter-domain BGP CAR route on an intra- |
| | domain color-aware path. |
+-------------+---------------------------------------------------+
+-------------+---------------------------------------------------+
| | Service Steering: Service route maps traffic to a |
| | BGP CAR path (or other Color-Aware Path: e.g. SR |
| | Policy). If a Color-Aware Path is not available, |
| | local policy may map to traditional routing/TE |
| | path (e.g. BGP LU, RSVP-TE, IGP/LDP). The |
| | service steering concept is agnostic to the |
| | transport technology used. Section 3 describes |
| | the specific service steering mechanisms |
| | leveraged for MPLS, SR-MPLS and SRv6. |
+-------------+---------------------------------------------------+
+-------------+---------------------------------------------------+
| | Intra-Domain Resolution: BGP CAR route maps to |
| | intra-domain color aware path (e.g. SR Policy, |
| | IGP Flex-Algo, BGP CAR) or traditional routing/TE |
| | path (e.g. RSVP-TE, IGP/LDP, BGP-LU). |
+-------------+---------------------------------------------------+
+-------------+---------------------------------------------------+
| Transport | A network that comprises of multiple cooperating |
| Network | domains managed by one or more operators, and |
| | uses routing technologies such as IP, MPLS and |
| | Segment Routing to forward packets for |
| | connectivity and other services. In an SR |
| | deployment, the transport network is within a |
| | trust domain as per [RFC8402]. |
+-------------+---------------------------------------------------+
+-------------+---------------------------------------------------+
| Transport | Refers to an underlay network layer (e.g., MPLS |
| Layer | LSPs between PEs) that gets used by an overlay or |
| | service layer (e.g., MPLS VPNs). |
+-------------+---------------------------------------------------+
+-------------+---------------------------------------------------+
| Transport | A BGP Route Reflector used to distribute |
| RR | transport/underlay routes within a domain or |
| | across domains. |
+-------------+---------------------------------------------------+
+-------------+---------------------------------------------------+
| Service RR | A BGP Route Reflector used to distribute service/ |
| | overlay routes within a domain or across domains. |
+-------------+---------------------------------------------------+
Table 1 a. Topology path selection (e.g., minimize metric or avoid
resource)
b. Network Function Virtualization (NFV) service insertion (e.g.,
service chain steering)
c. Per-hop behavior (e.g., a 5G slice)
This is a more specific concept with respect to routing beyond
best-effort, compared to intent as a declarative abstraction in
[RFC9315].
Color:
A non-zero 32-bit integer value associated with an intent (e.g.,
low cost, low delay, or avoid some resources) as defined in
Section 2.1 of [RFC9256]. Color assignment is managed by the
operator.
Colored service route:
An egress PE (e.g., E2) colors its BGP service (e.g., VPN) route
(e.g., V/v) to indicate the intent that it requests for the
traffic bound to V/v. The color is encoded as a BGP Color
Extended-Community [RFC9012], used as per [RFC9256], or
represented by the locator part of SRv6 Service SID [RFC9252].
Color-aware path to (E2, C):
A path to forward packets towards E2 that satisfies the intent
associated with color C. Several technologies may provide a
color-aware path to (E2, C), such as SR Policy [RFC9256], IGP
Flex-Algo [RFC9350], and BGP CAR (as specified in this document).
Color-aware route (E2, C):
A distributed or signaled route that builds a color-aware path to
E2 for color C.
Service route automated steering on color-aware path:
An ingress PE (or ASBR) E1 automatically steers traffic for a
C-colored service route V/v from E2 onto an (E2, C) color-aware
path. If several such paths exist, a preference scheme is used to
select the best path (for example, IGP Flex-Algo is preferred over
SR Policy, and SR Policy is preferred over BGP CAR).
Color domain:
A set of nodes that share the same color-to-intent mapping,
typically under single administration. This set can be organized
into one or multiple network domains (IGP areas/instances within a
single BGP AS, or multiple BGP ASes). Color-to-intent mapping on
nodes is set by configuration. Color re-mapping and filtering may
happen at color domain boundaries. Refer to [INTENT-AWARE].
Resolution of a BGP CAR route (E, C):
An inter-domain BGP CAR route (E, C) via N is resolved on an
intra-domain color-aware path (N, C) where N is the next hop of
the BGP CAR route.
Resolution versus steering:
Consistent with the terminology used in the SR Policy document
(Section 8 of [RFC9256]), in this document (service route)
steering is used to describe the mapping of the traffic for a
service route onto a BGP CAR path. In contrast, the term
resolution is preserved for the mapping of an inter-domain BGP CAR
route on an intra-domain color-aware path.
Service steering:
Service route maps traffic to a BGP CAR path (or other color-
aware path, e.g., SR Policy). If a color-aware path is not
available, local policy may map to a traditional routing/TE
path (e.g., BGP LU, RSVP-TE, IGP/LDP). The service steering
concept is agnostic to the transport technology used.
Section 3 describes the specific service steering mechanisms
leveraged for MPLS, SR-MPLS, and SRv6.
Intra-domain resolution:
BGP CAR route maps to an intra-domain color-aware path (e.g.,
SR Policy, IGP Flex-Algo, BGP CAR) or a traditional routing/TE
path (e.g., RSVP-TE, IGP/LDP, BGP-LU).
Transport network:
A network that comprises of multiple cooperating domains managed
by one or more operators, and uses routing technologies such as
IP, MPLS, and SR to forward packets for connectivity and other
services. In an SR deployment, the transport network is within a
trusted domain as per [RFC8402].
Transport layer:
Refers to an underlay network layer (e.g., MPLS LSPs between PEs)
that gets used by an overlay or service layer (e.g., MPLS VPNs).
Transport RR:
A BGP Route Reflector (RR) used to distribute transport/underlay
routes within a domain or across domains.
Service RR:
A BGP Route Reflector (RR) used to distribute service/overlay
routes within a domain or across domains.
Abbreviations: Abbreviations:
* AFI/SAFI: BGP Address-Family/Sub-Address-Family Identifiers. ABR: Area Border Router
* AIGP: Accumulated IGP Metric Attribute [RFC7311]. AFI: Address Family Identifier
* BGP-LU: BGP Labeled Unicast SAFI [RFC8277]. AIGP: Accumulated IGP Metric Attribute [RFC7311]
* BGP-IP: BGP IPv4/IPv6 Unicast AFI/SAFIs [RFC4271], [RFC4760]. ASBR: Autonomous System Border Router
* BR: Border Router, either for an IGP Area (ABR) or a BGP BGP-LU: BGP Labeled Unicast SAFI [RFC8277]
Autonomous System (ASBR).
* Color-EC: BGP Color Extended-Community [RFC9012]. BGP-IP: BGP IPv4/IPv6 Unicast AFI/SAFIs [RFC4271] [RFC4760]
* E: Generic representation of a transport endpoint such as a PE, BR: Border Router (either for an IGP area (an ABR) or a BGP
ABR or ASBR. autonomous system (an ASBR))
* LCM-EC: BGP Local Color Mapping Extended-Community. Color-EC: BGP Color Extended-Community [RFC9012]
* NLRI: Network Layer Reachability Information [RFC4271]. E: Generic representation of a transport endpoint such as a PE, ABR,
or ASBR
* P node: An intra-domain transport router. LCM-EC: BGP Local Color Mapping Extended-Community
* RR: BGP Route Reflector. NLRI: Network Layer Reachability Information [RFC4271]
* TEA: Tunnel Encapsulation Attribute [RFC9012]. P node: An intra-domain transport router
* V/v, W/w: Generic representations of a service route (indicating RD: Route Distinguisher
prefix/masklength), regardless of AFI/SAFI or actual NLRI
encoding. RR: Route Reflector
SAFI: Subsequent Address Family Identifier
TEA: Tunnel Encapsulation Attribute [RFC9012]
V/v, W/w: Generic representations of a service route (indicating
prefix/mask length), regardless of AFI/SAFI or actual NLRI
encoding
1.2. Illustration 1.2. Illustration
Here is a brief illustration of the salient properties of the BGP CAR Here is a brief illustration of the salient properties of the BGP CAR
solution. solution.
+-------------+ +-------------+ +-------------+ +-------------+ +-------------+ +-------------+
| | | | | | V/v with C1 | | | | | | V/v with C1
|----+ |------| |------| +----|/ |----+ |------| |------| +----|/
| E1 | | | | | | E2 |\ | E1 | | | | | | E2 |\
skipping to change at page 9, line 26 skipping to change at line 391
| Domain 1 | | Domain 2 | | Domain 3 | | Domain 1 | | Domain 2 | | Domain 3 |
+-------------+ +-------------+ +-------------+ +-------------+ +-------------+ +-------------+
Figure 1: BGP CAR Solution Illustration Figure 1: BGP CAR Solution Illustration
All the nodes are part of an inter-domain network under a single All the nodes are part of an inter-domain network under a single
authority and with a consistent color-to-intent mapping: authority and with a consistent color-to-intent mapping:
* C1 is mapped to "low-delay" * C1 is mapped to "low-delay"
- Flex-Algo FA1 is mapped to "low delay" and hence to C1 - Flex-Algo FA1 is mapped to "low delay", and hence to C1
* C2 is mapped to "low-delay and avoid resource R" * C2 is mapped to "low-delay and avoid resource R"
- Flex-Algo FA2 is mapped to "low delay and avoid resource R" and - Flex-Algo FA2 is mapped to "low delay and avoid resource R",
hence C2 and hence to C2
E1 receives two service routes from E2: E1 receives two service routes from E2:
* V/v with BGP Color-EC C1 * V/v with BGP Color-EC C1
* W/w with BGP Color-EC C2 * W/w with BGP Color-EC C2
E1 has the following color-aware paths: E1 has the following color-aware paths:
* (E2, C1) provided by BGP CAR with the following per-domain * (E2, C1) provided by BGP CAR with the following per-domain
support: support:
- Domain1: over IGP FA1 - Domain 1: over IGP FA1
- Domain2: over SR Policy bound to color C1 - Domain 2: over SR Policy bound to color C1
- Domain3: over IGP FA1 - Domain 3: over IGP FA1
* (E2, C2) provided by SR Policy * (E2, C2) provided by SR Policy
E1 automatically steers traffic for the received service routes as E1 automatically steers traffic for the received service routes as
follows: follows:
* V/v via (E2, C1) provided by BGP CAR * V/v via (E2, C1) provided by BGP CAR
* W/w via (E2, C2) provided by SR Policy * W/w via (E2, C2) provided by SR Policy
Illustrated Properties: Illustrated properties:
* Leverage of the BGP Color-EC * Leverage of the BGP Color-EC
- The service routes are colored with widely used BGP Color - The service routes are colored with widely used BGP Color
Extended-Community [RFC9012] to request intent Extended-Community [RFC9012] to request intent
* (E, C) Automated Steering * (E, C) automated steering
- V/v and W/w are automatically steered on the appropriate color- - V/v and W/w are automatically steered on the appropriate color-
aware path aware path
* Seamless co-existence of BGP CAR and SR Policy * Seamless coexistence of BGP CAR and SR Policy
- V/v is steered on BGP CAR color-aware path - V/v is steered on BGP CAR color-aware path
- W/w is steered on SR Policy color-aware path - W/w is steered on SR Policy color-aware path
* Seamless interworking of BGP CAR and SR Policy * Seamless interworking of BGP CAR and SR Policy
- V/v is steered on a BGP CAR color-aware path that is itself - V/v is steered on a BGP CAR color-aware path that is itself
resolved within domain 2 onto an SR Policy bound to the color resolved within domain 2 onto an SR Policy bound to the color
of V/v of V/v
Other properties: Other properties:
* MPLS data-plane: with 300k PE's and 5 colors, the BGP CAR solution * MPLS data-plane: with 300k PEs and 5 colors, the BGP CAR solution
ensures that no single node needs to support a data-plane scaling ensures that no single node needs to support a data-plane scaling
in the order of Remote PE * C (Section 5). This would otherwise in the order of Remote PE * C (Section 5). This would otherwise
exceed the MPLS data-plane. exceed the MPLS data-plane.
* Control-Plane: a node should not install a (E, C) path if it's not * Control-plane: a node should not install a (E, C) path if it's not
participating in that color-aware path. participating in that color-aware path.
* Incongruent Color-Intent mapping: the solution supports the * Incongruent color-intent mapping: the solution supports the
signaling of a BGP CAR route across different color domains. signaling of a BGP CAR route across different color domains
(Section 2.8) (Section 2.8).
The key benefits of this model are: The key benefits of this model are:
* leverage of the BGP Color-EC [RFC9012] to color service routes * Leverage of the BGP Color-EC [RFC9012] to color service routes
* the definition of the automated service steering: a C-colored
* The definition of the automated service steering: a C-colored
service route V/v from E2 is steered onto a color-aware path (E2, service route V/v from E2 is steered onto a color-aware path (E2,
C) C)
* the definition of the data model of a BGP CAR path: (E, C) * The definition of the data model of a BGP CAR path: (E, C)
- natural extension of BGP IP/LU data model (E) - Natural extension of BGP IP/LU data model (E)
- consistent with SR Policy data model - Consistent with SR Policy data model
* the definition of the recursive resolution of a BGP CAR route: a * The definition of the recursive resolution of a BGP CAR route: a
BGP CAR (E2, C) route via N is resolved onto the color-aware path BGP CAR (E2, C) route via N is resolved onto the color-aware path
(N, C) which may itself be provided by BGP CAR or via another (N, C), which may itself be provided by BGP CAR or via another
color-aware routing solution (e.g., SR Policy, IGP Flex-Algo). color-aware routing solution (e.g., SR Policy, IGP Flex-Algo)
* Native support for multiple transport encapsulations (e.g., MPLS, * Native support for multiple transport encapsulations (e.g., MPLS,
SR, SRv6, IP) SR, SRv6, IP)
1.3. Requirements Language 1.3. Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP "OPTIONAL" in this document are to be interpreted as described in
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.
2. BGP CAR SAFI 2. BGP CAR SAFI
2.1. Data Model 2.1. Data Model
The BGP CAR data model is: The BGP CAR data model is:
* NLRI Key: Falls into two categories, to accommodate the use-cases NLRI key: Falls into two categories to accommodate the use cases
described in the introduction: described in the introduction:
- Type-1: Key is IP Prefix and Color (E, C). Color in NLRI key Type-1: Key is IP Prefix and Color (E, C). Color in NLRI key
distinguishes a color-aware route for a common IP prefix, one distinguishes a color-aware route for a common IP prefix, one
per intent. Color also indicates the intent associated with per intent. Color also indicates the intent associated with
the route. the route.
- Type-2: Key is IP Prefix (E). The unique IP prefix assigned Type-2: Key is IP Prefix (E). The unique IP prefix assigned for
for an intent (i.e, IP Prefix == Intent or Color) distinguishes an intent (i.e, IP Prefix == intent or Color) distinguishes the
the color-aware route. Color is not needed in NLRI key as a color-aware route. Color is not needed in NLRI key as a
distinguisher. distinguisher.
* NLRI non-key encapsulation data: Data such as MPLS label stack, NLRI non-key encapsulation data: Data such as MPLS label stack,
Label Index and SRv6 SID list associated with NLRI. Contained in Label Index, and SRv6 SID list associated with NLRI. Contained in
TLVs as described in Section 2.9.2 TLVs as described in Section 2.9.2.
* BGP Next Hop. BGP next hop.
* AIGP Metric [RFC7311]: accumulates color/intent specific metric AIGP metric [RFC7311]: Accumulates a metric value specific to color/
value for a CAR route across multiple BGP hops. intent for a CAR route across multiple BGP hops.
* Local-Color-Mapping Extended-Community (LCM-EC): Optional non-zero Local-Color-Mapping Extended-Community (LCM-EC): Optional non-zero
32-bit Color value used to represent the intent associated with a 32-bit Color value used to represent the intent associated with a
CAR route: CAR route:
- when the CAR route propagates between different color domains. * when the CAR route propagates between different color domains.
- when the CAR route has a unique IP prefix for an intent. * when the CAR route has a unique IP prefix for an intent.
* BGP Color Extended-Community (Color-EC) [RFC9012]: Optional non- BGP Color Extended-Community (Color-EC) [RFC9012]: Optional non-zero
zero 32-bit Color value used to represent the intent associated 32-bit Color value used to represent the intent associated with
with the BGP CAR next hop. It is used as per [RFC9256] for the BGP CAR next hop. It is used as per [RFC9256] for automated
automated route resolution, when intent/color used for the next route resolution, when intent/color used for the next hop is
hop is different than the CAR route's intent/color. different than the CAR route's intent/color.
The sections below describe the data model in detail. The sections The sections below describe the data model in detail. The sections
that describe the protocol processing for CAR SAFI generally apply that describe the protocol processing for CAR SAFI generally apply
consistently to both route types (for instance, any operation based consistently to both route types (for instance, any operation based
on color). The examples use (E, C) for simplicity. on color). The examples use (E, C) for simplicity.
2.2. Extensible Encoding 2.2. Extensible Encoding
Extensible encoding is provided by: Extensible encoding is provided by:
* NLRI Type field: provides extensibility to add new NLRI formats NLRI Type field: This provides extensibility to add new NLRI formats
for new route-types. for new route types.
NLRI (Route) Types other than Type-1 (E, C) and Type-2 (E) are NLRI (route) types other than Type-1 (E, C) and Type-2 (E) are
outside the scope of this document. outside the scope of this document.
* Key length field: specifies the key length. It allows new NLRI Key Length field: This specifies the key length. It allows new NLRI
types to be handled opaquely, which permits transitivity of new types to be handled opaquely, which permits transitivity of new
route types through BGP speakers such as Route Reflectors. route types through BGP speakers such as Route Reflectors (RRs).
* TLV-based encoding of non-key part of NLRI: This allows the TLV-based encoding of non-key part of NLRI: This allows the
inclusion of additional non-key fields for a prefix to support inclusion of additional non-key fields for a prefix to support
different types of transport simultaneously with efficient BGP different types of transport simultaneously with efficient BGP
update packing (Section 2.9). update packing (Section 2.9).
* AIGP Attribute provides extensibility via TLVs, enabling AIGP attribute: This provides extensibility via TLVs, enabling
definition of additional metric semantics for a color as needed definition of additional metric semantics for a color as needed
for an intent. for an intent.
2.3. BGP CAR Route Origination 2.3. BGP CAR Route Origination
A BGP CAR route may be originated locally (e.g., loopback) or through A BGP CAR route may be originated locally (e.g., loopback) or through
redistribution of an (E, C) color-aware path provided by another redistribution of an (E, C) color-aware path provided by another
routing solution: e.g., SR Policy, IGP Flex-Algo, RSVP-TE, BGP-LU routing solution (e.g., SR Policy, IGP Flex-Algo, RSVP-TE, BGP-LU
[RFC8277]. [RFC8277]).
2.4. BGP CAR Route Validation 2.4. BGP CAR Route Validation
A BGP CAR path (E, C) via next hop N with encapsulation T is valid if A BGP CAR path (E, C) via next hop N with encapsulation T is valid if
color-aware path (N, C) exists with encapsulation T available in color-aware path (N, C) exists with encapsulation T available in
data-plane. data-plane.
A local policy may customize the validation process: A local policy may customize the validation process:
* The color constraint in the first check may be relaxed. If N is * The color constraint in the first check may be relaxed. If N is
reachable via alternate color(s) or in the default routing table, reachable via alternate color(s) or in the default routing table,
the route may be considered valid. the route may be considered valid.
* The data-plane availability constraint of T may be relaxed to use * The data-plane availability constraint of T may be relaxed to use
an alternate encapsulation. an alternate encapsulation.
* A performance-measurement verification may be added to ensure that * A performance-measurement verification may be added to ensure that
the intent associated with C is met (e.g. delay < bound). the intent associated with C is met (e.g., delay < bound).
A path that is not valid MUST NOT be considered for BGP best path A path that is not valid MUST NOT be considered for BGP best path
selection. selection.
2.5. BGP CAR Route Resolution 2.5. BGP CAR Route Resolution
A BGP color-aware route (E2, C1) with next hop N is automatically A BGP color-aware route (E2, C1) with next hop N is automatically
resolved over a color-aware route (N, C1) by default. The color- resolved over a color-aware route (N, C1) by default. The color-
aware route (N, C1) is provided by color aware mechanisms such as IGP aware route (N, C1) is provided by color-aware mechanisms such as IGP
Flex-Algo [RFC9350], SR policy [RFC9256] Section 2.2, or recursively Flex-Algo [RFC9350], SR policy (Section 2.2 of [RFC9256]), or
by BGP CAR. When multiple producers of (N, C1) are available, the recursively by BGP CAR. When multiple producers of (N, C1) are
default preference is: IGP Flex-Algo, SR Policy, BGP CAR. available, the default preference is: IGP Flex-Algo, SR Policy, BGP
CAR.
Local policy SHOULD provide additional control: Local policy SHOULD provide additional control:
* A BGP color-aware route (E2, C1) with next hop N may be resolved * A BGP color-aware route (E2, C1) with next hop N may be resolved
over a color-aware route (N, C2): i.e., the local policy maps the over a color-aware route (N, C2) (i.e., the local policy maps the
resolution of C1 over a different color C2. resolution of C1 over a different color C2).
- For example, in a domain where resource R is known to not be - For example, in a domain where resource R is known to not be
present, the inter-domain intent C1="low delay and avoid R" may present, the inter-domain intent C1="low delay and avoid R" may
be resolved over an intra-domain path of intent C2="low delay". be resolved over an intra-domain path of intent C2="low delay".
- Another example is: if no (N, C1) path is available and the - Another example is: if no (N, C1) path is available and the
user has allowed resolution to fallback to a C2 path. user has allowed resolution to fallback to a C2 path.
* Route resolution may be driven by an egress node. In an SRv6 * Route resolution may be driven by an egress node. In an SRv6
domain, an egress node selects and advertises an SRv6 SID from its domain, an egress node selects and advertises an SRv6 SID from its
skipping to change at page 14, line 23 skipping to change at line 628
route that covers the locator. This summary route may be provided route that covers the locator. This summary route may be provided
by SRv6 Flex Algo or BGP CAR IP Prefix route itself (e.g., by SRv6 Flex Algo or BGP CAR IP Prefix route itself (e.g.,
Appendix C.2). Appendix C.2).
* Local policy may map the CAR route to traditional mechanisms that * Local policy may map the CAR route to traditional mechanisms that
are unaware of color or that provide best-effort, such as RSVP-TE, are unaware of color or that provide best-effort, such as RSVP-TE,
IGP/LDP, BGP LU/IP (e.g., Appendix A.3.2) for brownfield IGP/LDP, BGP LU/IP (e.g., Appendix A.3.2) for brownfield
scenarios. scenarios.
Route resolution via a different color C2 can be automated by Route resolution via a different color C2 can be automated by
attaching BGP Color-EC C2 to CAR route (E2, C1), leveraging Automated attaching BGP Color-EC C2 to CAR route (E2, C1), leveraging automated
steering as described in Section 8.4 of Segment Routing Policy steering as described in Section 8.4 of "Segment Routing Policy
Architecture [RFC9256] for BGP CAR routes. This mechanism is Architecture" [RFC9256] for BGP CAR routes. This mechanism is
illustrated in Appendix B.2. This mechanism SHOULD be supported. illustrated in Appendix B.2. This mechanism SHOULD be supported.
For CAR route resolution, Color-EC color if present takes precedence For CAR route resolution, Color-EC color if present takes precedence
over the route's intent color (LCM-EC if present (Section 2.9.5), or over the route's intent color (LCM-EC if present (Section 2.9.5), or
else NLRI color). else NLRI color).
Local policy takes precedence over the color based automated Local policy takes precedence over the color-based automated
resolution specified above. resolution specified above.
The color-aware route (N, C1) may be provided by BGP CAR itself in a The color-aware route (N, C1) may be provided by BGP CAR itself in a
hierarchical transport routing design. In such cases, based on the hierarchical transport routing design. In such cases, based on the
procedures described above, recursive resolution may occur over the procedures described above, recursive resolution may occur over the
same or different CAR route type. Section 7.1.2 describes a scenario same or different CAR route type. Section 7.1.2 describes a scenario
where CAR (E, C) route resolves over CAR IP Prefix route. where CAR (E, C) route resolves over CAR IP Prefix route.
CAR IP Prefix route is allowed to be without color for best-effort. CAR IP Prefix route is allowed to be without color for best-effort.
In this case, resolution is based on BGP next hop N, or when present, In this case, resolution is based on BGP next hop N, or when present,
a best-effort SRv6 SID advertised by node N. a best-effort SRv6 SID advertised by node N.
A BGP CAR route may recursively resolve over a BGP route that carries A BGP CAR route may recursively resolve over a BGP route that carries
TEA and follows Section 6 of [RFC9012] for validation. In this case, a TEA and follows Section 6 of [RFC9012] for validation. In this
procedures of section 8 of [RFC9012] apply to BGP CAR routes, using case, the procedures of Section 8 of [RFC9012] apply to BGP CAR
color precedence as specified above for resolution. routes, using color precedence as specified above for resolution.
The procedures of [RFC9012] Section 6 also apply to BGP CAR routes The procedures of [RFC9012], Section 6, also apply to BGP CAR routes
(AFI/SAFI = 1/83 or 2/83). For instance, a BGP CAR BR may advertise (AFI/SAFI = 1/83 or 2/83). For instance, a BGP CAR BR may advertise
a BGP CAR route to an ingress BR or PE with a specific BGP next hop a BGP CAR route to an ingress BR or PE with a specific BGP next hop
per color, with a TEA or Tunnel Encapsulation EC, as per Section 6 of per color, with a TEA or Tunnel Encapsulation EC, as per Section 6 of
[RFC9012]. [RFC9012].
BGP CAR resolution in one network domain is independent of resolution BGP CAR resolution in one network domain is independent of resolution
in another domain. in another domain.
2.6. AIGP Metric Computation 2.6. AIGP Metric Computation
The Accumulated IGP (AIGP) Attribute [RFC7311] is updated as the BGP The Accumulated IGP (AIGP) Metric Attribute [RFC7311] is updated as
CAR route propagates across the network. the BGP CAR route propagates across the network.
The value set (or appropriately incremented) in the AIGP TLV The value set (or appropriately incremented) in the AIGP TLV
corresponds to the metric associated with the underlying intent of corresponds to the metric associated with the underlying intent of
the color. For example, when the color is associated with a low- the color. For example, when the color is associated with a low-
latency path, the metric value is set based on the delay metric. latency path, the metric value is set based on the delay metric.
Information regarding the metric type used by the underlying intra- Information regarding the metric type used by the underlying intra-
domain mechanism can also be used to set the metric value. domain mechanism can also be used to set the metric value.
If BGP CAR routes traverse across a discontinuity in the transport If BGP CAR routes traverse across a discontinuity in the transport
path for a given intent, a penalty is added in accumulated IGP metric path for a given intent, a penalty is added in the AIGP metric (value
(value set by user policy). For instance, when color C1 path is not set by user policy). This could occur, for instance, when color C1
available, and route resolves via color C2 path (See Appendix A.3 for path is not available, and route resolves via color C2 path (see
an example). Appendix A.3 for an example).
AIGP metric computation is recursive. AIGP metric computation is recursive.
To avoid continuous IGP metric changes causing end to end BGP CAR To avoid continuous IGP metric changes causing end-to-end BGP CAR
route churn, an implementation should provide thresholds to trigger route churn, an implementation should provide thresholds to trigger
AIGP update. AIGP updates.
Additional AIGP extensions may be defined to signal state for Additional AIGP extensions may be defined to signal state for
specific use-cases: Maximum SID-Depth along the BGP CAR route specific use cases such as Maximum SID Depth (MSD) along the BGP CAR
advertisement, Minimum MTU along the BGP CAR route advertisement. route advertisement and minimum MTU along the BGP CAR route
This is out of scope for this document. advertisement. This is out of scope for this document.
2.7. Native MultiPath Capability 2.7. Native Multipath Capability
The (E, C) route definition inherently provides availability of The (E, C) route definition inherently provides availability of
redundant paths at every BGP hop identical to BGP-LU or BGP IP. For redundant paths at every BGP hop identical to BGP-LU or BGP IP. For
instance, BGP CAR routes originated by two or more egress ABRs in a instance, BGP CAR routes originated by two or more egress ABRs in a
domain are advertised as multiple paths to ingress ABRs in the domain are advertised as multiple paths to ingress ABRs in the
domain, where they become equal-cost or primary-backup paths. A domain, where they become equal-cost or primary-backup paths. A
failure of an egress ABR is detected and handled by ingress ABRs failure of an egress ABR is detected and handled by ingress ABRs
locally within the domain for faster convergence, without any locally within the domain for faster convergence, without any
necessity to propagate the event to upstream nodes for traffic necessity to propagate the event to upstream nodes for traffic
restoration. restoration.
BGP ADD-PATH [RFC7911] SHOULD be enabled for BGP CAR to signal BGP ADD-PATH [RFC7911] SHOULD be enabled for BGP CAR to signal
multiple next hops through a transport RR. multiple next hops through a transport RR.
2.8. BGP CAR Signaling through different Color Domains 2.8. BGP CAR Signaling Through Different Color Domains
[Color Domain 1 A]-----[B Color Domain 2 E2] [Color Domain 1 A]-----[B Color Domain 2 E2]
[C1=low-delay ] [C2=low-delay ] [C1=low-delay ] [C2=low-delay ]
Let us assume a BGP CAR route (E2, C2) is signaled from B to A, two Let us assume a BGP CAR route (E2, C2) is signaled from B to A, two
border routers of respectively domain 2 and domain 1. Let us assume border routers of Domain 2 and Domain 1, respectively. Let us assume
that these two domains do not share the same color-to-intent mapping that these two domains do not share the same color-to-intent mapping
(i.e., they belong to different color domains). Low-delay in domain (i.e., they belong to different color domains). Low-delay in Domain
2 is color C2, while it is C1 in domain 1 (C1 <> C2). 2 is color C2, while it is C1 in Domain 1 (C1 <> C2).
It is not expected to be a typical scenario to have an underlay It is not expected to be a typical scenario to have an underlay
transport path (e.g., an MPLS LSP) extend across different color transport path (e.g., an MPLS LSP) extend across different color
domains. However, the BGP CAR solution seamlessly supports this rare domains. However, the BGP CAR solution seamlessly supports this rare
scenario while maintaining the separation and independence of the scenario while maintaining the separation and independence of the
administrative authority in different color domains. administrative authority in different color domains.
The solution works as described below: The solution works as described below:
* Within domain 2, the BGP CAR route is (E2, C2) via E2. * Within Domain 2, the BGP CAR route is (E2, C2) via E2.
* B signals to A the BGP CAR route as (E2, C2) via B with Local- * B signals to A the BGP CAR route as (E2, C2) via B with Local-
Color-Mapping-Extended-Community (LCM-EC) of color C2. Color-Mapping-Extended-Community (LCM-EC) of color C2.
* A is aware of the intent-to-color mapping within domain 2 ("low- * A is aware of the intent-to-color mapping within Domain 2 ("low-
delay" in domain 2 is C2), as per typical coordination that exists delay" in Domain 2 is C2), as per typical coordination that exists
between operators of peering domains. between operators of peering domains.
* A maps C2 in LCM-EC to C1 and signals within domain 1 the received * A maps C2 in LCM-EC to C1 and signals within Domain 1 the received
BGP CAR route as (E2, C2) via A with LCM-EC(C1). BGP CAR route as (E2, C2) via A with LCM-EC (C1).
* The nodes within the receiving domain 1 use the local color * The nodes within the receiving Domain 1 use the local color
encoded in the LCM-EC for next-hop resolution and service encoded in the LCM-EC for next-hop resolution and service
steering. steering.
The following procedures apply at a color domain boundary for BGP CAR The following procedures apply at a color domain boundary for BGP CAR
routes, performed by route policy at the sending and receiving peer: routes, performed by route policy at the sending and receiving peer:
* Use local policy to control which routes are advertised to or * Use local policy to control which routes are advertised to or
accepted from a peer in a different color domain. accepted from a peer in a different color domain.
* Attach LCM-EC if not present with the route. If LCM-EC is * Attach LCM-EC if not present with the route. If LCM-EC is
skipping to change at page 17, line 19 skipping to change at line 764
receiving BGP speaker as determined by the operator peering receiving BGP speaker as determined by the operator peering
agreement, and indicated by local policy on the BGP peers. agreement, and indicated by local policy on the BGP peers.
These procedures apply to both CAR route types, in addition to all These procedures apply to both CAR route types, in addition to all
procedures specified in earlier sections. LCM-EC is described in procedures specified in earlier sections. LCM-EC is described in
Section 2.9.5. Section 2.9.5.
Salient properties: Salient properties:
* The NLRI never changes, even though the color-to-intent mapping * The NLRI never changes, even though the color-to-intent mapping
changes changes.
* E is globally unique, which makes E-C in that order unique * E is globally unique, which makes E-C in that order unique.
* In typical expected cases, the color of the NLRI is used for * In typical expected cases, the color of the NLRI is used for
resolution and steering resolution and steering.
* In the rare case of color incongruence, the local color encoded in * In the rare case of color incongruence, the local color encoded in
LCM-EC takes precedence LCM-EC takes precedence.
Operational consideratons are in Section 11. Further illustrations Operational considerations are in Section 11. Further illustrations
are provided in Appendix B. are provided in Appendix B.
2.9. Format and Encoding 2.9. Format and Encoding
BGP CAR leverages BGP multi-protocol extensions [RFC4760] and uses BGP CAR leverages BGP multi-protocol extensions [RFC4760] and uses
the MP_REACH_NLRI and MP_UNREACH_NLRI attributes for route updates the MP_REACH_NLRI and MP_UNREACH_NLRI attributes for route updates
within SAFI value 83 along with AFI 1 for IPv4 prefixes and AFI 2 for within SAFI value 83 along with AFI 1 for IPv4 prefixes and AFI 2 for
IPv6 prefixes. IPv6 prefixes.
BGP speakers MUST use BGP Capabilities Advertisement to ensure BGP speakers MUST use the BGP Capabilities Advertisement to ensure
support for processing of BGP CAR updates. This is done as specified support for processing of BGP CAR updates. This is done as specified
in [RFC4760], by using capability code 1 (multi-protocol BGP), with in [RFC4760], by using capability code 1 (multi-protocol BGP), with
AFI 1 and 2 (as required) and SAFI 83. AFI 1 and 2 (as required) and SAFI 83.
The Next Hop network address field in the MP_REACH_NLRI may either be The Next Hop network address field in the MP_REACH_NLRI may either be
an IPv4 address or an IPv6 address, independent of AFI. If the next an IPv4 address or an IPv6 address, independent of AFI. If the next
hop length is 4, then the next hop is an IPv4 address. The next hop hop length is 4, then the next hop is an IPv4 address. The next hop
length may be 16 or 32 for an IPv6 next hop address, set as per length may be 16 or 32 for an IPv6 next hop address, set as per
section 3 of [RFC2545]. Processing of the Next Hop field is governed Section 3 of [RFC2545]. Processing of the Next Hop field is governed
by standard BGP procedures as described in section 3 of [RFC4760]. by standard BGP procedures as described in Section 3 of [RFC4760].
The sub-sections below specify the generic encoding of the BGP CAR The sub-sections below specify the generic encoding of the BGP CAR
NLRI and non-key TLV fields followed by the encoding for specific NLRI and non-key TLV fields, followed by the encoding for specific
NLRI types introduced in this document. NLRI types introduced in this document.
2.9.1. BGP CAR SAFI NLRI Format 2.9.1. BGP CAR SAFI NLRI Format
The generic format for the BGP CAR SAFI NLRI is shown below: The generic format for the BGP CAR SAFI NLRI is shown below:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| NLRI Length | Key Length | NLRI Type | // | NLRI Length | Key Length | NLRI Type | //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ //
| Type-specific Key Fields // | Type-Specific Key Fields //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type-specific Non-Key TLV Fields (if applicable) // | Type-Specific Non-Key TLV Fields (if applicable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
* NLRI Length: 1 octet field that indicates the length in octets of NLRI Length: 1-octet field that indicates the length in octets of
the NLRI excluding the NLRI Length field itself. the NLRI excluding the NLRI Length field itself.
* Key Length: 1 octet field that indicates the length in octets of Key Length: 1-octet field that indicates the length in octets of the
the NLRI type-specific key fields. Key length MUST be at least 2 NLRI type-specific key fields. Key length MUST be at least 2 less
less than the NLRI length. than the NLRI length.
* NLRI Type: 1 octet field that indicates the type of the BGP CAR NLRI Type: 1-octet field that indicates the type of the BGP CAR
NLRI. NLRI.
* Type-Specific Key Fields: The exact definition of these fields Type-Specific Key Fields: The exact definition of these fields
depends on the NLRI type. They have length indicated by the Key depends on the NLRI type. They have length indicated by the Key
Length. Length.
* Type-Specific Non-Key TLV Fields: The fields are optional and can Type-Specific Non-Key TLV Fields: The fields are optional and can
carry one or more non-key TLVs (of different types) depending on carry one or more non-key TLVs (of different types) depending on
the NLRI type. The NLRI definition allows for encoding of the NLRI type. The NLRI definition allows for encoding of
specific non-key information associated with the route as part of specific non-key information associated with the route as part of
the NLRI for efficient packing of BGP updates. the NLRI for efficient packing of BGP updates.
The non-key TLVs portion of the NLRI MUST be omitted while carrying The non-key TLVs portion of the NLRI MUST be omitted while carrying
it within the MP_UNREACH_NLRI when withdrawing the route it within the MP_UNREACH_NLRI when withdrawing the route
advertisement. advertisement.
Error handling for CAR SAFI NLRI and non-key TLVs is described in Error handling for CAR SAFI NLRI and non-key TLVs is described in
Section 2.11. Section 2.11.
Benefits of CAR NLRI design: The benefits of CAR NLRI design are:
The indication of the key length enables BGP Speakers to determine * The indication of the key length enables BGP speakers to determine
the key portion of the NLRI and use it along with the NLRI Type field the key portion of the NLRI and use it along with the NLRI Type
in an opaque manner for handling of unknown or unsupported NLRI field in an opaque manner for the handling of unknown or
types. This can help deployed Route Reflectors (RR) to propagate unsupported NLRI types. This can help deployed Route Reflectors
NLRI types introduced in the future in a transparent manner. (RR) to propagate NLRI types introduced in the future in a
transparent manner.
The key length also helps error handling be more resilient and * The key length also helps error handling be more resilient and
minimally disruptive. The use of key length in error handling is minimally disruptive. The use of key length in error handling is
described in Section 2.11. described in Section 2.11.
The ability of a route (NLRI) to carry more than one non-key TLV (of * The ability of a route (NLRI) to carry more than one non-key TLV
different types) provides significant benefits such as signaling (of different types) provides significant benefits such as
multiple encapsulations simultaneously for the same route, each with signaling multiple encapsulations simultaneously for the same
a different value (label/SID etc). This enables simpler, efficient route, each with a different value (label/SID, etc.). This
migrations with low overhead : enables simpler and efficient migrations with low overhead:
* avoids need for duplicate routes to signal different - avoids the need for duplicate routes to signal different
encapsulations encapsulations
* avoids need for separate control planes for distribution - avoids the need for separate control planes for distribution
* preserves update packing (e.g. Appendix D) - preserves update packing (e.g., Appendix D)
2.9.2. Type-Specific Non-Key TLV Format 2.9.2. Type-Specific Non-Key TLV Format
The generic format for Non-Key TLVs is shown below: The generic format for Non-Key TLVs is shown below:
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 | Length | Value (variable) // | Type | Length | Value (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
* Type: 1 octet that contains the type code and flags. It is Type: 1 octet that contains the type code and flags. It is encoded
encoded as shown below: as shown below:
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
|R|T| Type code | |R|T| Type code |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
where:
- R: Bit is reserved and MUST be set to 0 and ignored on receive. where:
- T: Transitive bit, applicable to speakers that change the BGP R: Bit is reserved and MUST be set to 0 and ignored on receive.
CAR next hop.
o T bit set to indicate TLV is transitive. An unrecognized T: Transitive bit, applicable to speakers that change the BGP CAR
transitive TLV MUST be propagated by a speaker that changes next hop.
the next hop.
o T bit unset to indicate TLV is non-transitive. An * The T bit is set to indicate TLV is transitive. An
unrecognized transitive TLV MUST be propagated by a speaker
that changes the next hop.
* The T bit is unset to indicate TLV is non-transitive. An
unrecognized non-transitive TLV MUST NOT be propagated by a unrecognized non-transitive TLV MUST NOT be propagated by a
speaker that changes next hop. speaker that changes the next hop.
A speaker that does not change next hop SHOULD propagate all A speaker that does not change the next hop SHOULD propagate
received TLVs. all received TLVs.
- Type code: Remaining 6 bits contain the type of the TLV. Type code: Remaining 6 bits contain the type of the TLV.
* Length: 1 octet field that contains the length of the value Length: 1-octet field that contains the length of the value portion
portion of the non-key TLV in terms of octets. of the non-key TLV in terms of octets.
* Value: variable length field as indicated by the length field and Value: Variable-length field as indicated by the Length field and to
to be interpreted as per the type field. be interpreted as per the Type field.
The following sub-sections specify non-key TLVs. Each NLRI type MUST The following sub-sections specify non-key TLVs. Each NLRI type MUST
list the TLVs that can be associated with it. list the TLVs that can be associated with it.
2.9.2.1. Label TLV 2.9.2.1. Label TLV
The Label TLV is used for advertisement of CAR routes along with The Label TLV is used for the advertisement of CAR routes along with
their MPLS labels and has the following format as per Section 2.9.2: their MPLS labels. It has the following format as per Section 2.9.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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|R|T| Type | Length | |R|T| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Followed by one (or more) Labels encoded as below: It is followed by one (or more) Labels encoded as below:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Label |Rsrv |S| | Label |Rsrv |S|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
* Type : Type code is 1. T bit MUST be unset. Type: Type code is 1. The T bit MUST be unset.
* Length: In octets. Length is variable, MUST be a multiple of 3. Length: Length is in octets, variable, and MUST be a multiple of 3.
* Label Information: multiples of 3 octet fields to convey the MPLS Label Information: Multiples of 3-octet fields to convey the MPLS
label(s) associated with the advertised CAR route. It is used for label(s) associated with the advertised CAR route. It is used for
encoding a single label or a stack of labels for usage as encoding a single label or a stack of labels for usage as
described in [RFC8277]. Number of labels is derived from length described in [RFC8277]. The number of labels is derived from the
field. 3-bit Rsrv and 1-bit S field SHOULD be set to zero on Length field. The 3-bit Rsrv field and the 1-bit S field SHOULD
transmission and MUST be ignored on reception. be set to zero on transmission and MUST be ignored on reception.
If a BGP transport CAR speaker sets itself as the next hop while If a BGP transport CAR speaker sets itself as the next hop while
propagating a CAR route, it allocates a local label for the type propagating a CAR route, it allocates a local label for the type-
specific key, and updates the value in this TLV. It also MUST specific key, and updates the value in this TLV. It also MUST
program a label cross-connect that would result in the label swap program a label cross-connect that would result in the label swap
operation for the incoming label that it advertises with the label operation for the incoming label that it advertises with the label
received from its best-path router(s). received from its best-path router(s).
2.9.2.2. Label Index TLV 2.9.2.2. Label Index TLV
The Label Index TLV is used for advertisement of Segment Routing MPLS The Label Index TLV is used for the advertisement of Segment Routing
(SR-MPLS) Segment Identifier (SID) [RFC8402] information associated over MPLS (SR-MPLS) Segment Identifier (SID) [RFC8402] information
with the labeled CAR routes and has the following format as per associated with the labeled CAR routes. It has the following format
Section 2.9.2: as per Section 2.9.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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|R|T| Type | Length | Reserved | Flags ~ |R|T| Type | Length | Reserved | Flags ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ | Label Index ~ ~ | Label Index ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ | ~ |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
where: where:
* Type : Type code is 2. T bit MUST be set. Type: Type code is 2. The T bit MUST be set.
* Length: In octets. Length is 7. Length: Length is in octets and is 7.
* Reserved: 1 octet field that MUST be set to 0 and ignored on Reserved: 1-octet field that MUST be set to 0 and ignored on
receipt. receipt.
* Flags: 2 octet field that's defined as per the Flags field of the Flags: 2-octet field that's defined as per the Flags field of the
Label Index TLV of the BGP Prefix-SID Attribute ([RFC8669] section Label Index TLV of the BGP Prefix-SID attribute (Section 3.1 of
3.1). [RFC8669]).
* Label Index: 4 octet field that's defined as per the Label Index Label Index: 4-octet field that's defined as per the Label Index
field of the Label Index TLV of the BGP Prefix-SID Attribute field of the Label Index TLV of the BGP Prefix-SID attribute
([RFC8669] section 3.1). (Section 3.1 of [RFC8669]).
This TLV provides the equivalent functionality as Label Index TLV of This TLV provides the equivalent functionality as the Label Index TLV
[RFC8669] for Transport CAR route in SR-MPLS deployments. When a of [RFC8669] for Transport CAR route in SR-MPLS deployments. When a
speaker allocates a local label for a received CAR route as per speaker allocates a local label for a received CAR route as per
Section 2.9.2.1, it SHOULD use the received Label Index as a hint Section 2.9.2.1, it SHOULD use the received Label Index as a hint
using procedures as specified in [RFC8669] Section 4. using procedures as specified in [RFC8669], Section 4.
The Label Index TLV provides much better packing efficiency by The Label Index TLV provides much better packing efficiency by
carrying Label Index in NLRI instead of in the BGP Prefix-SID carrying the Label Index in NLRI instead of in the BGP Prefix-SID
Attribute (Appendix D). attribute (Appendix D).
Label Index TLV MUST NOT be carried in the Prefix-SID attribute for The Label Index TLV MUST NOT be carried in the Prefix-SID attribute
BGP CAR routes. If a speaker receives a CAR route with Label Index for BGP CAR routes. If a speaker receives a CAR route with the Label
TLV in the Prefix-SID attribute, it SHOULD ignore it. The BGP Index TLV in the Prefix-SID attribute, it SHOULD ignore it. The BGP
Prefix-SID Attribute SHOULD NOT be sent with the labeled CAR routes Prefix-SID attribute SHOULD NOT be sent with the labeled CAR routes
if the attribute is being used only to convey the Label Index TLV. if the attribute is being used only to convey the Label Index TLV.
2.9.2.3. SRv6 SID TLV 2.9.2.3. SRv6 SID TLV
BGP Transport CAR can be also used to setup end-to-end color-aware BGP Transport CAR can be also used to set up end-to-end color-aware
connectivity using Segment Routing over IPv6 (SRv6) [RFC8402]. connectivity using Segment Routing over IPv6 (SRv6) [RFC8402].
[RFC8986] specifies the SRv6 Endpoint behaviors (e.g. End PSP) which [RFC8986] specifies the SRv6 Endpoint behaviors (e.g., End
can be leveraged for BGP CAR with SRv6. The SRv6 SID TLV is used for Penultimate Segment Pop (PSP)), which can be leveraged for BGP CAR
advertisement of CAR routes along with their SRv6 SIDs and has the with SRv6. The SRv6 SID TLV is used for the advertisement of CAR
following format as per Section 2.9.2: routes along with their SRv6 SIDs. It has the following format as
per Section 2.9.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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|R|T| Type | Length | SRv6 SID Info (variable) // |R|T| Type | Length | SRv6 SID Info (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
* Type : Type code is 3. T bit MUST be unset. Type: Type code is 3. The T bit MUST be unset.
* Length: In octets. Length is variable, MUST be either less than Length: Length is in octets, variable, and MUST be either less than
or equal to 16, or be a multiple of 16. or equal to 16, or be a multiple of 16.
* SRv6 SID Information: field of size as indicated by the length SRv6 SID Information: Field of size as indicated by the length that
that either carries the SRv6 SID(s) for the advertised CAR route either carries the SRv6 SID(s) for the advertised CAR route as one
as one of the following: of the following:
- A single 128-bit SRv6 SID or an ordered list of 128-bit SRv6 * A single 128-bit SRv6 SID or an ordered list of 128-bit SRv6
SIDs. SIDs.
- A transposed portion (refer [RFC9252]) of the SRv6 SID that * A transposed portion (refer to [RFC9252]) of the SRv6 SID that
MUST be of size in multiples of one octet and less than 16. MUST be of size in multiples of one octet and less than 16.
BGP CAR SRv6 SID TLV definitions provide the following benefits: BGP CAR SRv6 SID TLV definitions provide the following benefits:
* Native encoding of SIDs avoids robustness issue caused by * The native encoding of SIDs avoids robustness issues caused by the
overloading of MPLS label fields. overloading of MPLS label fields.
* Simple encoding to signal Unique SIDs (non-transposition), * The simple encoding to signal Unique SIDs (non-transposition)
maintaining BGP update prefix packing. maintains BGP update prefix packing.
* Highly efficient transposition scheme (12-14 bytes saved per * The highly efficient transposition scheme (12-14 bytes saved per
NLRI), also maintaining BGP update prefix packing. NLRI) also maintains BGP update prefix packing.
The BGP CAR route update for SRv6 encapsulation MUST include the BGP The BGP CAR route update for SRv6 encapsulation MUST include the BGP
Prefix-SID attribute along with the SRv6 L3 Service TLV carrying the Prefix-SID attribute along with the SRv6 L3 Service TLV carrying the
SRv6 SID information as specified in [RFC9252]. When using the SRv6 SID information as specified in [RFC9252]. When using the
transposition scheme of encoding for packing efficiency of BGP transposition scheme of encoding for packing efficiency of BGP
updates [RFC9252], transposed part of SID is carried in SRv6 SID TLV updates [RFC9252], the transposed part of the SID is carried in the
and not limited by MPLS label field size. SRv6 SID TLV and is not limited by MPLS label field size.
If a BGP transport CAR speaker sets itself as the next hop while If a BGP transport CAR speaker sets itself as the next hop while
propagating a CAR route and allocates an SRv6 SID that maps to the propagating a CAR route and allocates an SRv6 SID that maps to the
received SRv6 SID, it updates the value in this TLV. received SRv6 SID, it updates the value in this TLV.
Received MPLS information can map to SRv6 and vice versa. Received MPLS information can map to SRv6 and vice versa.
[I-D.ietf-spring-srv6-mpls-interworking] describes MPLS and SRv6 [SRv6-INTERWORK] describes MPLS and SRv6 interworking procedures and
interworking procedures and extension to BGP CAR routes. an extension to BGP CAR routes.
2.9.3. Color-Aware Route (E, C) NLRI Type 2.9.3. Color-Aware Route (E, C) NLRI Type
The Color-Aware Route NLRI Type is used for advertisement of BGP CAR The Color-Aware Route NLRI Type is used for the advertisement of BGP
color-aware routes (E, C) and has the following format: CAR color-aware routes (E, C). It has the following format:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| NLRI Length | Key Length | NLRI Type |Prefix Length | | NLRI Length | Key Length | NLRI Type |Prefix Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IP Prefix (variable) // | IP Prefix (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Color (4 octets) | | Color (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Followed by optional Non-Key TLVs encoded as per Section 2.9.2 It is followed by optional Non-Key TLVs encoded as per Section 2.9.2.
where: Where:
* NLRI Length: variable NLRI Length: Variable.
* Key Length: variable. It indicates the total length comprised of
Key Length: Variable. It indicates the total length comprised of
the Prefix Length field, IP Prefix field, and the Color field, as the Prefix Length field, IP Prefix field, and the Color field, as
described below. For IPv4 (AFI=1), the minimum length is 5 and described below. For IPv4 (AFI=1), the minimum length is 5 and
maximum length is 9. For IPv6 (AFI=2), the minimum length is 5 the maximum length is 9. For IPv6 (AFI=2), the minimum length is
and maximum length is 21. 5 and the maximum length is 21.
* NLRI Type: 1 NLRI Type: 1.
* Type-Specific Key Fields: as below Type-Specific Key Fields: These are as seen below:
- Prefix Length: 1 octet field that carries the length of prefix Prefix Length: 1-octet field that carries the length of prefix in
in bits. Length MUST be less than or equal to 32 for IPv4 bits. Length MUST be less than or equal to 32 for IPv4 (AFI=1)
(AFI=1) and less than or equal to 128 for IPv6 (AFI=2). and less than or equal to 128 for IPv6 (AFI=2).
- IP Prefix: IPv4 or IPv6 prefix (based on the AFI). A variable IP Prefix: IPv4 or IPv6 prefix (based on the AFI). A variable-
size field that contains the most significant octets of the size field that contains the most significant octets of the
prefix. The format of this field for an IPv4 prefix is: prefix. The format of this field for an IPv4 prefix is:
0 octet for prefix length 0, * 0 octet for prefix length 0
1 octet for prefix length 1 to 8, * 1 octet for prefix length 1 to 8
2 octets for prefix length 9 to 16, * 2 octets for prefix length 9 to 16
3 octets for prefix length 17 up to 24, * 3 octets for prefix length 17 up to 24
4 octets for prefix length 25 up to 32. * 4 octets for prefix length 25 up to 32
- The format for this field for an IPv6 address follows the same The format for this field for an IPv6 address follows the same
pattern for prefix lengths of 1-128 (octets 1-16). pattern for prefix lengths of 1-128 (octets 1-16).
- The last octet has enough trailing bits to make the end of the The last octet has enough trailing bits to make the end of the
field fall on an octet boundary. Note that the value of the field fall on an octet boundary. Note that the value of the
trailing bits MUST be set to zero. The size of the field MUST trailing bits MUST be set to zero. The size of the field MUST
be less than or equal to 4 for IPv4 (AFI=1) and less than or be less than or equal to 4 for IPv4 (AFI=1) and less than or
equal to 16 for IPv6 (AFI=2). equal to 16 for IPv6 (AFI=2).
- Color: 4 octets that contains non-zero color value associated Color: 4 octets that contain non-zero color value associated with
with the prefix. the prefix.
* Type-Specific Non-Key TLVs: Label TLV, Label Index TLV and SRv6 Type-Specific Non-Key TLVs: The Label TLV, Label Index TLV, and SRv6
SID TLV (Section 2.9.2) may be associated with the Color-aware SID TLV (Section 2.9.2) may be associated with the Color-aware
route NLRI type. route NLRI type.
The prefix is unique across the administrative domains where BGP The prefix is unique across the administrative domains where BGP
transport CAR is deployed. It is possible that the same prefix is transport CAR is deployed. It is possible that the same prefix is
originated by multiple BGP CAR speakers in the case of anycast originated by multiple BGP CAR speakers in the case of anycast
addressing or multi-homing. addressing or multihoming.
The Color is introduced to enable multiple route advertisements for The Color is introduced to enable multiple route advertisements for
the same prefix. The color is associated with an intent (e.g. low- the same prefix. The color is associated with an intent (e.g., low-
latency) in originator color-domain. latency) in originator color domain.
2.9.4. IP Prefix (E) NLRI Type 2.9.4. IP Prefix (E) NLRI Type
The IP Prefix Route NLRI Type is used for advertisement of BGP CAR IP The IP Prefix Route NLRI Type is used for the advertisement of BGP
Prefix routes (E) and has the following format: CAR IP Prefix routes (E). It has the following format:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| NLRI Length | Key Length | NLRI Type |Prefix Length | | NLRI Length | Key Length | NLRI Type |Prefix Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IP Prefix (variable) // | IP Prefix (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Followed by optional Non-Key TLVs encoded as per Section 2.9.2 It is followed by optional Non-Key TLVs encoded as per Section 2.9.2.
where: Where:
* NLRI Length: variable NLRI Length: Variable.
* Key Length: variable. It indicates the total length comprised of Key Length: Variable. It indicates the total length comprised of
the Prefix Length field and IP Prefix field as described below. the Prefix Length field and IP Prefix field as described below.
For IPv4 (AFI=1), the minimum length is 1 and maximum length is 5. For IPv4 (AFI=1), the minimum length is 1 and the maximum length
For IPv6 (AFI=2), the minimum length is 1 and maximum length is is 5. For IPv6 (AFI=2), the minimum length is 1 and the maximum
17. length is 17.
* NLRI Type: 2. NLRI Type: 2.
* Type-Specific Key Fields: as below Type-Specific Key Fields: These are as seen below:
- Prefix Length: 1 octet field that carries the length of prefix Prefix Length: 1-octet field that carries the length of prefix in
in bits. Length MUST be less than or equal to 32 for IPv4 bits. Length MUST be less than or equal to 32 for IPv4 (AFI=1)
(AFI=1) and less than or equal to 128 for IPv6 (AFI=2). and less than or equal to 128 for IPv6 (AFI=2).
- IP Prefix: IPv4 or IPv6 prefix (based on the AFI). A variable IP Prefix: IPv4 or IPv6 prefix (based on the AFI). A variable-
size field that contains the most significant octets of the size field that contains the most significant octets of the
prefix. The format of this field for an IPv4 prefix is: prefix. The format of this field for an IPv4 prefix is:
0 octet for prefix length 0, * 0 octet for prefix length 0
1 octet for prefix length 1 to 8, * 1 octet for prefix length 1 to 8
2 octets for prefix length 9 to 16, * 2 octets for prefix length 9 to 16
3 octets for prefix length 17 up to 24, * 3 octets for prefix length 17 up to 24
4 octets for prefix length 25 up to 32.
- The format for this field for an IPv6 address follows the same * 4 octets for prefix length 25 up to 32
The format for this field for an IPv6 address follows the same
pattern for prefix lengths of 1-128 (octets 1-16). pattern for prefix lengths of 1-128 (octets 1-16).
- The last octet has enough trailing bits to make the end of the The last octet has enough trailing bits to make the end of the
field fall on an octet boundary. Note that the value of the field fall on an octet boundary. Note that the value of the
trailing bits MUST be set to zero. The size of the field MUST trailing bits MUST be set to zero. The size of the field MUST
be less than or equal to 4 for IPv4 (AFI=1) and less than or be less than or equal to 4 for IPv4 (AFI=1) and less than or
equal to 16 for IPv6 (AFI=2). equal to 16 for IPv6 (AFI=2).
* Type-Specific Non-Key TLVs: Label TLV, Label Index TLV and SRv6 Type-Specific Non-Key TLVs: The Label TLV, Label Index TLV, and SRv6
SID TLV (Section 2.9.2) may be associated with the IP Prefix NLRI SID TLV (Section 2.9.2) may be associated with the IP Prefix NLRI
type. type.
2.9.5. Local-Color-Mapping (LCM) Extended-Community 2.9.5. Local-Color-Mapping (LCM) Extended-Community
This document defines a new BGP Extended-Community called "LCM". The This document defines a new BGP Extended-Community called "LCM". The
LCM is a Transitive Opaque Extended-Community with the following LCM is a Transitive Opaque Extended-Community with the following
encoding: encoding:
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=0x3 | Sub-Type=0x1b | Reserved | | Type=0x3 | Sub-Type=0x1b | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Color | | Color |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where: where:
* Type: 0x3. Type: 0x3.
* Sub-Type: 0x1b. Sub-Type: 0x1b.
* Reserved: 2 octet of reserved field that MUST be set to zero on Reserved: 2-octet reserved field that MUST be set to zero on
transmission and ignored on reception. transmission and ignored on reception.
* Color: 4-octet field that carries the non-zero 32-bit color value. Color: 4-octet field that carries the non-zero 32-bit color value.
When a CAR route crosses the originator's color domain boundary, LCM- When a CAR route crosses the originator's color domain boundary, LCM-
EC is added or updated, as specified in Section 2.8. LCM-EC conveys EC is added or updated, as specified in Section 2.8. LCM-EC conveys
the local color mapping for the intent (e.g. low latency) in other the local color mapping for the intent (e.g., low latency) in other
(transit or destination) color domains. (transit or destination) color domains.
For CAR IP Prefix routes, LCM-EC may also be added in the originator For CAR IP Prefix routes, LCM-EC may also be added in the originator
color domain to indicate the color associated with the IP prefix. color domain to indicate the color associated with the IP prefix.
An implementation SHOULD NOT send more than one instance of the LCM- An implementation SHOULD NOT send more than one instance of the LCM-
EC. However, if more than one instance is received, an EC. However, if more than one instance is received, an
implementation MUST disregard all instances other than the one with implementation MUST disregard all instances other than the one with
the numerically highest value. the numerically highest value.
skipping to change at page 27, line 29 skipping to change at line 1255
If present, LCM-EC contains the intent of a BGP CAR route. LCM-EC If present, LCM-EC contains the intent of a BGP CAR route. LCM-EC
Color is used instead of the Color in CAR route NLRI for procedures Color is used instead of the Color in CAR route NLRI for procedures
described in earlier sections such as route validation (Section 2.4), described in earlier sections such as route validation (Section 2.4),
route resolution (Section 2.5), AIGP calculation (Section 2.6) and route resolution (Section 2.5), AIGP calculation (Section 2.6) and
steering (Section 3). steering (Section 3).
The LCM-EC MAY be used for filtering of BGP CAR routes and/or for The LCM-EC MAY be used for filtering of BGP CAR routes and/or for
applying routing policies on the intent, when present. applying routing policies on the intent, when present.
2.10. LCM-EC and BGP Color-EC usage 2.10. LCM-EC and BGP Color-EC Usage
There are 2 distinct requirements to be supported as stated in There are 2 distinct requirements to be supported as stated in
[I-D.hr-spring-intentaware-routing-using-color]: [INTENT-AWARE]:
1. Domains with different intent granularity (section 6.3.1.9) 1. Domains with different intent granularity (Section 6.3.1.9 of
[INTENT-AWARE])
2. Network domains under different administration, i.e., color 2. Network domains under different administration (i.e., color
domains (section 6.3.1.10) domains; see Section 6.3.1.10 of [INTENT-AWARE])
Requirement 1 is the case where within the same administrative or Requirement 1 is the case where within the same administrative or
color domain, BGP CAR routes for N end-to-end intents may need to color domain, BGP CAR routes for N end-to-end intents may need to
traverse across an intermediate transit domain where only M intents traverse across an intermediate transit domain where only M intents
are available, N >= M. For example, consider a multi-domain network are available, N >= M. For example, consider a multi-domain network
is designed as Access-Core-Access. The core may have the most is designed as Access-Core-Access. The core may have the most
granular N intents, whereas the access only has fewer M intents. So, granular N intents, whereas the access only has fewer M intents.
the BGP next-hop resolution for a CAR route in the access domain must Therefore, the BGP next-hop resolution for a CAR route in the access
be via a color-aware path for one of these M intents. As the domain must be via a color-aware path for one of these M intents. As
procedures in Section 2.5 describe, and the example in Appendix B.2 the procedures in Section 2.5 describe, and the example in
illustrates, BGP Color-EC is used to automate the CAR route Appendix B.2 illustrates, BGP Color-EC is used to automate the CAR
resolution in this case. route resolution in this case.
For requirement 2, where CAR routes traverse across different color For requirement 2, where CAR routes traverse across different color
domains, LCM-EC is used to carry the local color mapping for the NLRI domains, LCM-EC is used to carry the local color mapping for the NLRI
color in other color domains. The related procedures are described color in other color domains. The related procedures are described
in Section 2.8, and an example is given in Appendix B.3. in Section 2.8, and an example is given in Appendix B.3.
Both LCM-EC and BGP Color-EC may be present at the same time with a Both LCM-EC and BGP Color-EC may be present at the same time with a
BGP CAR route. For example, a BGP CAR route (E, C1) from color BGP CAR route. For example, a BGP CAR route (E, C1) from color
domain D1, with LCM-EC C2 in color domain D2, may also carry Color-EC domain D1, with LCM-EC C2 in color domain D2, may also carry Color-EC
C3 and next hop N in a transit network domain within D2 where C2 is C3 and next hop N in a transit network domain within D2 where C2 is
being resolved via an available intra-domain intent C3 (See the being resolved via an available intra-domain intent C3 (see the
detailed example in the combination of Appendix B.2 and detailed example in the combination of Appendices B.2 and B.3).
Appendix B.3).
In this case, as described in Section 2.5, default order of In this case, as described in Section 2.5, the default order of
processing for resolution in presence of LCM-EC is local policy, then processing for resolution in the presence of LCM-EC is local policy,
BGP Color-EC color, and finally LCM-EC color. then BGP Color-EC color, and finally LCM-EC color.
2.11. Error Handling 2.11. Error Handling
The error handling actions as described in [RFC7606] are applicable The error handling actions as described in [RFC7606] are applicable
for handling of BGP update messages for BGP CAR SAFI. In general, as for the handling of BGP update messages for BGP CAR SAFI. In
indicated in [RFC7606], the goal is to minimize the disruption of a general, as indicated in [RFC7606], the goal is to minimize the
session reset or 'AFI/SAFI disable' to the extent possible. disruption of a session reset or 'AFI/SAFI disable' to the extent
possible.
When the error determined allows for the router to skip the malformed When the error determined allows for the router to skip the malformed
NLRI(s) and continue processing of the rest of the update message, NLRI(s) and continue processing of the rest of the update message,
then it MUST handle such malformed NLRIs as 'Treat-as-withdraw'. In then it MUST handle such malformed NLRIs as 'treat-as-withdraw'. In
other cases, where the error in the NLRI encoding results in the other cases, where the error in the NLRI encoding results in the
inability to process the BGP update message, then the router SHOULD inability to process the BGP update message, then the router SHOULD
handle such malformed NLRIs as 'AFI/SAFI disable' when other AFI/SAFI handle such malformed NLRIs as 'AFI/SAFI disable' when other AFI/SAFI
besides BGP CAR are being advertised over the same session. besides BGP CAR are being advertised over the same session.
Alternately, the router MUST perform 'session reset' when the session Alternately, the router MUST perform 'session reset' when the session
is only being used for BGP CAR SAFI. is only being used for BGP CAR SAFI.
The CAR NLRI definition encodes NLRI length and key length The CAR NLRI definition encodes NLRI length and key length
explicitly. The NLRI length MUST be relied upon to enable the explicitly. The NLRI length MUST be relied upon to enable the
beginning of the next NLRI field to be located. Key length MUST be beginning of the next NLRI field to be located. Key length MUST be
relied upon to extract the key and perform 'treat-as-withdraw' for relied upon to extract the key and perform 'treat-as-withdraw' for
malformed information. malformed information.
A sender MUST ensure that the NLRI and key lengths are number of A sender MUST ensure that the NLRI and key lengths are the number of
actual bytes encoded in NLRI and key fields respectively, regardless actual bytes encoded in the NLRI and key fields, respectively,
of content being encoded. regardless of content being encoded.
Given NLRI length and Key length MUST be valid, failures in following Given NLRI length and Key length MUST be valid, failures in the
checks result in 'AFI/SAFI disable' or 'session reset': following checks result in 'AFI/SAFI disable' or 'session reset':
* Minimum NLRI length (must be atleast 2, as key length and NLRI * Minimum NLRI length (must be at least 2, as key length and NLRI
type are required fields). type are required fields).
* Key Length MUST be at least two less than NLRI Length. * Key Length MUST be at least two less than NLRI Length.
NLRI Type specific error handling: NLRI type-specific error handling:
* By default, a speaker SHOULD discard unrecognized or unsupported * By default, a speaker SHOULD discard an unrecognized or
NLRI type and move to next NLRI. unsupported NLRI type and move to the next NLRI.
* Key length and key errors of known NLRI type SHOULD result in * Key length and key errors of a known NLRI type SHOULD result in
discard of NLRI similar to unrecognized NLRI type. (This MUST be the discard of NLRI similar to an unrecognized NLRI type. (This
logged for trouble shooting). MUST be logged for trouble shooting.)
Transparent propagation of unrecognized NLRI type: Transparent propagation of unrecognized NLRI type:
* Key length allows unrecognized route types to transit through RR * Key length allows unrecognized route types to transit through the
transparently without a software upgrade. The RR receiving RR transparently without a software upgrade. The RR receiving
unrecognized route types does not need to interpret the key unrecognized route types does not need to interpret the key
portion of an NLRI and handles the NLRI as an opaque value of a portion of an NLRI and handles the NLRI as an opaque value of a
specific length. An implementation SHOULD provide configuration specific length. An implementation SHOULD provide configuration
that controls the RR unrecognized route type propagation behavior that controls the RR unrecognized route type propagation behavior,
and possibly at the granularity of route type values allowed. possibly at the granularity of route type values allowed. This
This configuration option gives the operator the ability to allow configuration option gives the operator the ability to allow
specific route types to be transparently passed through RRs based specific route types to be transparently passed through RRs based
on client speaker support. on client speaker support.
* In such a case RR may reflect NLRIs with NLRI type specific key * In such a case, the RRs may reflect NLRIs with NLRI type-specific
length and field errors. Clients of such RR that consume the key length and field errors. Clients of such an RR that consume
route for installation will perform the key error handling of the route for installation will perform the key error handling of
known NLRI type or discard unrecognized type. This prevents known NLRI type or discard the unrecognized type. This prevents
propagation of routes with NLRI errors any further in network. propagation of routes with NLRI errors any further in network.
Type-Specific Non-Key TLV handling: Type-specific Non-Key TLV handling:
* Either the length of a TLV would cause the NLRI length to be * Either the length of a TLV would cause the NLRI length to be
exceeded when parsing the TLV, or fewer than 2 bytes remain when exceeded when parsing the TLV, or fewer than 2 bytes remain when
beginning to parse the TLV. In either of these cases, an error beginning to parse the TLV. In either of these cases, an error
condition exists and the 'treat-as-withdraw' approach MUST be condition exists, and the 'treat-as-withdraw' approach MUST be
used. used.
* Type specific length constraints should be verified. The TLV MUST * Type-specific length constraints should be verified. The TLV MUST
be discarded if there is an error. When discarded, an error may be discarded if there is an error. When discarded, an error may
be logged for further analysis. be logged for further analysis.
* If multiple instances of same type are encountered, all but the * If multiple instances of same type are encountered, all but the
first instance MUST be discarded. When discarded, an error may be first instance MUST be discarded. When discarded, an error may be
logged for further analysis. logged for further analysis.
* If a speaker that performs encapsulation to the BGP next hop does * If a speaker that performs encapsulation to the BGP next hop does
not receive at least one recognized forwarding information TLV not receive at least one recognized forwarding information TLV
with T bit unset (such as label or SRv6 SID), such NLRI is with the T bit unset (such as label or SRv6 SID), such NLRI is
considered invalid and not eligible for best path selection. considered invalid and not eligible for best path selection.
Treat-as-withdraw may be used, though it is recommended to keep 'Treat-as-withdraw' may be used, though it is recommended to keep
the NLRI for debugging purposes. the NLRI for debugging purposes.
3. Service Route Automated Steering on Color-Aware Path 3. Service Route Automated Steering on Color-Aware Paths
An ingress PE (or ASBR) E1 automatically steers a C-colored service An ingress PE (or ASBR) E1 automatically steers a C-colored service
route V/v from E2 onto an (E2, C) color-aware path, as illustrated in route V/v from E2 onto an (E2, C) color-aware path, as illustrated in
(Section 1.2). If several such paths exist, a preference scheme is Section 1.2. If several such paths exist, a preference scheme is
used to select the best path. The default preference scheme is IGP used to select the best path. The default preference scheme is IGP
Flex-Algo first, then SR Policy, followed by BGP CAR. A Flex-Algo first, then SR Policy, followed by BGP CAR. A
configuration option may be used to adjust the default preference configuration option may be used to adjust the default preference
scheme. scheme.
An egress PE may express its intent that traffic should be steered a An egress PE may express its intent that traffic should be steered a
certain way through the transport layer by including the BGP Color-EC certain way through the transport layer by including the BGP Color-EC
[RFC9012] with the relevant service routes. An ingress PE steers [RFC9012] with the relevant service routes. An ingress PE steers
service traffic over a CAR (E, C) route using the service route's service traffic over a CAR (E, C) route using the service route's
next hop and BGP Color-EC. next hop and BGP Color-EC.
This is consistent with the automated service route steering on SR This is consistent with the automated service route steering on SR
Policy (a routing solution providing color-aware path) defined in Policy (a routing solution providing color-aware paths) defined in
[RFC9256]. All the steering variations described in [RFC9256] are [RFC9256]. All the steering variations described in [RFC9256] are
applicable to BGP CAR color-aware path: on-demand steering, per- applicable to BGP CAR color-aware paths: on-demand steering, per-
destination, per-flow, color-only steering. For brevity, please destination steering, per-flow steering, and color-only steering.
refer to [RFC9256] Section 8. For brevity, please refer to Section 8 of [RFC9256].
Appendix A provides illustrations of service route automated steering Appendix A provides illustrations of service route automated steering
over BGP CAR (E, C) routes. over BGP CAR (E, C) routes.
An egress PE may express its intent that traffic should be steered a An egress PE may express its intent that traffic should be steered a
certain way through the transport layer by allocating the SRv6 certain way through the transport layer by allocating the SRv6
Service SID from a routed intent-aware locator prefix (Section 3.3 of Service SID from a routed intent-aware locator prefix (Section 3.3 of
[RFC8986]). Steering at an ingress PE is via resolution of the [RFC8986]). Steering at an ingress PE is via resolution of the
Service SID over a CAR Type-2 IP Prefix route. Service Steering over Service SID over a CAR Type-2 IP Prefix route. Service steering over
BGP CAR SRv6 transport is described in Section 7. BGP CAR SRv6 transport is described in Section 7.
Service steering via BGP CAR routes is applicable to any BGP SAFI, Service steering via BGP CAR routes is applicable to any BGP SAFI,
including SAFIs for IPv4/IPv6 (SAFI 1), L3VPN (SAFI 128), PW, EVPN including SAFIs for IPv4/IPv6 (SAFI 1), L3VPN (SAFI 128), pseudowire
(SAFI 70), FlowSpec, and BGP-LU (SAFI 4). (PW), EVPN (SAFI 70), FlowSpec, and BGP-LU (SAFI 4).
4. Filtering 4. Filtering
PE and BRs may support filtering of CAR routes. For instance, the PEs and BRs may support filtering of CAR routes. For instance, the
filtering may only accept routes of locally configured colors. filtering may only accept routes of locally configured colors.
Techniques such as RT-Constrain [RFC4684] may also be applied to the Techniques such as RT Constrain [RFC4684] may also be applied to the
CAR SAFI, where Route Target (RT) Extended-Communities [RFC4360] can CAR SAFI, where Route Target (RT) Extended-Communities [RFC4360] can
be used to constrain distribution and automate filtering of CAR be used to constrain distribution and automate filtering of CAR
routes. RT assignment may be via user policy, for example an RT routes. RT assignment may be via user policy; for example, an RT
value can be assigned to all routes of a specific color. value can be assigned to all routes of a specific color.
A PE may support on-demand installation of a CAR route based on the A PE may support on-demand installation of a CAR route based on the
presence of a service route whose next-hop resolves via the CAR presence of a service route whose next hop resolves via the CAR
route. route.
Similarly, a PE may dynamically subscribe to receive individual CAR Similarly, a PE may dynamically subscribe to receive individual CAR
routes from upstream routers or route-reflectors to limit the routes routes from upstream routers or Route Reflectors (RRs) to limit the
that it needs to learn. On-demand subscription and automated routes that it needs to learn. On-demand subscription and automated
filtering procedures for individual CAR routes are outside the scope filtering procedures for individual CAR routes are outside the scope
of this document. of this document.
5. Scaling 5. Scaling
This section analyses the key scale requirement of This section analyzes the key scale requirement of [INTENT-AWARE],
[I-D.hr-spring-intentaware-routing-using-color], specifically: specifically:
* No intermediate node data-plane should need to scale to (Colors * * No intermediate node data-plane should need to scale to (Colors *
PEs). PEs).
* No node should learn and install a BGP CAR route to (E, C) if it * No node should learn and install a BGP CAR route to (E, C) if it
does not install a Colored service route to E. does not install a colored service route to E.
While the requirements and design principles generally apply to any While the requirements and design principles generally apply to any
transport, the logical analysis based on the network design in this transport, the logical analysis based on the network design in this
section focuses on MPLS / SR-MPLS transport since the scaling section focuses on MPLS/SR-MPLS transport since the scaling
constraints are specifically relevant to these technologies. BGP CAR constraints are specifically relevant to these technologies. BGP CAR
SAFI is used here, but the considerations can apply to [RFC8277] or SAFI is used here, but the considerations can apply to [RFC8277] or
[RFC8669] used with MPLS/SR-MPLS. [RFC8669] used with MPLS/SR-MPLS.
Two key principles used to address the scaling requirements are a Two key principles used to address the scaling requirements are a
hierarchical network and routing design, and on-demand route hierarchical network and routing design, and on-demand route
subscription and filtering. subscription and filtering.
Figure 2 in Section 5.1 provides an ultra-scale reference topology. Figure 2 in Section 5.1 provides an ultra-scale reference topology.
Section 5.1 describes this topology. Section 5.2 presents three Section 5.1 describes this topology. Section 5.2 presents three
design models to deploy BGP CAR in the reference topology, including design models to deploy BGP CAR in the reference topology, including
hierarchical options. Section 5.3 analyses the logical scaling hierarchical options. Section 5.3 analyzes the logical scaling
properties of each model. properties of each model.
Filtering techniques described in the previous section allow a PE to Filtering techniques described in the previous section allow a PE to
limit the CAR routes that it needs to learn or install. Scaling limit the CAR routes that it needs to learn or install. Scaling
benefits of on-demand BGP subscription and filtering will be benefits of on-demand BGP subscription and filtering will be
described in a separate document. described in a separate document.
5.1. Ultra-Scale Reference Topology 5.1. Ultra-Scale Reference Topology
RD:V/v via E2 RD:V/v via E2
skipping to change at page 32, line 31 skipping to change at line 1498
| E1| | | | | | E2| | E1| | | | | | E2|
|---+ | | | | +---| |---+ | | | | +---|
| +---+ +---+ +---+ +---+ | | +---+ +---+ +---+ +---+ |
| |122| |232| |342| |452| | | |122| |232| |342| |452| |
| +---+ +---+ +---+ +---+ | | +---+ +---+ +---+ +---+ |
| Access | Metro | Core | Metro | Access | | Access | Metro | Core | Metro | Access |
| domain 1 | domain 2 | domain 3 | domain 4 | domain 5 | | domain 1 | domain 2 | domain 3 | domain 4 | domain 5 |
+-------------+--------------+--------------+--------------+----------+ +-------------+--------------+--------------+--------------+----------+
iPE iBRM iBRC eBRC eBRM ePE iPE iBRM iBRC eBRC eBRM ePE
Figure 2: Ultra-Scale Reference Topology Figure 2: Ultra-Scale Reference Topology
The following description applies to the reference topology above: The following description applies to the reference topology above:
* Independent IS-IS/OSPF SR instance in each domain. * Independent IS-IS/OSPF SR instance in each domain.
* Each domain has Flex Algo 128. Prefix SID for a node is SRGB * Each domain has Flex Algo 128. Prefix-SID for a node is Segment
168000 plus node number. Routing Global Block (SRGB) 168000 plus node number.
* A BGP CAR route (E2, C1) is advertised by egress BRM node 451. * A BGP CAR route (E2, C1) is advertised by egress BRM node 451.
The route is sourced locally from redistribution from IGP-FA 128. The route is sourced locally from redistribution from IGP-FA 128.
* Not shown for simplicity, node 452 will also advertise (E2, C1). * Not shown for simplicity, node 452 will also advertise (E2, C1).
* When a transport RR is used within the domain or across domains, * When a transport RR is used within the domain or across domains,
ADD-PATH is enabled to advertise paths from both egress BRs to ADD-PATH is enabled to advertise paths from both egress BRs to its
it's clients. clients.
* Egress PE E2 advertises a VPN route RD:V/v with BGP Color extended * Egress PE E2 advertises a VPN route RD:V/v with BGP Color-EC C1
community C1 that propagates via service RRs to ingress PE E1. that propagates via service RRs to ingress PE E1.
* E1 steers V/v prefix via color-aware path (E2, C1) and VPN label * E1 steers V/v prefix via color-aware path (E2, C1) and VPN label
30030. 30030.
5.2. Deployment Model 5.2. Deployment Model
5.2.1. Flat 5.2.1. Flat
RD:V/v via E2 RD:V/v via E2
+-----+ +-----+ vpn label:30030 +-----+ +-----+ +-----+ vpn label:30030 +-----+
skipping to change at page 33, line 43 skipping to change at line 1557
+-------------+--------------+--------------+--------------+----------+ +-------------+--------------+--------------+--------------+----------+
iPE iBRM iBRC eBRC eBRM ePE iPE iBRM iBRC eBRC eBRM ePE
168121 168231 168341 168451 168121 168231 168341 168451
168002 168002 168002 168002 168002 168002 168002 168002 168002 168002
30030 30030 30030 30030 30030 30030 30030 30030 30030 30030 30030 30030
Figure 3: Flat Transport Network Design Figure 3: Flat Transport Network Design
* Node 451 advertises BGP CAR route (E2, C1) to 341, from which it * Node 451 advertises BGP CAR route (E2, C1) to 341, from which it
goes to 231 then to 121 and finally to E1. goes to 231, then to 121, and finally to E1.
* Each BGP hop allocates local label and programs swap entry in * Each BGP hop allocates local label and programs swap entry in
forwarding for (E2, C1). forwarding for (E2, C1).
* E1 receives BGP CAR route (E2, C1) via 121 with label 168002. * E1 receives BGP CAR route (E2, C1) via 121 with label 168002.
- Let's assume E1 selects that path. - Let's assume E1 selects that path.
* E1 resolves BGP CAR route (E2, C1) via 121 on color-aware path * E1 resolves BGP CAR route (E2, C1) via 121 on color-aware path
(121, C1). (121, C1).
- Color-aware path (121, C1) is FA128 path to 121 (label 168121). - Color-aware path (121, C1) is FA128 path to 121 (label 168121).
* E1's imposition color-aware label-stack for V/v is thus * E1's imposition color-aware label stack for V/v is thus:
- 30030 <=> V/v - 30030 <=> V/v
- 168002 <=> (E2, C1) - 168002 <=> (E2, C1)
- 168121 <=> (121, C1) - 168121 <=> (121, C1)
* Each BGP hop performs swap operation on 168002 bound to color- * Each BGP hop performs swap operation on 168002 bound to color-
aware path (E2, C1). aware path (E2, C1).
skipping to change at page 34, line 50 skipping to change at line 1611
| Access | Metro | Core | Metro | Access | | Access | Metro | Core | Metro | Access |
| domain 1 | domain 2 | domain 3 | domain 4 | domain 5 | | domain 1 | domain 2 | domain 3 | domain 4 | domain 5 |
+-------------+--------------+--------------+--------------+----------+ +-------------+--------------+--------------+--------------+----------+
iPE iBRM iBRC eBRC eBRM ePE iPE iBRM iBRC eBRC eBRM ePE
168231 168341 168231 168341
168121 168451 168451 168451 168121 168451 168451 168451
168002 168002 168002 168002 168002 168002 168002 168002 168002 168002
30030 30030 30030 30030 30030 30030 30030 30030 30030 30030 30030 30030
Figure 4: Hierarchical BGP transport CAR, Next-Hop-Self (NHS) at iBR Figure 4: Hierarchical BGP Transport CAR, Next-Hop-Self (NHS) at iBR
* Node 451 advertises BGP CAR route (451, C1) to 341, from which it * Node 451 advertises BGP CAR route (451, C1) to 341, from which it
goes to 231 and finally to 121. goes to 231, and finally to 121.
* Each BGP hop allocates local label and programs swap entry in * Each BGP hop allocates local label and programs swap entry in
forwarding for (451, C1). forwarding for (451, C1).
* 121 resolves received BGP CAR route (451, C1) via 231 (label * 121 resolves received BGP CAR route (451, C1) via 231 (label
168451) on color-aware path (231, C1). 168451) on color-aware path (231, C1).
- Color-aware path (231, C1) is FA128 path to 231 (label 168231). - Color-aware path (231, C1) is FA128 path to 231 (label 168231).
* 451 advertises BGP CAR route (E2, C1) via 451 to transport RR * 451 advertises BGP CAR route (E2, C1) via 451 to transport RR
skipping to change at page 35, line 29 skipping to change at line 1638
* 121 receives BGP CAR route (E2, C1) via 451 with label 168002. * 121 receives BGP CAR route (E2, C1) via 451 with label 168002.
- Let's assume 121 selects that path. - Let's assume 121 selects that path.
* 121 resolves BGP CAR route (E2, C1) via 451 on color-aware path * 121 resolves BGP CAR route (E2, C1) via 451 on color-aware path
(451, C1). (451, C1).
- Color-aware path (451, C1) is BGP CAR path to 451 (label - Color-aware path (451, C1) is BGP CAR path to 451 (label
168451). 168451).
* 121 imposition of color-aware label stack for (E2, C1) is thus * 121 imposition of color-aware label stack for (E2, C1) is thus:
- 168002 <=> (E2, C1) - 168002 <=> (E2, C1)
- 168451 <=> (451, C1) - 168451 <=> (451, C1)
- 168231 <=> (231, C1) - 168231 <=> (231, C1)
* 121 advertises (E2, C1) to E1 with next hop self (121) and label * 121 advertises (E2, C1) to E1 with next-hop-self (121) and label
168002 168002.
* E1 constructs same imposition color-aware label-stack for V/v via * E1 constructs same imposition color-aware label stack for V/v via
(E2, C1) as in the flat model: (E2, C1) as in the flat model:
- 30030 <=> V/v - 30030 <=> V/v
- 168002 <=> (E2, C1) - 168002 <=> (E2, C1)
- 168121 <=> (121, C1) - 168121 <=> (121, C1)
* 121 performs swap operation on 168002 with hierarchical color- * 121 performs swap operation on 168002 with hierarchical color-
aware label stack for (E2, C1) via 451 from step 7. aware label stack for (E2, C1) via 451 from step 7.
skipping to change at page 36, line 43 skipping to change at line 1699
| Access | Metro | Core | Metro | Access | | Access | Metro | Core | Metro | Access |
| domain 1 | domain 2 | domain 3 | domain 4 | domain 5 | | domain 1 | domain 2 | domain 3 | domain 4 | domain 5 |
+-------------+--------------+--------------+--------------+----------+ +-------------+--------------+--------------+--------------+----------+
iPE iBRM iBRC eBRC eBRM ePE iPE iBRM iBRC eBRC eBRM ePE
168121 168231 168341 168121 168231 168341
168451 168451 168451 168451 168451 168451 168451 168451
168002 168002 168002 168002 168002 168002 168002 168002 168002 168002
30030 30030 30030 30030 30030 30030 30030 30030 30030 30030 30030 30030
Figure 5: Hierarchical BGP transport CAR, Next-Hop-Unchanged Figure 5: Hierarchical BGP Transport CAR, Next-Hop-Unchanged
(NHU) at iBR (NHU) at iBR
* Nodes 341, 231 and 121 receive and resolve BGP CAR route (451, C1) * Nodes 341, 231, and 121 receive and resolve BGP CAR route (451,
the same as in the previous model. C1) the same as in the previous model.
* Node 121 allocates local label and programs swap entry in * Node 121 allocates local label and programs swap entry in
forwarding for (451, C1). forwarding for (451, C1).
* 451 advertises BGP CAR route (E2, C1) to transport RR T-RR2, which * 451 advertises BGP CAR route (E2, C1) to transport RR T-RR2, which
reflects it to transport RR T-RR1, which reflects it to 121. reflects it to transport RR T-RR1, which reflects it to 121.
* Node 121 advertises (E2, C1) to E1 with next hop as 451; i.e., * Node 121 advertises (E2, C1) to E1 with next hop as 451 (i.e.,
next-hop-unchanged. next-hop-unchanged).
* 121 also advertises (451, C1) to E1 with next hop self (121) and * 121 also advertises (451, C1) to E1 with next-hop-self (121) and
label 168451. label 168451.
* E1 resolves BGP CAR route (451, C1) via 121 on color-aware path * E1 resolves BGP CAR route (451, C1) via 121 on color-aware path
(121, C1). (121, C1).
- Color-aware path (121, C1) is FA128 path to 121 (label 168121). - Color-aware path (121, C1) is FA128 path to 121 (label 168121).
* E1 receives BGP CAR route (E2, C1) via 451 with label 168002. * E1 receives BGP CAR route (E2, C1) via 451 with label 168002.
- Let's assume E1 selects that path. - Let's assume E1 selects that path.
* E1 resolves BGP CAR route (E2, C1) via 451 on color-aware path * E1 resolves BGP CAR route (E2, C1) via 451 on color-aware path
(451, C1). (451, C1).
- Color-aware path (451, C1) is BGP CAR path to 451 (label - Color-aware path (451, C1) is BGP CAR path to 451 (label
168451). 168451).
* E1's imposition color-aware label-stack for V/v is thus * E1's imposition color-aware label stack for V/v is thus:
- 30030 <=> V/v - 30030 <=> V/v
- 168002 <=> (E2, C1) - 168002 <=> (E2, C1)
- 168451 <=> (451, C1) - 168451 <=> (451, C1)
- 168121 <=> (121, C1) - 168121 <=> (121, C1)
* Nodes 121, 231 and 341 perform swap operation on 168451 bound to * Nodes 121, 231, and 341 perform swap operation on 168451 bound to
(451, C1). (451, C1).
* 451 performs swap operation on 168002 bound to color-aware path * 451 performs swap operation on 168002 bound to color-aware path
(E2, C1). (E2, C1).
5.3. Scale Analysis 5.3. Scale Analysis
The following two tables summarize the logically analyzed scaling of The following two tables summarize the logically analyzed scaling of
the control-plane and data-plane for these three models: the control-plane and data-plane for the previous three models:
| E1 | 121 | 231 +=======+=====================+=====================+=============+
-----+---------------------+---------------------+-------------------- | | E1 | 121 | 231 |
FLAT | (E2,C) via (121,C) | (E2,C) via (231,C) | (E2,C) via (341,C) +=======+=====================+=====================+=============+
-----+---------------------+---------------------+-------------------- | FLAT | (E2,C) via (121,C) | (E2,C) via (231,C) | (E2,C) via |
H.NHS| (E2,C) via (121,C) | (E2,C) via (451,C) | | | | | (341,C) |
| | (451,C) via (231,C) | (451,C) via (341,C) +=======+---------------------+---------------------+-------------+
-----+---------------------+---------------------+-------------------- | H.NHS | (E2,C) via (121,C) | (E2,C) via (451,C) | (451,C) via |
H.NHU| (E2,C) via (451,C) | | | | | (451,C) via (231,C) | (341,C) |
| (451,C) via (121,C) | (451,C) via (231,C) | (451,C) via (341,C) +=======+---------------------+---------------------+-------------+
-----+---------------------+---------------------+-------------------- | H.NHU | (E2,C) via (451,C) | (451,C) via (231,C) | (451,C) via |
| | (451,C) via (121,C) | | (341,C) |
+=======+---------------------+---------------------+-------------+
| E1 | 121 | 231 Table 1
-----+---------------------+---------------------+--------------------
FLAT | V -> 30030 | 168002 -> 168002 | 168002 -> 168002 +=======+============+==================+==================+
| 168002 | 168231 | 168341 | | E1 | 121 | 231 |
| 168121 | | +=======+============+==================+==================+
-----+---------------------+---------------------+-------------------- | FLAT | V -> 30030 | 168002 -> 168002 | 168002 -> 168002 |
H.NHS| V -> 30030 | 168002 -> 168002 | 168451 -> 168451 | | 168002 | 168231 | 168341 |
| 168002 | 168451 | 168341 | | 168121 | | |
| 168121 | 168231 | +=======+------------+------------------+------------------+
-----+---------------------+---------------------+-------------------- | H.NHS | V -> 30030 | 168002 -> 168002 | 168451 -> 168451 |
H.NHU| V -> 30030 | 168451 -> 168451 | 168451 -> 168451 | | 168002 | 168451 | 168341 |
| 168002 | 168231 | 168341 | | 168121 | 168231 | |
| 168451 | | +=======+------------+------------------+------------------+
| 168121 | | | H.NHU | V -> 30030 | 168451 -> 168451 | 168451 -> 168451 |
-----+---------------------+---------------------+-------------------- | | 168002 | 168231 | 168341 |
| | 168451 | | |
| | 168121 | | |
+=======+------------+------------------+------------------+
Table 2
* The flat model is the simplest design, with a single BGP transport * The flat model is the simplest design, with a single BGP transport
level. It results in the minimum label/SID stack at each BGP hop. level. It results in the minimum label/SID stack at each BGP hop.
However, it significantly increases the scale impact on the core However, it significantly increases the scale impact on the core
BRs (e.g. 341), whose FIB capacity and even MPLS label space may BRs (e.g., 341), whose FIB capacity and even MPLS label space may
be exceeded. be exceeded.
- 341's data-plane scales with (E2, C) where there may be 300k - 341's data-plane scales with (E2, C) where there may be 300k Es
E's and 5 C's hence 1.5M entries > 1M MPLS data-plane. and 5 Cs, hence 1.5M entries > 1M MPLS data-plane.
* The hierarchical models avoid the need for core BRs to learn * The hierarchical models avoid the need for core BRs to learn
routes and install label forwarding entries for (E, C) routes. routes and install label forwarding entries for (E, C) routes.
- Whether next hop is set to self or left unchanged at 121, 341's - Whether next hop is set to self or left unchanged at 121, 341's
data-plane scales with (451, C) where there may be thousands of data-plane scales with (451, C) where there may be thousands of
451's and 5 C's. Therefore, this scaling is well under the 1 451s and 5 Cs. Therefore, this scaling is well under the 1
million MPLS labels data-plane limit. million MPLS labels data-plane limit.
- They also aid faster convergence by allowing the PE routes to - They also aid faster convergence by allowing the PE routes to
be distributed via out-of-band RRs that can be scaled be distributed via out-of-band RRs that can be scaled
independent of the transport BRs. independent of the transport BRs.
* The next-hop-self option at ingress BRM (e.g. 121) hides the * The next-hop-self option at ingress BRM (e.g., 121) hides the
hierarchical design from the ingress PE, keeping its outgoing hierarchical design from the ingress PE, keeping its outgoing
label programming as simple as the flat model. However, the label programming as simple as the flat model. However, the
ingress BRM requires an additional BGP transport level recursion, ingress BRM requires an additional BGP transport level recursion,
which coupled with load-balancing adds data-plane complexity. It which coupled with load-balancing adds data-plane complexity. It
needs to support a swap and push operation. It also needs to needs to support a swap and push operation. It also needs to
install label forwarding entries for the egress PEs that are of install label forwarding entries for the egress PEs that are of
interest to its local ingress PEs. interest to its local ingress PEs.
* With the next-hop-unchanged option at ingress BRM (e.g. 121), only * With the next-hop-unchanged option at ingress BRM (e.g., 121),
an ingress PE needs to learn and install output label entries for only an ingress PE needs to learn and install output label entries
egress (E, C) routes. The ingress BRM only installs label for egress (E, C) routes. The ingress BRM only installs label
forwarding entries for the egress ABR (e.g. 451). However, the forwarding entries for the egress ABR (e.g., 451). However, the
ingress PE needs an additional BGP transport level recursion and ingress PE needs an additional BGP transport level recursion and
pushes a BGP VPN label and two BGP transport labels. It may also pushes a BGP VPN label and two BGP transport labels. It may also
need to handle load-balancing for the egress ABRs. This is the need to handle load-balancing for the egress ABRs. This is the
most complex data-plane option for the ingress PE. most complex data-plane option for the ingress PE.
5.4. Anycast SID 5.4. Anycast SID
This section describes how Anycast SID complements and improves the This section describes how Anycast SID complements and improves the
scaling designs above. scaling designs above.
5.4.1. Anycast SID for Transit Inter-domain Nodes 5.4.1. Anycast SID for Transit Inter-Domain Nodes
* Redundant BRs (e.g. two egress BRMs, 451 and 452) advertise BGP * Redundant BRs (e.g., two egress BRMs, 451 and 452) advertise BGP
CAR routes for a local PE (e.g., E2) with the same SID (based on CAR routes for a local PE (e.g., E2) with the same SID (based on
label index). Such egress BRMs may be assigned a common Anycast label index). Such egress BRMs may be assigned a common Anycast
SID, so that the BGP next hops for these routes will also resolve SID, so that the BGP next hops for these routes will also resolve
via a color-aware path to the Anycast SID. via a color-aware path to the Anycast SID.
* The use of Anycast SID naturally provides fast local convergence * The use of Anycast SID naturally provides fast local convergence
upon failure of an egress BRM node. In addition, it decreases the upon failure of an egress BRM node. In addition, it decreases the
recursive resolution and load-balancing complexity at an ingress recursive resolution and load-balancing complexity at an ingress
BRM or PE in the hierarchical designs above. BRM or PE in the hierarchical designs above.
5.4.2. Anycast SID for Transport Color Endpoints (e.g., PEs) 5.4.2. Anycast SID for Transport Color Endpoints
The common Anycast SID technique may also be used for a redundant The common Anycast SID technique may also be used for a redundant
pair of PEs that share an identical set of service (VPN) attachments. pair of PEs that share an identical set of service (VPN) attachments.
* For example, assume a node E2' paired with E2 above (e.g., * For example, assume a node E2' is paired with E2 above (e.g.,
Figure 5). Both PEs should be configured with the same static Figure 5). Both PEs should be configured with the same static
label/SID for the services (e.g., per-VRF VPN label/SID), and will label/SID for the services (e.g., per-VRF VPN label/SID), and will
advertise associated service routes with the Anycast IP as BGP advertise associated service routes with the Anycast IP as BGP
next hop. next hop.
* This design provides a convergence and recursive resolution * This design provides a convergence and recursive resolution
benefit on an ingress PE or ABR similar to the egress ABR case in benefit on an ingress PE or ABR similar to the egress ABR case in
the previous section (Section 5.4.1). However, its applicability Section 5.4.1. However, its applicability is limited to cases
is limited to cases where the above constraints can be met. where the above constraints can be met.
6. Routing Convergence 6. Routing Convergence
BGP CAR leverages existing well-known design techniques to provide BGP CAR leverages existing well-known design techniques to provide
fast convergence. fast convergence.
Section 2.7 describes how BGP CAR provides localized convergence Section 2.7 describes how BGP CAR provides localized convergence
within a domain for BR failures, including originating BRs, without within a domain for BR failures, including originating BRs, without
propagating failure churn into other domains. propagating failure churn into other domains.
Anycast SID techniques described in Section 5.4 can provide further Anycast SID techniques described in Section 5.4 can provide further
convergence optimizations for BR and PE failures deployed in convergence optimizations for BR and PE failures deployed in
redundant designs. redundant designs.
7. CAR SRv6 7. CAR SRv6
7.1. Overview 7.1. Overview
Steering services over SRv6 based intent-aware multi-domain transport Steering services over SRv6-based intent-aware multi-domain transport
paths may be categorized into two distinct cases that are described paths may be categorized into two distinct cases that are described
in Section 5 of [RFC9252]. Both cases are supported by BGP CAR, as in Section 5 of [RFC9252]. Both cases are supported by BGP CAR, as
described below. described below.
7.1.1. Routed Service SID 7.1.1. Routed Service SID
The SRv6 Service SID that is advertised with a service route is The SRv6 Service SID that is advertised with a service route is
allocated by an egress PE from a routed intent-aware locator prefix allocated by an egress PE from a routed intent-aware locator prefix
(Section 3.3 of [RFC8986]). Service steering at an ingress PE is via (Section 3.3 of [RFC8986]). Service steering at an ingress PE is via
resolution of the Service SID signaled with the service route as resolution of the Service SID signaled with the service route as
described in ([RFC9252]). described in [RFC9252].
The intent-aware transport path to the SRv6 locator of the egress PE The intent-aware transport path to the SRv6 locator of the egress PE
is provided by underlay IP routing. Underlay IP routing can include is provided by underlay IP routing. Underlay IP routing can include
IGP Flex-Algo [RFC9350] within a domain, and BGP CAR [this document] IGP Flex-Algo [RFC9350] within a domain, and BGP CAR (as defined in
across multiple IGP domains or BGP ASes. this document) across multiple IGP domains or BGP ASes.
An SRv6 locator prefix is assigned for a given intent or color. The An SRv6 locator prefix is assigned for a given intent or color. The
SRv6 locator may be shared with an IGP Flex-Algo, or may be assigned SRv6 locator may be shared with an IGP Flex-Algo, or it may be
specific to BGP CAR for a given intent. assigned specific to BGP CAR for a given intent.
Distribution of SRv6 locators in BGP CAR SAFI: Distribution of SRv6 locators in BGP CAR SAFI:
* In a multi-domain network, the SRv6 locator prefix is distributed * In a multi-domain network, the SRv6 locator prefix is distributed
using BGP CAR SAFI to ingress PEs and ASBRs in a remote domain. using BGP CAR SAFI to ingress PEs and ASBRs in a remote domain.
The SRv6 locator prefix may be advertised in the BGP CAR SAFI from The SRv6 locator prefix may be advertised in the BGP CAR SAFI from
an egress PE, or redistributed into BGP CAR from an IGP-FlexAlgo an egress PE, or redistributed into BGP CAR from an IGP-FlexAlgo
at a BR. The locator prefix may also be summarized on a border at a BR. The locator prefix may also be summarized on a border
node along the path and a summary route distributed to ingress node along the path and a summary route distributed to ingress
PEs. PEs.
* An IP Prefix CAR route (Type-2) is defined to distribute SRv6 * An IP Prefix CAR route (Type-2) is defined to distribute SRv6
locator prefixes and described in Section 2.9.4 and Section 8. locator prefixes and described in Sections 2.9.4 and 8.
* A BGP CAR advertised SRv6 locator prefix may also be used for * A BGP CAR advertised SRv6 locator prefix may also be used for
resolution of the SRv6 service SID advertised for best-effort resolution of the SRv6 Service SID advertised for best-effort
connectivity. connectivity.
Appendix C.1 and Appendix C.2 illustrates the control and forwarding Appendices C.1 and C.2 illustrate the control, and forwarding
behaviors for routed SRv6 Service SID. behaviors for routed SRv6 Service SIDs.
Section 7.2 describes the deployment options. Section 7.2 describes the deployment options.
Section 7.3 describes operational considerations of using BGP CAR Section 7.3 describes operational considerations of using BGP CAR
SAFI vs BGP IPv6 SAFI for inter-domain route distribution of SRv6 SAFI versus BGP IPv6 SAFI for inter-domain route distribution of SRv6
locators. locators.
7.1.2. Non-routed Service SID 7.1.2. Non-Routed Service SID
The SRv6 Service SID allocated by an egress PE is not routed. The The SRv6 Service SID allocated by an egress PE is not routed. The
service route carrying the non-routed SRv6 Service SID is advertised service route carrying the non-routed SRv6 Service SID is advertised
by the egress PE with a Color-EC C ([RFC9252] section 5). An ingress by the egress PE with a Color-EC C ([RFC9252], Section 5). An
PE in a remote domain steers traffic for the received service route ingress PE in a remote domain steers traffic for the received service
with Color-EC C and this SRv6 Service SID as described below. route with Color-EC C and this SRv6 Service SID as described below.
BGP CAR distribution of (E, C) underlay route: BGP CAR distribution of (E, C) underlay route:
* The intent-aware path to the egress PE within the egress domain is * The intent-aware path to the egress PE within the egress domain is
provided by an SR-TE or similar policy (E, C) [RFC9256]. This (E, provided by an SR-TE or similar policy (E, C) [RFC9256]. This (E,
C) policy is distributed into the multi-domain network from egress C) policy is distributed into the multi-domain network from egress
BRs using a BGP CAR (E, C) route towards ingress PEs in other BRs using a BGP CAR (E, C) route towards ingress PEs in other
domains. This signaling is the same as for SR-MPLS as described domains. This signaling is the same as for SR-MPLS as described
in earlier sections. in earlier sections.
skipping to change at page 42, line 9 skipping to change at line 1954
intent C. An SR-PCE or local configuration may ensure multiple intent C. An SR-PCE or local configuration may ensure multiple
BRs in the egress domain that originate the (E, C) route advertise BRs in the egress domain that originate the (E, C) route advertise
the same SRv6 transport SID. the same SRv6 transport SID.
BGP CAR distribution of SRv6 locator underlay route: BGP CAR distribution of SRv6 locator underlay route:
* BGP CAR MAY also provide the underlay intent-aware inter-domain * BGP CAR MAY also provide the underlay intent-aware inter-domain
route to resolve the intent-aware SRv6 transport SID advertised route to resolve the intent-aware SRv6 transport SID advertised
with the (E, C) BGP CAR route as follows: with the (E, C) BGP CAR route as follows:
- An egress domain BR has a SRv6 locator prefix that covers the - An egress domain BR has an SRv6 locator prefix that covers the
SRv6 transport SID allocated by the egress BR for the (E, C) SRv6 transport SID allocated by the egress BR for the (E, C)
BGP CAR route. BGP CAR route.
- The egress domain BR advertises an IP Prefix Type-2 CAR route - The egress domain BR advertises an IP Prefix Type-2 CAR route
for the SRv6 locator prefix, and the route is distributed for the SRv6 locator prefix, and the route is distributed
across BGP hops in the underlay towards ingress PEs. This across BGP hops in the underlay towards ingress PEs. This
distribution is the same as the previous Section 7.1.1 case. distribution is the same as the previous case in Section 7.1.1.
The route may also be summarized in another CAR type-2 route The route may also be summarized in another CAR Type-2 route
prefix. prefix.
Service traffic steering and SRv6 transport SID resolution at ingress Service traffic steering and SRv6 transport SID resolution at ingress
PE: PE:
* An ingress PE in a remote domain resolves the received service * An ingress PE in a remote domain resolves the received service
route with Color C via the (E, C) BGP CAR route above, as route with color C via the (E, C) BGP CAR route above, as
described in Section 3. described in Section 3.
* Additionally, the ingress PE resolves the SRv6 transport SID * Additionally, the ingress PE resolves the SRv6 transport SID
received in the BGP CAR (E, C) route via the BGP CAR IP Prefix received in the BGP CAR (E, C) route via the BGP CAR IP Prefix
route, similar to the SRv6 Routed Service SID resolution in route, similar to the SRv6 Routed Service SID resolution in
Section 7.1.1. Section 7.1.1.
- Multiple (E, C) routes may resolve via a single IP Prefix CAR - Multiple (E, C) routes may resolve via a single IP Prefix CAR
route. route.
o Resolution of (E, C) routes over IP Prefix CAR routes is the o Resolution of (E, C) routes over IP Prefix CAR routes is the
typical resolution order as the IP Prefix route provides typical resolution order as the IP Prefix route provides
intent-aware reachability to the BRs that advertise the (E, intent-aware reachability to the BRs that advertise the (E,
C) specific routes for each egress PE. However, there can C) specific routes for each egress PE. However, there can
be use-cases where a IP Prefix CAR route may resolve via a be use cases where an IP Prefix CAR route may resolve via a
(E, C) route. (E, C) route.
* The ingress PE via the recursive resolution above builds the * The ingress PE via the recursive resolution above builds the
packet encapsulation that contains the SRv6 Service SID and the packet encapsulation that contains the SRv6 Service SID and the
received (E, C) route's SRv6 transport SID in the SID-list. received (E, C) route's SRv6 transport SID in the SID list.
Appendix C.3 contains an example that illustrates the control plane Appendix C.3 contains an example that illustrates the control plane
distribution, recursive resolution and forwarding behaviors described distribution, recursive resolution and forwarding behaviors described
above. above.
Note: An SR-policy may also be defined for multi-domain end to end Note: An SR-policy may also be defined for multi-domain end to end
[RFC9256], independent of BGP CAR. In that case, both BGP CAR and [RFC9256], independent of BGP CAR. In that case, both BGP CAR and
SR-TE inter-domain paths may be available at an ingress PE for an (E, SR-TE inter-domain paths may be available at an ingress PE for an (E,
C) route (Section 1.2). C) route (Section 1.2).
7.2. Deployment Options For CAR SRv6 Locator Reachability Distribution 7.2. Deployment Options for CAR SRv6 Locator Reachability Distribution
and Forwarding and Forwarding
Since an SRv6 locator (or summary) is an IPv6 prefix, it will be Since an SRv6 locator (or summary) is an IPv6 prefix, it will be
installed into the IPv6 forwarding table on a BGP router (e.g., ABR installed into the IPv6 forwarding table on a BGP router (e.g., ABR
or ASBR), for packet forwarding. With the use of IPv6 locator or ASBR) for packet forwarding. With the use of IPv6 locator
prefixes, there is no need to allocate and install per-PE SIDs on prefixes, there is no need to allocate and install per-PE SIDs on
each BGP hop to forward packets. each BGP hop to forward packets.
A few options to forward packets for BGP SRv6 prefixes described in A few options to forward packets for BGP SRv6 prefixes described in
([I-D.ietf-spring-srv6-mpls-interworking] also apply to BGP CAR. [SRv6-INTERWORK] also apply to BGP CAR. These options are described
These options are described in Section 7.2.1 and Section 7.2.2. in Sections 7.2.1 and 7.2.2.
7.2.1. Hop by Hop IPv6 Forwarding for BGP SRv6 Prefixes 7.2.1. Hop-by-Hop IPv6 Forwarding for BGP SRv6 Prefixes
This option employs hop by hop IPv6 lookup and forwarding on both BRs This option employs hop-by-hop IPv6 lookup and forwarding on both BRs
and P nodes in a domain along the path of propagation of BGP CAR and P nodes in a domain along the path of propagation of BGP CAR
routes. This option's procedures include the following: routes. This option's procedures include the following:
* In addition to BRs, P nodes within a domain also learn BGP CAR IP * In addition to BRs, P nodes within a domain also learn BGP CAR IP
Prefix routes (for SRv6) and install them into the forwarding Prefix routes (for SRv6) and install them into the forwarding
table. table.
* BGP routing is enabled on all internal nodes (iBGP) using full- * BGP routing is enabled on all internal nodes (iBGP) using full-
mesh or an RR. mesh or an RR.
* BRs distribute external BGP SRv6 routes to internal peers * BRs distribute external BGP SRv6 routes to internal peers
including P routers, with the following conditions: including P routers, with the following conditions:
- The external BGP Next-hop is advertised unchanged to the - the external BGP next hop is advertised unchanged to the
internal peers; internal peers;
- Internal nodes use recursive resolution via IGP at each hop to - internal nodes use recursive resolution via IGP at each hop to
forward IPv6 packets towards the external BGP next-hop; and forward IPv6 packets towards the external BGP next hop; and
- Resolution is per intent/color (e.g., via IGP IPv6 FlexAlgo). - resolution is per intent/color (e.g., via IGP IPv6 FlexAlgo).
This design is illustrated with an example in Appendix C.1. This design is illustrated with an example in Appendix C.1.
The benefits of this scheme are: The benefits of this scheme are:
* Simpler design, no tunnel encapsulation is required between BRs in * A simpler design, as no tunnel encapsulation is required between
a domain. BRs in a domain.
* No per-PE SID allocation and installation on any BGP hop. * No per-PE SID allocation and installation on any BGP hop.
* This design is similar to the well-known Internet / BGP hop-by-hop * This design is similar to the well-known Internet / BGP hop-by-hop
IP routing model and can support large scale route distribution. IP routing model and can support large-scale route distribution.
* In addition, since SRv6 locator prefixes can be summarized, this * In addition, since SRv6 locator prefixes can be summarized, this
minimizes the number of routes and hence the scale requirements on minimizes the number of routes, and hence the scale requirements
P routers. on P routers.
7.2.2. Encapsulation between BRs for BGP SRv6 Prefixes 7.2.2. Encapsulation Between BRs for BGP SRv6 Prefixes
In this design, IPv6 lookup and forwarding for BGP SRv6 prefixes are In this design, IPv6 lookup and forwarding for BGP SRv6 prefixes are
only done on BGP BRs. This option includes the following procedures: only done on BGP BRs. This option includes the following procedures:
* These nodes use SRv6 (or other) encapsulation to reach the BGP * These nodes use SRv6 (or other) encapsulations to reach the BGP
SRv6 next hop. SRv6 next hop.
- SRv6 outer encapsulation may be H.Encaps.Red. - SRv6 outer encapsulation may be H.Encaps.Red.
- Encapsulation is not needed for directly connected next hops, - Encapsulation is not needed for directly connected next hops,
such as with eBGP single-hop sessions. such as with eBGP single-hop sessions.
* BGP route distribution is enabled between BRs via RRs, or directly * BGP route distribution is enabled between BRs via RRs, or directly
if single-hop BGP. if single-hop BGP.
* An egress BR sets itself as BGP next hop, selects and advertises * An egress BR sets itself as BGP next hop, and selects and
an appropriate encapsulation towards itself. advertises an appropriate encapsulation towards itself.
- If SRv6 encapsulation, then SRv6 SID advertised from egress BR - If SRv6 encapsulation, then the SRv6 SID advertised from egress
is from an SRv6 locator for the specific intent within the BR is from an SRv6 locator for the specific intent within the
domain. Multiple BGP SRv6 prefixes may share a common SID, domain. Multiple BGP SRv6 prefixes may share a common SID,
avoiding per-PE SID allocation and installation on any BGP hop. avoiding per-PE SID allocation and installation on any BGP hop.
- If MPLS/SR-MPLS transport, the route will carry label/prefix- - If MPLS/SR-MPLS transport, the route will carry the label/
SID allocated by the next hop, may be shared. Prefix-SID allocated by the next hop, may be shared.
* An ingress BR encapsulates SRv6 egress PE destined packets with * An ingress BR encapsulates SRv6 egress PE destined packets with
encapsulation to BGP next hop, ie. the egress BR. encapsulation to BGP next hop (i.e., the egress BR).
Benefits of this scheme are: The benefits of this scheme are:
* P nodes do not need to learn or install BGP SRv6 prefixes in this * P nodes do not need to learn or install BGP SRv6 prefixes in this
(BGP-free core) design. (BGP-free core) design.
* No per-PE SID allocation and installation on any BGP hop. * No per-PE SID allocation and installation on any BGP hop.
This design is illustrated in Appendix C.2. This design is illustrated in Appendix C.2.
7.3. Operational Benefits of using CAR SAFI for SRv6 Locator Prefix 7.3. Operational Benefits of Using CAR SAFI for SRv6 Locator Prefix
Distribution Distribution
When reachability to an SRv6 SID is provided by distribution of a When reachability to an SRv6 SID is provided by distribution of a
locator prefix via underlay routing, BGP IPv6 SAFI (AFI/SAFI=2/1) may locator prefix via underlay routing, BGP IPv6 SAFI (AFI/SAFI=2/1) may
also be used for inter-domain distribution of these IPv6 prefixes as also be used for inter-domain distribution of these IPv6 prefixes as
described in [I-D.ietf-spring-srv6-mpls-interworking] (Section 7.1.2) described in Section 7.1.2 of [SRv6-INTERWORK] or [RFC9723].
or [I-D.ietf-idr-cpr].
Using the BGP CAR SAFI provides the following operational benefits: Using the BGP CAR SAFI provides the following operational benefits:
* CAR SAFI is a separate BGP SAFI used for underlay transport * CAR SAFI is a separate BGP SAFI used for underlay transport
intent-aware routing. It avoids overloading of BGP IPv6 SAFI, intent-aware routing. It avoids overloading of BGP IPv6 SAFI,
which also carries Internet (service) prefixes. Using CAR SAFI which also carries Internet (service) prefixes. Using CAR SAFI
provides: provides:
- Automatic separation of SRv6 locator (transport) routes from - Automatic separation of SRv6 locator (transport) routes from
Internet (service) routes, Internet (service) routes,
o Preventing inadvertent leaking of routes. o preventing inadvertent leaking of routes, and
o Avoiding need to configure specific route filters for o avoiding the need to configure specific route filters for
locator routes. locator routes.
- Priority handling of infrastructure routes over service - Priority handling of infrastructure routes over service
(Internet) routes. (Internet) routes.
* CAR SAFI also supports inter-domain distribution of (E, C) routes * CAR SAFI also supports inter-domain distribution of (E, C) routes
sourced from SR-Policy, in addition to SRv6 locator IPv6 prefixes. sourced from SR-Policy, in addition to SRv6 locator IPv6 prefixes.
* CAR SAFI may also be used for best-effort routes in addition to * CAR SAFI may also be used for best-effort routes in addition to
intent-aware routes as described in the next section. intent-aware routes as described in the next section.
Note: If infrastructure routes such as SRv6 locator routes are Note: If infrastructure routes such as SRv6 locator routes are
carried in both BGP-IP [RFC4271] / BGP-LU [RFC8277, RFC4798], and BGP carried in both BGP-IP [RFC4271] / BGP-LU [RFC8277] [RFC4798], and
CAR, Section 8 describes the path selection preference between them. BGP CAR, Section 8 describes the path selection preference between
them.
8. CAR IP Prefix Route 8. CAR IP Prefix Route
An IP Prefix CAR route is a route type (Type-2) that carries a An IP Prefix CAR route is a route type (Type-2) that carries a
routable IP prefix whose processing follows [RFC4271] and [RFC2545] routable IP prefix whose processing follows the semantics of
semantics. IP Prefix CAR routes are installed in the default routing [RFC4271] and [RFC2545]. IP Prefix CAR routes are installed in the
and forwarding table and provide longest-prefix-match forwarding. default routing and forwarding table and provide longest-prefix-match
This is unlike Type-1 (E, C) routes, where it is the signaled forwarding. This is unlike Type-1 (E, C) routes, where it is the
forwarding data such as labels/SIDs that are installed in the signaled forwarding data such as labels/SIDs that are installed in
forwarding table to create end to end paths. the forwarding table to create end-to-end paths.
IP Prefix CAR routes may be originated into BGP CAR SAFI either from IP Prefix CAR routes may be originated into BGP CAR SAFI either from
an egress PE or from a BR in a domain. Type-2 routes carry an egress PE or from a BR in a domain. Type-2 routes carry
infrastructure routes for both IPv4 and IPv6. infrastructure routes for both IPv4 and IPv6.
As described in Section 2.1, it is used for cases where a unique As described in Section 2.1, it is used for cases where a unique
routable IP prefix is assigned for a given intent or color. It may routable IP prefix is assigned for a given intent or color. It may
also be used for routes providing best-effort connectivity. also be used for routes providing best-effort connectivity.
A few applicable example use-cases: A few applicable example use cases:
* SRv6 locator prefix with color for specific intents. * SRv6 locator prefix with color for specific intents.
* SRv6 locator prefix without color for best-effort. * SRv6 locator prefix without color for best-effort.
* Best effort transport reachability to a PE/BR without color. * Best-effort transport reachability to a PE/BR without color.
For specific intents, color may be signaled with the IP Prefix CAR For specific intents, color may be signaled with the IP Prefix CAR
route for purposes such as intent-aware SRv6 SID or BGP next-hop route for purposes such as intent-aware SRv6 SID or BGP next hop
selection at each transit BR, color based routing policies and selection at each transit BR, color-based routing policies and
filtering, and intent-aware next-hop resolution (Section 2.5). These filtering, and intent-aware next-hop resolution (Section 2.5). These
purposes are the same as with (E, C) routes. For such purposes, purposes are the same as with (E, C) routes. For such purposes,
color associated with the CAR IP Prefix route is signaled using LCM- color associated with the CAR IP Prefix route is signaled using LCM-
EC. EC.
Reminder: LCM-EC conveys end-to-end intent/color associated with Reminder: LCM-EC conveys end-to-end intent/color associated with
route/NLRI. When traversing network domain(s) where a different route/NLRI. When traversing network domain(s) where a different
intent/color is used for next-hop resolution, BGP Color-EC may intent/color is used for next-hop resolution, BGP Color-EC may
additionally be used as in Section 2.10. additionally be used as in Section 2.10.
A special case of intent is best-effort which may be represented by a A special case of intent is best-effort, which may be represented by
color and follow above procedures. But to be compatible with a color and follow the above procedures. However, to be compatible
traditional operational usage, CAR IP Prefix route is allowed to be with traditional operational usage, the CAR IP Prefix route is
without color for best-effort. In this case, the routes will not allowed to be without color for best-effort. In this case, the
carry an LCM-EC. Resolution is described in Section 2.5. routes will not carry an LCM-EC. Resolution is described in
Section 2.5.
As described in Section 7.3, infrastructure prefixes are intended to As described in Section 7.3, infrastructure prefixes are intended to
be carried in CAR SAFI instead of SAFIs that also carry service be carried in CAR SAFI instead of SAFIs that also carry service
routes such as BGP-IP (SAFI 1, [RFC4271]) and BGP-LU (SAFI 4, routes such as BGP-IP (SAFI 1, [RFC4271]) and BGP-LU (SAFI 4,
[RFC4798]). However, if such infrastructure routes are also [RFC4798]). However, if such infrastructure routes are also
distributed in these SAFIs, a router may receive both BGP CAR SAFI distributed in these SAFIs, a router may receive both BGP CAR SAFI
paths and IP/LU SAFI paths. By default, CAR SAFI transport path is paths and IP/LU SAFI paths. By default, the CAR SAFI transport path
preferred over BGP IP or BGP-LU SAFI path. is preferred over the BGP IP or BGP-LU SAFI path.
A BGP transport CAR speaker that supports packet forwarding lookup A BGP transport CAR speaker that supports packet forwarding lookup
based on IPv6 prefix route (such as a BR) will set itself as next hop based on the IPv6 prefix route (such as a BR) will set itself as next
while advertising the route to peers. It will also install the IPv6 hop while advertising the route to peers. It will also install the
route into forwarding with the received next hop and/or IPv6 route into forwarding with the received next hop and/or
encapsulation. If such a transit router does not support this route encapsulation. If such a transit router does not support this route
type, it will not install this route and will not set itself as next type, it will not install this route and will not set itself as next
hop, hence will not propagate the route any further. hop; hence, it will not propagate the route any further.
9. VPN CAR 9. VPN CAR
This section illustrates the extension of BGP CAR to address the VPN This section illustrates the extension of BGP CAR to address the VPN
intent-aware routing requirement stated in Section 6.1.2 of intent-aware routing requirement stated in Section 6.1.2 of
[I-D.hr-spring-intentaware-routing-using-color]. The examples use [INTENT-AWARE]. The examples use MPLS, but other transport types can
MPLS, but other transport types can also be used (e.g., SRv6). also be used (e.g., SRv6).
CE1 -------------- PE1 -------------------- PE2 -------------- CE2 - V CE1 -------------- PE1 -------------------- PE2 -------------- CE2 - V
* BGP CAR SAFI is enabled on CE1-PE1 and PE2-CE2 sessions * BGP CAR SAFI is enabled on CE1-PE1 and PE2-CE2 sessions.
* BGP VPN CAR SAFI is enabled between PE1 and PE2 * BGP VPN CAR SAFI is enabled between PE1 and PE2.
* Provider publishes to customer that intent 'low-delay' is mapped * Provider publishes to customer that intent 'low-delay' is mapped
to color CP on its inbound peering links to color CP on its inbound peering links.
* Within its infrastructure, Provider maps intent 'low-delay' to * Within its infrastructure, provider maps intent 'low-delay' to
color CPT color CPT.
* On CE1 and CE2, intent 'low-delay' is mapped to CC * On CE1 and CE2, intent 'low-delay' is mapped to CC.
(V, CC) is a Color-Aware route originated by CE2 (V, CC) is a color-aware route originated by CE2.
1. CE2 sends to PE2 : [(V, CC), Label L1] via CE2 with LCM-EC (CP)
as per peering agreement 1. CE2 sends to PE2: [(V, CC), Label L1] via CE2 with LCM-EC (CP) as
2. PE2 installs in VRF A: [(V, CC), L1] via CE2 per peering agreement.
which resolves on (CE2, CP)
or connected OIF 2. PE2 installs in VRF A: [(V, CC), L1] via CE2, which resolves on
3 PE2 allocates VPN Label L2 and programs swap entry for (V, CC) (CE2, CP) or connected Outgoing Interface (OIF).
4. PE2 sends to PE1 : [(RD, V, CC), L2] via PE2, LCM-EC(CP)
with regular Color-EC (CPT) 3. PE2 allocates VPN Label L2 and programs swap entry for (V, CC).
5. PE1 installs in VRF A: [(V, CC), L2] via (PE2, CPT)
steered on (PE2, CPT) 4. PE2 sends to PE1: [(RD, V, CC), L2] via PE2, LCM-EC (CP) with
6. PE1 allocates Label L3 and programs swap entry for (V, CC) regular Color-EC (CPT).
7. PE1 sends to CE1 : [(V, CC), L3] via PE1
after removing LCM-EC through route-policy 5. PE1 installs in VRF A: [(V, CC), L2] via (PE2, CPT) steered on
8. CE1 installs : [(V, CC), L3] via PE1 (PE2, CPT).
which resolves on (PE1, CC)
or connected OIF 6. PE1 allocates Label L3 and programs swap entry for (V, CC).
9. Label L3 is installed as the imposition label for (V, CC)
7. PE1 sends to CE1: [(V, CC), L3] via PE1 after removing LCM-EC
through route policy.
8. CE1 installs: [(V, CC), L3] via PE1, which resolves on (PE1, CC)
or connected OIF.
9. Label L3 is installed as the imposition label for (V, CC).
VPN CAR distribution for (RD, V, CC) requires a new SAFI that follows VPN CAR distribution for (RD, V, CC) requires a new SAFI that follows
same VPN semantics as defined in [RFC4364] and also supports the the same VPN semantics as defined in [RFC4364] and also supports the
distribution of routes with the CAR NLRI and associated non-key TLVs distribution of routes with the CAR NLRI and associated non-key TLVs
defined in Section 2.9 of this document. defined in Section 2.9 of this document.
Procedures defined in [RFC4364] and [RFC4659] apply to VPN CAR SAFI. Procedures defined in [RFC4364] and [RFC4659] apply to VPN CAR SAFI.
Further, all CAR SAFI procedures described in Section 2 above apply Further, all CAR SAFI procedures described in Section 2 above apply
to CAR SAFI enabled within a VRF. Since CE and PE are typically in to CAR SAFI enabled within a VRF. Since CE and PE are typically in
different administrative domains, LCM-EC is attached to CAR routes. different administrative domains, LCM-EC is attached to CAR routes.
VPN CAR SAFI routes follow color based steering techniques as VPN CAR SAFI routes follow color-based steering techniques as
described in Section 3 and illustrated in example above. described in Section 3 and illustrated in the example above.
VPN CAR SAFI routes may also be advertised with a specific BGP next VPN CAR SAFI routes may also be advertised with a specific BGP next
hop per color, with a TEA or Tunnel Encapsulation EC and follow the hop per color, with a TEA or Tunnel Encapsulation EC, and follow the
procedures of [RFC9012] Section 6. procedures of Section 6 of [RFC9012].
CAR routes distributed in VPN CAR SAFI are infrastructure routes CAR routes distributed in VPN CAR SAFI are infrastructure routes
advertised by CEs in different customer VRFs on a PE. Example use- advertised by CEs in different customer VRFs on a PE. Example use
cases are intent-aware L3VPN CsC ([RFC4364] Section 9) and SRv6 over cases are intent-aware L3VPN Carriers' Carriers (Section 9 of
a provider network . The VPN RD distinguishes CAR routes of [RFC4364]) and SRv6 over a provider network. The VPN RD
different customers being advertised by the PE. distinguishes CAR routes of different customers being advertised by
the PE.
9.1. Format and Encoding 9.1. Format and Encoding
BGP VPN CAR SAFI leverages BGP multi-protocol extensions [RFC4760] BGP VPN CAR SAFI leverages BGP multi-protocol extensions [RFC4760]
and uses the MP_REACH_NLRI and MP_UNREACH_NLRI attributes for route and uses the MP_REACH_NLRI and MP_UNREACH_NLRI attributes for route
updates within SAFI value 84 along with AFI 1 for IPv4 VPN CAR updates within SAFI value 84 along with AFI 1 for IPv4 VPN CAR
prefixes and AFI 2 for IPv6 VPN CAR prefixes. prefixes and AFI 2 for IPv6 VPN CAR prefixes.
BGP speakers MUST use BGP Capabilities Advertisement to ensure BGP speakers MUST use the BGP Capabilities Advertisement to ensure
support for processing of BGP VPN CAR updates. This is done as support for processing of BGP VPN CAR updates. This is done as
specified in [RFC4760], by using capability code 1 (multi-protocol specified in [RFC4760], by using capability code 1 (multi-protocol
BGP), with AFI 1 and 2 (as required) and SAFI 84. BGP), with AFI 1 and 2 (as required) and SAFI 84.
The Next Hop network address field in the MP_REACH_NLRI may contain The Next Hop network address field in the MP_REACH_NLRI may contain
either a VPN-IPv4 or a VPN-IPv6 address with 8-octet RD set to zero, either a VPN-IPv4 or a VPN-IPv6 address with 8-octet RD set to zero,
independent of AFI. If the next hop length is 12, then the next hop independent of AFI. If the next hop length is 12, then the next hop
is a VPN-IPv4 address with an RD of 0 constructed as per [RFC4364]. is a VPN-IPv4 address with an RD of 0 constructed as per [RFC4364].
If the next hop length is 24 or 48, then the next hop is a VPN-IPv6 If the next hop length is 24 or 48, then the next hop is a VPN-IPv6
address constructed as per section 3.2.1.1 of [RFC4659]. address constructed as per Section 3.2.1.1 of [RFC4659].
9.1.1. VPN CAR (E, C) NLRI Type 9.1.1. VPN CAR (E, C) NLRI Type
VPN CAR Type-1 (E, C) NLRI with RD has the format shown below VPN CAR Type-1 (E, C) NLRI with RD has the format shown below:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| NLRI Length | Key Length | NLRI Type |Prefix Length | | NLRI Length | Key Length | NLRI Type |Prefix Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Route Distinguisher | | Route Distinguisher |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Route Distinguisher | | Route Distinguisher |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IP Prefix (variable) // | IP Prefix (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Color (4 octets) | | Color (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Followed by optional Non-Key TLVs encoded as per Section 2.9.2 It is followed by optional Non-Key TLVs encoded as per Section 2.9.2.
where: where:
All fields are encoded as per Section 2.9.3 with the following all fields are encoded as per Section 2.9.3 with the following
changes: changes:
* Key Length: This length indicates the total length comprised of Key Length: This length indicates the total length comprised of the
the RD, Prefix Length field, IP Prefix field, and the Color field. RD, Prefix Length field, IP Prefix field, and the Color field.
* Route Distinguisher: An 8-octet field encoded according to Route Distinguisher: An 8-octet field encoded according to
[RFC4364]. [RFC4364].
* Type-Specific Non-Key TLVs: Label TLV, Label Index TLV and SRv6 Type-Specific Non-Key TLVs: The Label TLV, Label Index TLV, and SRv6
SID TLV (Section 2.9.2) may be associated with the VPN CAR (E, C) SID TLV (Section 2.9.2) may be associated with the VPN CAR (E, C)
NLRI type. NLRI type.
9.1.2. VPN CAR IP Prefix NLRI Type 9.1.2. VPN CAR IP Prefix NLRI Type
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| NLRI Length | Key Length | NLRI Type |Prefix Length | | NLRI Length | Key Length | NLRI Type |Prefix Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Route Distinguisher | | Route Distinguisher |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Route Distinguisher | | Route Distinguisher |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IP Prefix (variable) // | IP Prefix (variable) //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Followed by optional Non-Key TLVs encoded as per Section 2.9.2 It is followed by optional Non-Key TLVs encoded as per Section 2.9.2.
where: where:
All fields are encoded as per Section 2.9.4 with the following all fields are encoded as per Section 2.9.4 with the following
changes: changes:
* Key Length: This length indicates the total length comprised of Key Length: This length indicates the total length comprised of the
the RD, Prefix Length field and IP Prefix field. RD, Prefix Length field, and IP Prefix field.
* Route Distinguisher: 8 octet field encoded according to [RFC4364]. Route Distinguisher: An 8-octet field encoded according to
[RFC4364].
* Type-Specific Non-Key TLVs: Label TLV, Label Index TLV and SRv6 Type-Specific Non-Key TLVs: The Label TLV, Label Index TLV, and SRv6
SID TLV (Section 2.9.2) may be associated with the VPN CAR IP SID TLV (Section 2.9.2) may be associated with the VPN CAR IP
Prefix NLRI type. Prefix NLRI type.
Error handling specified in Section 2.11 also applies to VPN CAR The error handling specified in Section 2.11 also applies to VPN CAR
SAFI. SAFI.
10. IANA Considerations 10. IANA Considerations
10.1. BGP CAR SAFIs 10.1. BGP CAR SAFIs
IANA has assigned SAFI value 83 (BGP CAR) and SAFI value 84 (BGP VPN IANA has assigned SAFI value 83 (BGP CAR) and SAFI value 84 (BGP VPN
CAR) from the "SAFI Values" sub-registry under the "Subsequent CAR) from the "SAFI Values" registry in the "Subsequent Address
Address Family Identifiers (SAFI) Parameters" registry with this Family Identifiers (SAFI) Parameters" registry group with this
document as a reference. document as a reference.
10.2. BGP CAR NLRI Types Registry 10.2. "BGP CAR NLRI Types" Registry
IANA is requested to create a "BGP CAR NLRI Types" registry in the IANA has created a "BGP CAR NLRI Types" registry in the "Border
"Border Gateway Protocol (BGP) Parameters" registry group with this Gateway Protocol (BGP) Parameters" registry group with this document
document as a reference. The registry is for assignment of the one as a reference. The registry is for assignment of the 1-octet code
octet sized code-points for BGP CAR NLRI types and populated with the points for BGP CAR NLRI types and is populated with the values shown
values shown below: below:
Type NLRI Type Reference +=======+========================+===========+
----------------------------------------------------------------- | Type | NLRI Type | Reference |
0 Reserved [This document] +=======+========================+===========+
1 Color-Aware Route NLRI [This document] | 0 | Reserved | RFC 9871 |
2 IP Prefix NLRI [This document] +-------+------------------------+-----------+
3-255 Unassigned | 1 | Color-Aware Route NLRI | RFC 9871 |
+-------+------------------------+-----------+
| 2 | IP Prefix NLRI | RFC 9871 |
+-------+------------------------+-----------+
| 3-255 | Unassigned |
+-------+------------------------------------+
Allocations within the registry are to be made under the Table 3
"Specification Required" policy as specified in [RFC8126]) and in
Allocations within the registry are to be made with the
"Specification Required" policy as specified in [RFC8126] and in
Section 10.4. Section 10.4.
10.3. BGP CAR NLRI TLV Registry 10.3. "BGP CAR NLRI TLV" Registry
IANA is requested to create a "BGP CAR NLRI TLV Types" registry in IANA has created a "BGP CAR NLRI TLV Types" registry in the "Border
the "Border Gateway Protocol (BGP) Parameters" registry group with Gateway Protocol (BGP) Parameters" registry group with this document
this document as a reference. The registry is for assignment of the as a reference. The registry is for assignment of the 6-bit code
6-bits sized code-points for BGP CAR NLRI non-key TLV types and points for BGP CAR NLRI non-key TLV types and is populated with the
populated with the values shown below: values shown below:
Type NLRI TLV Type Reference +======+=================+===========+
----------------------------------------------------------------- | Type | NLRI TLV Type | Reference |
0 Reserved [This document] +======+=================+===========+
1 Label TLV [This document] | 0 | Reserved | RFC 9871 |
2 Label Index TLV [This document] +------+-----------------+-----------+
3 SRv6 SID TLV [This document] | 1 | Label TLV | RFC 9871 |
4-64 Unassigned +------+-----------------+-----------+
| 2 | Label Index TLV | RFC 9871 |
+------+-----------------+-----------+
| 3 | SRv6 SID TLV | RFC 9871 |
+------+-----------------+-----------+
| 4-64 | Unassigned |
+------+-----------------------------+
Allocations within the registry are to be made under the Table 4
"Specification Required" policy as specified in [RFC8126]) and in
Allocations within the registry are to be made with the
"Specification Required" policy as specified in [RFC8126] and in
Section 10.4. Section 10.4.
For a new TLV to be used with existing NLRI Types, documentation of For a new TLV to be used with existing NLRI Types, documentation of
the NLRI Types must be updated. the NLRI Types must be updated.
10.4. Guidance for Designated Experts 10.4. Guidance for Designated Experts
In all cases of review by the Designated Expert (DE) described here, In all cases of review by the Designated Expert (DE) described here,
the DE is expected to ascertain the existence of suitable the DE is expected to ascertain the existence of suitable
documentation (a specification) as described in [RFC8126] for BGP CAR documentation (a specification) as described in [RFC8126] for the
NLRI Types Registry and BGP CAR NLRI TLV Registry. "BGP CAR NLRI Types" registry and the "BGP CAR NLRI TLV" registry.
The DE is also expected to check the clarity of purpose and use of The DE is also expected to check the clarity of purpose and use of
the requested code points. Additionally, the DE must verify that any the requested code points. Additionally, the DE must verify that any
request for one of these code points has been made available for request for one of these code points has been made available for
review and comment within the IETF: the DE will post the request to review and comment within the IETF: the DE will post the request to
the IDR Working Group mailing list (or a successor mailing list the IDR Working Group mailing list (or a successor mailing list
designated by the IESG). The DE must ensure that any request for a designated by the IESG). The DE must ensure that any request for a
code point does not conflict with work that is active or already code point does not conflict with work that is active or already
published within the IETF. published within the IETF.
The DE is expected to confirm that the specification satisfies the The DE is expected to confirm that the specification satisfies the
requirements for Specification Required (RFC 8126 Section 4.6). In requirements for the "Specification Required" policy (Section 4.6 of
particular, as a reminder, the specification is required to be [RFC8126]). In particular, as a reminder, the specification is
"permanent and readily available". The DE may assume that any required to be "permanent and readily available". The DE may assume
document in the Internet Draft or RFC repository satisfies the that any document in the Internet-Draft or RFC repository satisfies
requirement for permanence and availability. In other cases, and in the requirement for permanence and availability. In other cases, and
particular for any document not hosted by another standards in particular for any document not hosted by another standards
development organization, the burden of proof of permanence falls on development organization, the burden of proof of permanence falls on
the applicant. the applicant.
10.4.1. Additional evaluation criteria for the BGP CAR NLRI Types 10.4.1. Additional Evaluation Criteria for the "BGP CAR NLRI Types"
Registry Registry
* Check the interoperability between new NLRI type and current NLRI * Check the interoperability between the new NLRI type and current
types specified in this document for BGP CAR SAFIs (BGP CAR SAFI NLRI types specified in this document for BGP CAR SAFIs (BGP CAR
and VPN CAR SAFI), and any updates to this document. SAFI and VPN CAR SAFI), and any updates to this document.
* Check if specification indicates which non-key TLVs are applicable * Check if the specification indicates which non-key TLVs are
for the new NLRI Type. applicable for the new NLRI Type.
10.4.2. Additional evaluation criteria for the BGP CAR NLRI TLV 10.4.2. Additional Evaluation Criteria for the "BGP CAR NLRI TLV"
Registry Registry
* Check the applicability of new TLV for the BGP CAR NLRI Types * Check the applicability of the new TLV for the BGP CAR NLRI Types
defined. defined.
* Check the T bit setting for the new TLV * Check the T bit setting for the new TLV.
10.5. BGP Extended-Community Registry 10.5. "Border Gateway Protocol (BGP) Extended Communities" Registry
IANA has assigned the sub-type 0x1b for "Local Color Mapping (LCM)" IANA has assigned the sub-type 0x1b for "Local Color Mapping (LCM)"
in the "Transitive Opaque Extended Community Sub-Types" registry in the "Transitive Opaque Extended Community Sub-Types" registry in
located in the "Border Gateway Protocol (BGP) Extended Communities" the "Border Gateway Protocol (BGP) Extended Communities" registry
registry group. group.
11. Manageability and Operational Considerations 11. Manageability and Operational Considerations
Color assignments in a multi-domain network operating under a common Color assignments in a multi-domain network operating under a common
or cooperating administrative control (i.e., a color domain) should or cooperating administrative control (i.e., a color domain) should
be managed similar to transport layer IP addresses, and ensure a be managed similar to transport layer IP addresses, and ensure a
unique and non-conflicting color allocation across the different unique and non-conflicting color allocation across the different
network domains in that color domain. This is a logical best network domains in that color domain. This is a logical best
practice in a single color or administrative domain, which is the practice in a single color or administrative domain, which is the
most typical deployment scenario. most typical deployment scenario.
When color-aware routes propagate across a color domain boundary, When color-aware routes propagate across a color domain boundary,
there is typically no need for color assignments to be identical in there is typically no need for color assignments to be identical in
both color domains, since the IP prefix is unique in the inter-domain both color domains, since the IP prefix is unique in the inter-domain
transport network. This unique IP prefix provides a unique and non- transport network. This unique IP prefix provides a unique and non-
conflicting scope for the color in an (E, C) route. Co-ordination conflicting scope for the color in an (E, C) route. Coordination
between the operators of the color domains is needed only to enable between the operators of the color domains is needed only to enable
the color to be re-mapped into a local color (carried in the LCM-EC) the color to be re-mapped into a local color (carried in the LCM-EC)
assigned for the same intent in the receiving color domain. assigned for the same intent in the receiving color domain.
However, if networks under different administrative control establish However, if networks under different administrative control establish
a shared transport service between them, where the same transport a shared transport service between them, where the same transport
service IP address is co-ordinated and shared among two (or more) service IP address is coordinated and shared among two (or more)
color domains networks, then the color assignments associated with color domain networks, then the color assignments associated with
that shared IP address should also be co-ordinated to avoid any that shared IP address should also be coordinated to avoid any
conflicts in either network (Appendix A.7). conflicts in either network (Appendix A.7).
It should be noted that the color assignments coordination are only It should be noted that the color assignments coordination is only
necessary for routes specific to the shared service IP. Colors used necessary for routes specific to the shared service IP. Colors used
for intra-domain or for inter-domain intents associated with unique for intra-domain or for inter-domain intents associated with unique
IP addresses do not need any coordination. IP addresses do not need any coordination.
Extended communities (LCM-EC/Color-EC) carried in BGP CAR and Service Extended communities (LCM-EC/Color-EC) carried in BGP CAR and service
routes MUST NOT be filtered, otherwise the desired intent will not be routes MUST NOT be filtered, otherwise the desired intent will not be
achieved. achieved.
12. Security Considerations 12. Security Considerations
This document does not change the underlying security considerations This document does not change the underlying security considerations
and issues inherent in the existing BGP protocol, such as those and issues inherent in the existing BGP protocol, such as those
described in [RFC4271] and [RFC4272]. described in [RFC4271] and [RFC4272].
This document defines a new BGP SAFI and related extensions to carry This document defines a new BGP SAFI and related extensions to carry
color aware routes and their associated attributes. The separate color-aware routes and their associated attributes. The separate
SAFI is expected to be explicitly configured by an operator. It is SAFI is expected to be explicitly configured by an operator. It is
also expected that the necessary BGP route policy filtering is also expected that the necessary BGP route policy filtering is
configured on this new SAFI to filter routing information distributed configured on this new SAFI to filter routing information distributed
by the routers participating in this network, at appropriate points by the routers participating in this network, at appropriate points
within and at the boundaries of this network. within and at the boundaries of this network.
Also, given that this SAFI and these mechanisms can only be enabled Also, given that this SAFI and these mechanisms can only be enabled
through configuration of routers within an operator's network, through configuration of routers within an operator's network,
standard security measures should be taken to restrict access to the standard security measures should be taken to restrict access to the
management interface(s) of routers that implement these mechanisms. management interface(s) of routers that implement these mechanisms.
Additionally, BGP sessions SHOULD be protected using TCP Additionally, BGP sessions SHOULD be protected using the TCP
Authentication Option [RFC5925] and the Generalized TTL Security Authentication Option [RFC5925] and the Generalized TTL Security
Mechanism [RFC5082]. BGP Origin Validation [RFC6811] and BGPsec Mechanism [RFC5082]. BGP origin validation [RFC6811] and BGPsec
[RFC8205] could also be used with this SAFI. [RFC8205] could also be used with this SAFI.
Since CAR SAFI is a separate BGP SAFI that carries transport or Since CAR SAFI is a separate BGP SAFI that carries transport or
infrastructure routes for routers in the operator network, it infrastructure routes for routers in the operator network, it
provides automatic separation of infrastructure routes and the provides automatic separation of infrastructure routes and the
service routes that are carried in existing BGP SAFIs such as BGP service routes that are carried in existing BGP SAFIs such as BGP
IPv4/IPv6 (SAFI=1), and BGP-LU (SAFI=4) (e.g., 6PE [RFC4798]). Using IPv4/IPv6 (SAFI=1), and BGP-LU (SAFI=4) (e.g., 6PE [RFC4798]). Using
CAR SAFI thus provides better security (such as protection against CAR SAFI thus provides better security (such as protection against
route leaking) than would be obtained by distributing the route leaking) than would be obtained by distributing the
infrastructure routes in existing SAFIs that also carry service infrastructure routes in existing SAFIs that also carry service
routes. routes.
BGP CAR distributes label binding similar to [RFC8277] and hence its BGP CAR distributes label binding similar to [RFC8277]; hence, its
security considerations apply. security considerations apply.
In SR deployments, BGP CAR distributes infrastructure prefixes along In SR deployments, BGP CAR distributes infrastructure prefixes along
with their SID information for both SR-MPLS and SRv6. These with their SID information for both SR-MPLS and SRv6. These
deployments are within an SR Domain [RFC8402] and the security deployments are within an SR domain [RFC8402] and the security
considerations of [RFC8402] apply. Additionally, security considerations of [RFC8402] apply. Additionally, security
considerations related to SRv6 deployments that are discussed in considerations related to SRv6 deployments that are discussed in
section 9.3 of [RFC9252] also apply. Section 9.3 of [RFC9252] also apply.
As [RFC4272] discusses, BGP is vulnerable to traffic-diversion As [RFC4272] discusses, BGP is vulnerable to traffic-diversion
attacks. This SAFI routes adds a new means by which an attacker attacks. This SAFI route adds a new means by which an attacker could
could cause the traffic to be diverted from its normal path. cause the traffic to be diverted from its normal path. Potential
Potential consequences include "hijacking" of traffic (insertion of consequences include "hijacking" of traffic (insertion of an
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
receive it). receive it).
The restriction of the applicability of this SAFI to its intended The restriction of the applicability of this SAFI to its intended
well-defined scope and the use of techniques described above limit well-defined scope and the use of techniques described above limit
the likelihood of traffic diversions. the likelihood of traffic diversions.
13. Contributors 13. References
13.1. Co-authors
The following people gave substantial contributions to the content of
this document and should be considered as coauthors:
Clarence Filsfils
Cisco Systems
Belgium
Email: cfilsfil@cisco.com
Bruno Decraene
Orange
France
Email: bruno.decraene@orange.com
Luay Jalil
Verizon
USA
Email: luay.jalil@verizon.com
Yuanchao Su
Alibaba, Inc
Email: yitai.syc@alibaba-inc.com
Jim Uttaro
Individual
USA
Email: juttaro@ieee.org
Jim Guichard
Futurewei
USA
Email: james.n.guichard@futurewei.com
Ketan Talaulikar
Cisco Systems
India
Email: ketant.ietf@gmail.com
Keyur Patel
Arrcus, Inc
USA
Email: keyur@arrcus.com
Haibo Wang
Huawei Technologies
China
Email: rainsword.wang@huawei.com
Jie Dong
Huawei Technologies
China
Email: jie.dong@huawei.com
13.2. Additional Contributors
Dirk Steinberg
Lapishills Consulting Limited
Germany
Email: dirk@lapishills.com
Israel Means
AT&T
USA
Email: im8327@att.com
Reza Rokui
Ciena
USA
Email: rrokui@ciena.com
14. Acknowledgements
The authors would like to acknowledge the invaluable contributions of
many collaborators towards the BGP CAR solution and this document in
providing input about use-cases, participating in brainstorming and
mailing list discussions and in reviews of the solution and draft
revisions. In addition to the contributors listed in Section 13, the
authors would like to thank Robert Raszuk, Bin Wen, Chaitanya
Yadlapalli, Satoru Matsushima, Moses Nagarajah, Gyan Mishra, Jorge
Rabadan, Daniel Voyer, Stephane Litkowski, Hannes Gredler, Jose
Liste, Jakub Horn, Brent Foster, Dave Smith, Jiri Chaloupka, Miya
Kohno, Kamran Raza, Zafar Ali, Xing Jiang, Oleksander Nestorov, Peter
Psenak, Kaliraj Vairavakkalai, Natrajan Venkataraman, Srihari Sangli,
Ran Chen and Jingrong Xie.
The authors also appreciate the detailed reviews and astute
suggestions provided by Sue Hares (as document shepherd), Jeff Haas,
Yingzhen Qu and John Scudder that have greatly improved the document.
15. References
15.1. Normative References 13.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC2545] Marques, P. and F. Dupont, "Use of BGP-4 Multiprotocol [RFC2545] Marques, P. and F. Dupont, "Use of BGP-4 Multiprotocol
Extensions for IPv6 Inter-Domain Routing", RFC 2545, Extensions for IPv6 Inter-Domain Routing", RFC 2545,
DOI 10.17487/RFC2545, March 1999, DOI 10.17487/RFC2545, March 1999,
<https://www.rfc-editor.org/info/rfc2545>. <https://www.rfc-editor.org/info/rfc2545>.
skipping to change at page 58, line 43 skipping to change at line 2650
[RFC9256] Filsfils, C., Talaulikar, K., Ed., Voyer, D., Bogdanov, [RFC9256] Filsfils, C., Talaulikar, K., Ed., Voyer, D., Bogdanov,
A., and P. Mattes, "Segment Routing Policy Architecture", A., and P. Mattes, "Segment Routing Policy Architecture",
RFC 9256, DOI 10.17487/RFC9256, July 2022, RFC 9256, DOI 10.17487/RFC9256, July 2022,
<https://www.rfc-editor.org/info/rfc9256>. <https://www.rfc-editor.org/info/rfc9256>.
[RFC9350] Psenak, P., Ed., Hegde, S., Filsfils, C., Talaulikar, K., [RFC9350] Psenak, P., Ed., Hegde, S., Filsfils, C., Talaulikar, K.,
and A. Gulko, "IGP Flexible Algorithm", RFC 9350, and A. Gulko, "IGP Flexible Algorithm", RFC 9350,
DOI 10.17487/RFC9350, February 2023, DOI 10.17487/RFC9350, February 2023,
<https://www.rfc-editor.org/info/rfc9350>. <https://www.rfc-editor.org/info/rfc9350>.
15.2. Informative References 13.2. Informative References
[I-D.hr-spring-intentaware-routing-using-color] [INTENT-AWARE]
Hegde, S., Rao, D., Uttaro, J., Bogdanov, A., and L. Hegde, S., Rao, D., Uttaro, J., Bogdanov, A., and L.
Jalil, "Problem statement for Inter-domain Intent-aware Jalil, "Problem statement for Inter-domain Intent-aware
Routing using Color", Work in Progress, Internet-Draft, Routing using Color", Work in Progress, Internet-Draft,
draft-hr-spring-intentaware-routing-using-color-04, 31 draft-hr-spring-intentaware-routing-using-color-04, 31
January 2025, <https://datatracker.ietf.org/doc/html/ January 2025, <https://datatracker.ietf.org/doc/html/
draft-hr-spring-intentaware-routing-using-color-04>. draft-hr-spring-intentaware-routing-using-color-04>.
[I-D.ietf-idr-cpr]
Wang, H., Dong, J., Talaulikar, K., hantao, and R. Chen,
"BGP Colored Prefix Routing (CPR) for SRv6 based
Services", Work in Progress, Internet-Draft, draft-ietf-
idr-cpr-07, 7 February 2025,
<https://datatracker.ietf.org/doc/html/draft-ietf-idr-cpr-
07>.
[I-D.ietf-spring-srv6-mpls-interworking]
Agrawal, S., Filsfils, C., Voyer, D., Dawra, G., Li, Z.,
and S. Hegde, "SRv6 and MPLS interworking", Work in
Progress, Internet-Draft, draft-ietf-spring-srv6-mpls-
interworking-00, 17 October 2024,
<https://datatracker.ietf.org/doc/html/draft-ietf-spring-
srv6-mpls-interworking-00>.
[RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A [RFC4271] Rekhter, Y., Ed., Li, T., Ed., and S. Hares, Ed., "A
Border Gateway Protocol 4 (BGP-4)", RFC 4271, Border Gateway Protocol 4 (BGP-4)", RFC 4271,
DOI 10.17487/RFC4271, January 2006, DOI 10.17487/RFC4271, January 2006,
<https://www.rfc-editor.org/info/rfc4271>. <https://www.rfc-editor.org/info/rfc4271>.
[RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis", [RFC4272] Murphy, S., "BGP Security Vulnerabilities Analysis",
RFC 4272, DOI 10.17487/RFC4272, January 2006, RFC 4272, DOI 10.17487/RFC4272, January 2006,
<https://www.rfc-editor.org/info/rfc4272>. <https://www.rfc-editor.org/info/rfc4272>.
[RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private
skipping to change at page 60, line 33 skipping to change at line 2717
[RFC8205] Lepinski, M., Ed. and K. Sriram, Ed., "BGPsec Protocol [RFC8205] Lepinski, M., Ed. and K. Sriram, Ed., "BGPsec Protocol
Specification", RFC 8205, DOI 10.17487/RFC8205, September Specification", RFC 8205, DOI 10.17487/RFC8205, September
2017, <https://www.rfc-editor.org/info/rfc8205>. 2017, <https://www.rfc-editor.org/info/rfc8205>.
[RFC9315] Clemm, A., Ciavaglia, L., Granville, L. Z., and J. [RFC9315] Clemm, A., Ciavaglia, L., Granville, L. Z., and J.
Tantsura, "Intent-Based Networking - Concepts and Tantsura, "Intent-Based Networking - Concepts and
Definitions", RFC 9315, DOI 10.17487/RFC9315, October Definitions", RFC 9315, DOI 10.17487/RFC9315, October
2022, <https://www.rfc-editor.org/info/rfc9315>. 2022, <https://www.rfc-editor.org/info/rfc9315>.
[RFC9723] Wang, H., Dong, J., Talaulikar, K., Han, T., and R. Chen,
"BGP Colored Prefix Routing (CPR) for Services Based on
Segment Routing over IPv6 (SRv6)", RFC 9723,
DOI 10.17487/RFC9723, May 2025,
<https://www.rfc-editor.org/info/rfc9723>.
[SRv6-INTERWORK]
Agrawal, S., Filsfils, C., Voyer, D., Dawra, G., Li, Z.,
and S. Hegde, "SRv6 and MPLS interworking", Work in
Progress, Internet-Draft, draft-ietf-spring-srv6-mpls-
interworking-01, 7 July 2025,
<https://datatracker.ietf.org/doc/html/draft-ietf-spring-
srv6-mpls-interworking-01>.
Appendix A. Illustrations of Service Steering Appendix A. Illustrations of Service Steering
The following sub-sections illustrate example scenarios of Colored The following sub-sections illustrate example scenarios of colored
Service Route Steering over E2E BGP CAR paths, resolving over service route steering over end-to-end (E2E) BGP CAR paths, resolving
different intra-domain mechanisms. over different intra-domain mechanisms.
The examples in this section use MPLS/SR for the transport data The examples in this section use MPLS/SR for the transport data
plane. Scenarios related to SRv6 encapsulation are in a section plane. Scenarios related to SRv6 encapsulation are in a section
below. below.
A.1. E2E BGP transport CAR intent realized using IGP Flex-Algo A.1. E2E BGP Transport CAR Intent Realized Using IGP Flex-Algo
RD:V/v via E2 RD:V/v via E2
+-----+ vpn label: 30030 +-----+ +-----+ vpn label: 30030 +-----+
...... |S-RR1| <..................................|S-RR2| <....... ...... |S-RR1| <..................................|S-RR2| <.......
: +-----+ Color C1 +-----+ : : +-----+ Color C1 +-----+ :
: : : :
: : : :
: : : :
+-:-----------------------+----------------------+------------------:--+ +-:-----------------------+----------------------+------------------:--+
| : | | : | | : | | : |
| : | | : | | : | | : |
skipping to change at page 61, line 41 skipping to change at line 2780
+------+ +------+ +------+ +------+
|168121| |168231| |168121| |168231|
+------+ +------+ +------+ +------+
+------+ +------+ +------+ +------+ +------+ +------+
|168002| |168002| |168002| |168002| |168002| |168002|
+------+ +------+ +------+ +------+ +------+ +------+
+------+ +------+ +------+ +------+ +------+ +------+
|30030 | |30030 | |30030 | |30030 | |30030 | |30030 |
+------+ +------+ +------+ +------+ +------+ +------+
Figure 6: BGP FA Aware transport CAR path Figure 6: BGP FA Aware Transport CAR Path
Use case: Provide end to end intent for service flows. Use case: Provide end-to-end intent for service flows.
* The following description applies to the reference topology above: * The following description applies to the reference topology above:
- IGP FA 128 is running in each domain, and mapped to Color C1. - IGP FA 128 is running in each domain, and mapped to color C1.
- Egress PE E2 advertises a VPN route RD:V/v colored with Color- - Egress PE E2 advertises a VPN route RD:V/v colored with Color-
EC C1 to steer traffic to BGP transport CAR (E2, C1). VPN EC C1 to steer traffic to BGP transport CAR (E2, C1). VPN
route propagates via service RRs to ingress PE E1. route propagates via service RRs to ingress PE E1.
- BGP CAR route (E2, C1) with next hop, label index and label as - BGP CAR route (E2, C1) with next hop, label index, and label as
shown above are advertised through border routers in each shown above are advertised through border routers in each
domain. When a RR is used in the domain, ADD-PATH is enabled domain. When an RR is used in the domain, ADD-PATH is enabled
to advertise multiple available paths. to advertise multiple available paths.
- On each BGP hop, the (E2, C1) route's next hop is resolved over - On each BGP hop, the (E2, C1) route's next hop is resolved over
IGP FA 128 of the domain. The AIGP attribute influences BGP IGP FA 128 of the domain. The AIGP attribute influences the
CAR route best path decision as per [RFC7311]. The BGP CAR BGP CAR route best path decision as per [RFC7311]. The BGP CAR
label swap entry is installed that goes over FA 128 LSP to next label swap entry is installed that goes over FA 128 LSP to next
hop providing intent in each IGP domain. The AIGP metric hop providing intent in each IGP domain. The AIGP metric
should be updated to reflect FA 128 metric to next hop. should be updated to reflect FA 128 metric to next hop.
- Ingress PE E1 learns CAR route (E2, C1). It steers colored VPN - Ingress PE E1 learns CAR route (E2, C1). It steers colored VPN
route RD:V/v into (E2, C1). route RD:V/v into (E2, C1).
* Important: * Important:
- IGP FA 128 top label provides intent within each domain. - IGP FA 128 top label provides intent within each domain.
- BGP CAR label (e.g. 168002) carries end to end intent. Thus it - BGP CAR label (e.g., 168002) carries end-to-end intent. Thus,
stitches intent over intra-domain FA 128. it stitches intent over intra-domain FA 128.
A.2. E2E BGP Transport CAR Intent Realized Using SR Policy
A.2. E2E BGP transport CAR intent realized using SR Policy
RD:1/8 via E2 RD:1/8 via E2
+-----+ vpn label: 30030 +-----+ +-----+ vpn label: 30030 +-----+
...... |S-RR1| <..................................|S-RR2| <...... ...... |S-RR1| <..................................|S-RR2| <......
: +-----+ Color C1 +-----+ : : +-----+ Color C1 +-----+ :
: : : :
: : : :
: : : :
+-:-----------------------+----------------------+------------------:-+ +-:-----------------------+----------------------+------------------:-+
| : | | : | | : | | : |
| : | | : | | : | | : |
skipping to change at page 63, line 44 skipping to change at line 2856
+------+ +------+ +------+ +------+ +------+ +------+
|160121| |160231| | S3 | |160121| |160231| | S3 |
+------+ +------+ +------+ +------+ +------+ +------+
+------+ +------+ +------+ +------+ +------+ +------+
|168002| |168002| |168002| |168002| |168002| |168002|
+------+ +------+ +------+ +------+ +------+ +------+
+------+ +------+ +------+ +------+ +------+ +------+
|30030 | |30030 | |30030 | |30030 | |30030 | |30030 |
+------+ +------+ +------+ +------+ +------+ +------+
Figure 7: BGP SR policy Aware transport CAR path Figure 7: BGP SR Policy Aware Transport CAR Path
Use case: Provide end to end intent for service flows. Use case: Provide end-to-end intent for service flows.
* The following description applies to the reference topology above: * The following description applies to the reference topology above:
- An SR Policy provides intra-domain intent. The following are - An SR Policy provides intra-domain intent. The following are
the example SID lists that are realized from SR policies in the example SID lists that are realized from SR policies in
each domain and correspond to the label stack shown in Figure 7 each domain and correspond to the label stack shown in
Figure 7:
o SR policy (C1,121) segments <S1, 121>, o SR policy (C1, 121) segments <S1, 121>,
o SR policy (C1,231) segments <S2, 231>, and o SR policy (C1, 231) segments <S2, 231>, and
o SR policy (C1,E2) segments <S3, E2>. o SR policy (C1, E2) segments <S3, E2>.
- Egress PE E2 advertises a VPN route RD:V/v colored with Color- - Egress PE E2 advertises a VPN route RD:V/v colored with Color-
EC C1 to steer traffic to BGP transport CAR (E2, C1). VPN EC C1 to steer traffic to BGP transport CAR (E2, C1). VPN
route propagates via service RRs to ingress PE E1. route propagates via service RRs to ingress PE E1.
- BGP CAR route (E2, C1) with next hop, label index and label as - BGP CAR route (E2, C1) with next hop, label index, and label as
shown above are advertised through border routers in each shown above are advertised through border routers in each
domain. When a RR is used in the domain, ADD-PATH is enabled domain. When an RR is used in the domain, ADD-PATH is enabled
to advertise multiple available paths. to advertise multiple available paths.
- On each BGP hop, the CAR route (E2, C1) next hop is resolved - On each BGP hop, the CAR route (E2, C1) next hop is resolved
over an SR policy (C1, next hop). BGP CAR label swap entry is over an SR policy (C1, next hop). The BGP CAR label swap entry
installed that goes over SR policy segment list. is installed that goes over SR policy segment list.
- Ingress PE E1 learns CAR route (E2, C1). It steers colored VPN - Ingress PE E1 learns CAR route (E2, C1). It steers colored VPN
route RD:V/v into (E2, C1). route RD:V/v into (E2, C1).
* Important: * Important:
- SR policy provides intent within each domain. - SR policy provides intent within each domain.
- BGP CAR label (e.g. 168002) carries end to end intent. Thus it - BGP CAR label (e.g., 168002) carries end-to-end intent. Thus,
stitches intent over intra-domain SR policies. it stitches intent over intra-domain SR policies.
A.3. BGP transport CAR intent realized in a section of the network A.3. BGP Transport CAR Intent Realized in a Section of the Network
A.3.1. Provide intent for service flows only in core domain running IS- A.3.1. Provide Intent for Service Flows Only in Core Domain Running IS-
IS Flex-Algo IS Flex-Algo
RD:1/8 via E2 RD:1/8 via E2
+-----+ vpn label: 30030 +-----+ +-----+ vpn label: 30030 +-----+
...... |S-RR1| <..................................|S-RR2| <....... ...... |S-RR1| <..................................|S-RR2| <.......
: +-----+ Color C1 +-----+ : : +-----+ Color C1 +-----+ :
: : : :
: : : :
: : : :
+-:-----------------------+----------------------+------------------:--+ +-:-----------------------+----------------------+------------------:--+
| : | | : | | : | | : |
| : | | : | | : | | : |
skipping to change at page 65, line 42 skipping to change at line 2939
+------+ +------+ +------+ +------+
|160121| |168231| |160121| |168231|
+------+ +------+ +------+ +------+
+------+ +------+ +------+ +------+ +------+ +------+
|168002| |168002| |160002| |168002| |168002| |160002|
+------+ +------+ +------+ +------+ +------+ +------+
+------+ +------+ +------+ +------+ +------+ +------+
|30030 | |30030 | |30030 | |30030 | |30030 | |30030 |
+------+ +------+ +------+ +------+ +------+ +------+
Figure 8: BGP Hybrid Flex-Algo Aware transport CAR path Figure 8: BGP Hybrid Flex-Algo Aware Transport CAR Path
* The following description applies to the reference topology above: * The following description applies to the reference topology above:
- IGP FA 128 is only enabled in Core (e.g. WAN network), mapped - IGP FA 128 is only enabled in core (e.g., WAN network), mapped
to C1. Access network domain only has Base Algo 0. to C1. Access network domain only has Base Algo 0.
- Egress PE E2 advertises a VPN route RD:V/v colored with Color- - Egress PE E2 advertises a VPN route RD:V/v colored with Color-
EC C1 to steer traffic via BGP transport CAR (E2, C1). VPN EC C1 to steer traffic via BGP transport CAR (E2, C1). VPN
route propagates via service RRs to ingress PE E1. route propagates via service RRs to ingress PE E1.
- BGP CAR route (E2, C1) with next hop, label index and label as - BGP CAR route (E2, C1) with next hop, label index, and label as
shown above are advertised through border routers in each shown above are advertised through border routers in each
domain. When a RR is used in the domain, ADD-PATH is enabled domain. When an RR is used in the domain, ADD-PATH is enabled
to advertise multiple available paths. to advertise multiple available paths.
- Local policy on 231 and 232 maps intent C1 to resolve CAR route - Local policy on 231 and 232 maps intent C1 to resolve CAR route
next hop over IGP Base Algo 0 in right access domain. BGP CAR next hop over IGP Base Algo 0 in right access domain. The BGP
label swap entry is installed that goes over Base Algo 0 LSP to CAR label swap entry is installed that goes over Base Algo 0
next hop. Updates AIGP metric to reflect Base Algo 0 metric to LSP to next hop. AIGP metric is updated to reflect Base Algo 0
next hop with an additional penalty (+1000). metric to next hop with an additional penalty (+1000).
- On 121 and 122, CAR route (E2, C1) next hop learnt from Core - On 121 and 122, CAR route (E2, C1) next hop learnt from Core
domain is resolved over IGP FA 128. BGP CAR label swap entry domain is resolved over IGP FA 128. The BGP CAR label swap
is installed that goes over FA 128 LSP to next hop providing entry is installed that goes over FA 128 LSP to next hop
intent in Core IGP domain. providing intent in Core IGP domain.
- Ingress PE E1 learns CAR route (E2, C1). It maps intent C1 to - Ingress PE E1 learns CAR route (E2, C1). It maps intent C1 to
resolve CAR route next hop over IGP Base Algo 0. It steers resolve CAR route next hop over IGP Base Algo 0. It steers
colored VPN route RD:V/v via (E2, C1) colored VPN route RD:V/v via (E2, C1).
* Important: * Important:
- IGP Flex-Algo 128 top label provides intent in Core domain. - IGP Flex-Algo 128 top label provides intent in Core domain.
- BGP CAR label (e.g. 168002) carries intent from PEs which is - BGP CAR label (e.g., 168002) carries intent from PEs, which is
realized in core domain. realized in Core domain.
A.3.2. Provide Intent for Service Flows Only in Core Domain over TE
Tunnel Mesh
A.3.2. Provide intent for service flows only in core domain over TE
tunnel mesh
RD:1/8 via E2 RD:1/8 via E2
+-----+ vpn label: 30030 +-----+ +-----+ vpn label: 30030 +-----+
...... |S-RR1| <..................................|S-RR2| <....... ...... |S-RR1| <..................................|S-RR2| <.......
: +-----+ Color C1 +-----+ : : +-----+ Color C1 +-----+ :
: : : :
: : : :
: : : :
+-:-----------------------+----------------------+-----------------:-+ +-:-----------------------+----------------------+-----------------:-+
| : | | : | | : | | : |
| : | | : | | : | | : |
skipping to change at page 67, line 42 skipping to change at line 3018
+------+ +------+ +------+ +------+
|240121| |241231| |240121| |241231|
+------+ +------+ +------+ +------+
+------+ +------+ +------+ +------+ +------+ +------+
|242003| |242002| |240002| |242003| |242002| |240002|
+------+ +------+ +------+ +------+ +------+ +------+
+------+ +------+ +------+ +------+ +------+ +------+
|30030 | |30030 | |30030 | |30030 | |30030 | |30030 |
+------+ +------+ +------+ +------+ +------+ +------+
Figure 9: BGP CAR over TE tunnel mesh in core network Figure 9: BGP CAR over TE Tunnel Mesh in Core Network
* The following description applies to the reference topology above: * The following description applies to the reference topology above:
- RSVP-TE MPLS tunnel mesh is configured only in core (e.g. WAN - RSVP-TE MPLS tunnel mesh is configured only in core (e.g., WAN
network). Access only has IS-IS/LDP. (Figure does not show network). Access only has IS-IS/LDP. (The figure does not
all TE tunnels). show all TE tunnels.)
- Egress PE E2 advertises a VPN route RD:V/v colored with Color- - Egress PE E2 advertises a VPN route RD:V/v colored with Color-
EC C1 to steer traffic via BGP transport CAR (E2, C1). VPN EC C1 to steer traffic via BGP transport CAR (E2, C1). VPN
route propagates via service RRs to ingress PE E1. route propagates via service RRs to ingress PE E1.
- BGP CAR route (E2, C1) with next hops and labels as shown above - BGP CAR route (E2, C1) with next hops and labels as shown above
is advertised through border routers in each domain. When a RR is advertised through border routers in each domain. When an
is used in the domain, ADD-PATH is enabled to advertise RR is used in the domain, ADD-PATH is enabled to advertise
multiple available paths. multiple available paths.
- Local policy on 231 and 232 maps intent C1 to resolve CAR route - Local policy on 231 and 232 maps intent C1 to resolve CAR route
next hop over best-effort LDP LSP in access domain 1. BGP CAR next hop over best-effort LDP LSP in access domain 1. The BGP
label swap entry is installed that goes over LDP LSP to next CAR label swap entry is installed that goes over LDP LSP to
hop. AIGP metric is updated to reflect best-effort metric to next hop. AIGP metric is updated to reflect best-effort metric
next hop with an additional penalty (+1000). to next hop with an additional penalty (+1000).
- Local policy on 121 and 122 maps intent C1 to resolve CAR route - Local policy on 121 and 122 maps intent C1 to resolve CAR route
next hop in Core domain over RSVP-TE tunnels. BGP CAR label next hop in Core domain over RSVP-TE tunnels. The BGP CAR
swap entry is installed that goes over a TE tunnel to next hop label swap entry is installed that goes over a TE tunnel to
providing intent in Core domain. AIGP metric is updated to next hop providing intent in Core domain. AIGP metric is
reflect TE tunnel metric. updated to reflect TE tunnel metric.
- Ingress PE E1 learns CAR route (E2, C1). It maps intent C1 to - Ingress PE E1 learns CAR route (E2, C1). It maps intent C1 to
resolve CAR route's next hop over best-effort LDP LSP in Access resolve CAR route's next hop over best-effort LDP LSP in access
domain 0. It steers colored VPN route RD:V/v via (E2, C1). domain 0. It steers colored VPN route RD:V/v via (E2, C1).
* Important: * Important:
- RSVP-TE tunnel LSP provides intent in Core domain. - RSVP-TE tunnel LSP provides intent in Core domain.
- Dynamic BGP CAR label carries intent from PEs which is realized - Dynamic BGP CAR label carries intent from PEs, which is
in core domain by resolution via RSVP-TE tunnel. realized in Core domain by resolution via RSVP-TE tunnel.
A.4. Transit network domains that do not support CAR A.4. Transit Network Domains That Do Not Support CAR
* In a brownfield deployment, color-aware paths between two PEs may * In a brownfield deployment, color-aware paths between two PEs may
need to go through a transit domain that does not support CAR. need to go through a transit domain that does not support CAR.
Examples of such a brownfield network include an MPLS LDP network Examples of such a brownfield network include an MPLS LDP network
with IGP best-effort, or a BGP-LU based multi-domain network. with IGP best-effort, or a multi-domain network based on BGP-LU.
MPLS LDP network with best-effort IGP can adopt the above scheme An MPLS LDP network with best-effort IGP can adopt the above
in Section A.3. Below is the example scenario for BGP LU. scheme in Appendix A.3. Below is the example scenario for BGP LU.
* Reference topology: * Reference topology:
E1 --- BR1 --- BR2 ......... BR3 ---- BR4 --- E2 E1 --- BR1 --- BR2 ......... BR3 ---- BR4 --- E2
Ci <----LU----> Ci Ci <----LU----> Ci
Figure 10: BGP CAR not supported in transit domain Figure 10: BGP CAR Not Supported in Transit Domain
- Network between BR2 and BR3 comprises of multiple BGP-LU hops - Network between BR2 and BR3 comprises of multiple BGP-LU hops
(over IGP-LDP domains). (over IGP-LDP domains).
- E1, BR1, BR4 and E2 are enabled for BGP CAR, with Ci colors. - E1, BR1, BR4, and E2 are enabled for BGP CAR, with Ci colors.
- BR1 and BR2 are directly connected; BR3 and BR4 are directly - BR1 and BR2 are directly connected; BR3 and BR4 are directly
connected. connected.
* BR1 and BR4 form an over-the-top peering (via RRs as needed) to * BR1 and BR4 form an over-the-top peering (via RRs as needed) to
exchange BGP CAR routes. exchange BGP CAR routes.
* BR1 and BR4 also form direct BGP-LU sessions to BR2 and BR3 * BR1 and BR4 also form direct BGP-LU sessions to BR2 and BR3,
respectively, to establish labeled paths between each other respectively, to establish labeled paths between each other
through the BGP-LU network. The sessions may be eBGP or iBGP. through the BGP-LU network. The sessions may be eBGP or iBGP.
* BR1 recursively resolves the BGP CAR next hop for CAR routes * BR1 recursively resolves the BGP CAR next hop for CAR routes
learnt from BR4 via the BGP-LU path to BR4. learnt from BR4 via the BGP-LU path to BR4.
* BR1 signals the transport discontinuity to E1 via the AIGP TLV, so * BR1 signals the transport discontinuity to E1 via the AIGP TLV, so
that E1 can prefer other paths if available. that E1 can prefer other paths if available.
* BR4 does the same in the reverse direction. * BR4 does the same in the reverse direction.
* Thus, the color-awareness of the routes and hence the paths in the * Thus, the color awareness of the routes, and hence the paths in
data plane are maintained between E1 and E2, even if the intent is the data plane, are maintained between E1 and E2, even if the
not available within the BGP-LU island. intent is not available within the BGP-LU island.
* A similar design can be used for going over network islands of * A similar design can be used for going over network islands of
other types. other types.
A.5. Resource Avoidance using BGP CAR and IGP Flex-Algo A.5. Resource Avoidance Using BGP CAR and IGP Flex-Algo
This example illustrates a case of resource avoidance within a domain This example illustrates a case of resource avoidance within a domain
for a multi-domain color-aware path. for a multi-domain color-aware path.
+-------------+ +-------------+ +-------------+ +-------------+
| | | | V/v with C1 | | | | V/v with C1
|----+ |------| +----|/ |----+ |------| +----|/
| E1 | | | | E2 |\ | E1 | | | | E2 |\
|----+ | | +----| W/w with C2 |----+ | | +----| W/w with C2
| |------| IGP FA128 | | |------| IGP FA128 |
| IGP FA128 | | IGP FA129 | | IGP FA128 | | IGP FA129 |
| Domain 1 | | Domain 2 | | Domain 1 | | Domain 2 |
+-------------+ +-------------+ +-------------+ +-------------+
Figure 11: BGP CAR resolution over IGP FLex-Algo for resource Figure 11: BGP CAR Resolution over IGP Flex-Algo for Resource
avoidance in a domain Avoidance in a Domain
* C1 and C2 represent the following two unique intents in the multi- * C1 and C2 represent the following two unique intents in the multi-
domain network: domain network:
- C1 is mapped to "minimize IGP metric", and - C1 is mapped to "minimize IGP metric", and
- C2 is mapped to "minimize IGP metric and avoid resource R". - C2 is mapped to "minimize IGP metric and avoid resource R".
* Resource R represents link(s) or node(s) to be avoided. * Resource R represents link(s) or node(s) to be avoided.
* Flex-Algo FA128 in Domain 2 is mapped to "minimize IGP metric" and * Flex-Algo FA128 in Domain 2 is mapped to "minimize IGP metric",
hence to C1. and hence to C1.
* Flex-Algo FA129 in Domain 2 is mapped to "minimize IGP metric and * Flex-Algo FA129 in Domain 2 is mapped to "minimize IGP metric and
avoid resource R" and hence to C2. avoid resource R", and hence to C2.
* Flex-Algo FA128 in Domain 1 is mapped to "minimize IGP metric" * Flex-Algo FA128 in Domain 1 is mapped to "minimize IGP metric"
i.e., (i.e., there is no resource R to be avoided in Domain 1, hence
both C1 and C2 are mapped to FA128).
- There is no resource R to be avoided in Domain 1, hence both C1
and C2 are mapped to FA128.
* E1 receives the following two service routes from E2: * E1 receives the following two service routes from E2:
- V/v with BGP Color-EC C1, and - V/v with BGP Color-EC C1, and
- W/w with BGP Color-EC C2. - W/w with BGP Color-EC C2.
* E1 has the following color-aware paths: * E1 has the following color-aware paths:
- (E2, C1) provided by BGP CAR with the following per-domain - (E2, C1) provided by BGP CAR with the following per-domain
resolution: resolution:
o Domain1: over IGP FA128, and o Domain 1: over IGP FA128, and
o Domain2: over IGP FA128. o Domain 2: over IGP FA128.
- (E2, C2) provided by BGP CAR with the following per-domain - (E2, C2) provided by BGP CAR with the following per-domain
resolution: resolution:
o Domain1: over IGP FA128, and o Domain 1: over IGP FA128, and
o Domain2: over IGP FA129 (avoiding resource R). o Domain 2: over IGP FA129 (avoiding resource R).
* E1 automatically steers the received service routes as follows: * E1 automatically steers the received service routes as follows:
- V/v via (E2, C1) provided by BGP CAR. - V/v via (E2, C1) provided by BGP CAR.
- W/w via (E2, C2) provided by BGP CAR. - W/w via (E2, C2) provided by BGP CAR.
Observations: Observations:
* C1 and C2 are realized over a common intra-domain intent (FA128) * C1 and C2 are realized over a common intra-domain intent (FA128)
in one domain and distinct intents in another domain as required. in one domain and distinct intents in another domain as required.
* 32-bit Color space provides flexibility in defining a large number * 32-bit Color space provides flexibility in defining a large number
of intents in a multi-domain network. They may be efficiently of intents in a multi-domain network. They may be efficiently
realized by mapping to a smaller number of intra-domain intents in realized by mapping to a smaller number of intra-domain intents in
different domains. different domains.
A.6. Per-Flow Steering over CAR routes A.6. Per-Flow Steering over CAR Routes
This section provides an example of ingress PE per-flow steering as This section provides an example of ingress PE per-flow steering as
defined in section 8.6 of [RFC9256] onto BGP CAR routes. defined in Section 8.6 of [RFC9256] onto BGP CAR routes.
The following description applies to the reference topology in The following description applies to the reference topology in
Figure 6: Figure 6:
* Ingress PE E1 learns best-effort BGP LU route E2. * Ingress PE E1 learns best-effort BGP LU route E2.
* Ingress PE E1 learns CAR route (E2, C1), C1 is mapped to "low * Ingress PE E1 learns CAR route (E2, C1), C1 is mapped to "low
delay". delay".
* Ingress PE E1 learns CAR route (E2, C2), C2 is mapped to "low * Ingress PE E1 learns CAR route (E2, C2), C2 is mapped to "low
delay and avoid resource R". delay and avoid resource R".
* Ingress PE E1 is configured to instantiate an array of paths to E2 * Ingress PE E1 is configured to instantiate an array of paths to E2
where entry 0 is the BGP LU path to next hop, color C1 is the where entry 0 is the BGP LU path to next hop, color C1 is the
first entry and color C2 is the second entry. The index into the first entry, and color C2 is the second entry. The index into the
array is called a Forwarding Class (FC). The index can have array is called a Forwarding Class (FC). The index can have
values 0 to 7, especially when derived from the MPLS TC bits values 0 to 7, especially when derived from the MPLS TC bits
[RFC5462]. [RFC5462].
* E1 is configured to match flows in its ingress interfaces (upon * E1 is configured to match flows in its ingress interfaces (upon
any field such as Ethernet destination/source/VLAN/TOS or IP any field such as Ethernet destination/source/VLAN/TOS or IP
destination/source/DSCP or transport ports etc.) and color them destination/source/DSCP or transport ports, etc.) and color them
with an internal per-packet FC variable (0, 1 or 2 in this with an internal per-packet FC variable (0, 1, or 2 in this
example). example).
* This array is presented as composite candidate path of SR policy * This array is presented as a composite candidate path of SR policy
(E2, C100) and acts as a container for grouping constituent paths (E2, C100) and acts as a container for grouping constituent paths
of different colors/best-effort. This representation provides of different colors/best-effort. This representation provides
automated steering for services colored with Color-EC C100 via automated steering for services colored with Color-EC C100 via
paths of different colors. Note that Color-EC C100 is used as paths of different colors. Note that Color-EC C100 is used as
indirection to the composite policy configured on ingress PE. indirection to the composite policy configured on ingress PE.
* Egress PE E2 advertises a VPN route RD:V/v with Color-EC C100 to * Egress PE E2 advertises a VPN route RD:V/v with Color-EC C100 to
steer traffic via composite SR policy (E2, C100); i.e., FC array steer traffic via composite SR policy (E2, C100) (i.e., FC array
of paths. of paths).
E1 receives three packets K, K1, and K2 on its incoming interface. E1 receives three packets K, K1, and K2 on its incoming interface.
These three packets matches on VPN route which recurses on E2. E1 These three packets match on the VPN route that recurses on E2. E1
colors these 3 packets respectively with forwarding-class 0, 1, and colors these 3 packets with forwarding class 0, 1, and 2,
2. respectively.
As a result As a result:
* E1 forwards K along the best-effort path to E2 (i.e., for MPLS * E1 forwards K along the best-effort path to E2 (i.e., for the MPLS
data plane, it pushes the best-effort label of E2). data plane, it pushes the best-effort label of E2).
* E1 forwards K1 along the (E2, C1) BGP CAR route. * E1 forwards K1 along the (E2, C1) BGP CAR route.
* E1 forwards K2 along the (E2, C2) BGP CAR route. * E1 forwards K2 along the (E2, C2) BGP CAR route.
A.7. Advertising BGP CAR routes for shared IP addresses A.7. Advertising BGP CAR Routes for Shared IP Addresses
+-------------+ +--------------+ +-------------+ +--------------+
| | | +----| | | | +----|
| |------| | E2 |(IP1) | |------| | E2 |(IP1)
|----+ | | +----| |----+ | | +----|
| E1 | | | Domain 2 | | E1 | | | Domain 2 |
|----+ | +--------------+ |----+ | +--------------+
| | +--------------+ | | +--------------+
| | | +----| | | | +----|
| Domain 1 |------| | E3 |(IP1) | Domain 1 |------| | E3 |(IP1)
+-------------+ | +----| +-------------+ | +----|
| Domain 3 | | Domain 3 |
+--------------+ +--------------+
Figure 12: BGP CAR advertisements for shared IP addresses Figure 12: BGP CAR Advertisements for Shared IP Addresses
This example describes a case where a route for the same transport IP This example describes a case where a route for the same transport IP
address is originated from multiple nodes in different network address is originated from multiple nodes in different network
domains. domains.
One use of this scenario is an Anycast transport service, where One use of this scenario is an anycast transport service, where
packet encapsulation (e.g., LSP) may terminate on any one among a set packet encapsulation (e.g., LSP) may terminate on any one among a set
of nodes. All the nodes are capable of forwarding the inner payload, of nodes. All the nodes are capable of forwarding the inner payload,
typically via an IP lookup in the global table for Internet routes. typically via an IP lookup in the global table for Internet routes.
A couple of variations of the use-case are described in the example A couple of variations of the use case are described in the example
below. below.
One node is shown in each domain, but there will be multiple nodes in One node is shown in each domain, but there will be multiple nodes in
practice for redundancy. practice for redundancy.
Example-1: Anycast with forwarding to nearest Example 1: Anycast with forwarding to nearest:
* Both E2 (in egress domain 2) and E3 (in egress domain 3) advertise * Both E2 (in egress domain 2) and E3 (in egress domain 3) advertise
Anycast (shared) IP (IP1, C1) with same label L1. Anycast (shared) IP (IP1, C1) with same Label L1.
* An ingress PE E1 receives by default the best path(s) for (IP1, * An ingress PE E1 receives by default the best path(s) for (IP1,
C1) propagated through BGP hops across the network. C1) propagated through BGP hops across the network.
* The paths to (IP1, C1) from E2 and E3 may merge at a common node * The paths to (IP1, C1) from E2 and E3 may merge at a common node
along the path to E1, forming equal cost multipaths or active- along the path to E1, forming equal cost multipaths or active-
backup paths at that node. backup paths at that node.
* Service route V/v is advertised from egress domains D2 and D3 with * Service route V/v is advertised from egress domains D2 and D3 with
color C1 and next hop IP1. color C1 and next hop IP1.
* Traffic for V/v steered at E1 via (IP1, C1) is forwarded to either * Traffic for V/v steered at E1 via (IP1, C1) is forwarded to either
E2 or E3 (or both) as determined by routing along the network E2 or E3 (or both) as determined by routing along the network
(nodes in the path). (nodes in the path).
Example-2: Anycast with egress domain visibility at ingress PE Example 2: Anycast with egress domain visibility at ingress PE:
* E2 advertises (IP1, C1) and E3 advertises (IP1, C2) CAR routes for * E2 advertises (IP1, C1) and E3 advertises (IP1, C2) CAR routes for
the Anycast IP IP1. C1 and C2 are colors assigned to distinguish the Anycast IP IP1. C1 and C2 are colors assigned to distinguish
the egress domains originating the routes to IP1. the egress domains originating the routes to IP1.
* An ingress PE E1 receives the best path(s) propagated through BGP * An ingress PE E1 receives the best path(s) propagated through BGP
hops across the network for both (IP1, C1) and (IP1, C2). hops across the network for both (IP1, C1) and (IP1, C2).
* The CAR routes (IP1, C1) and (IP1, C2) do not get merged at any * The CAR routes (IP1, C1) and (IP1, C2) do not get merged at any
intermediate node, providing E1 control over path selection and intermediate node, providing E1 control over path selection and
load-balancing of traffic across these two routes. Each route may load-balancing of traffic across these two routes. Each route may
itself provide multipathing or Anycast to a set of egress nodes. itself provide multipathing or anycast to a set of egress nodes.
* Service route V/v advertised from egress domains D2 and D3 with * Service route V/v advertised from egress domains D2 and D3 with
colors C1 and C2 respectively, but with same next hop IP1. colors C1 and C2, respectively, but with same next hop IP1.
* E1 will resolve and steer V/v path from D2 via (IP1, C1) and path * E1 will resolve and steer V/v path from D2 via (IP1, C1) and path
from D3 via (IP2, C2). E1 will load-balance traffic to V/v across from D3 via (IP2, C2). E1 will load-balance traffic to V/v across
the two paths as determined by a local load-balancing policy. the two paths as determined by a local load-balancing policy.
* Traffic for colored service routes steered at E1 is forwarded to * Traffic for colored service routes steered at E1 is forwarded to
either E2 or E3 (or load-balanced across both) as determined by either E2 or E3 (or load-balanced across both) as determined by
E1. E1.
In above example, D2 and D3 belonged to the same color or In above example, D2 and D3 belonged to the same color or
administrative domain. If D2 and D3 belong to different color administrative domain. If D2 and D3 belong to different color
domains, the domains will coordinate the assignment of colors with domains, the domains will coordinate the assignment of colors with
shared IP IP1 so that they do not cause conflicts. For instance, in shared IP IP1 so that they do not cause conflicts. For instance, in
Example-1: Example 1:
* D2 and D3 may both use C1 for the same intent when they originate * D2 and D3 may both use C1 for the same intent when they originate
CAR route for IP1. CAR route for IP1.
- In this case, neither D2 nor D3 will reuse C1 for some other - In this case, neither D2 nor D3 will reuse C1 for some other
intent. intent.
* Alternatively, D2 may use C2 and D3 may use C3 for originating a * Alternatively, D2 may use C2 and D3 may use C3 for originating a
CAR route for IP1 for the same intent. CAR route for IP1 for the same intent.
- In this case, D2 will not use C3 for originating CAR route for - In this case, D2 will not use C3 for originating CAR route for
IP1 for some other intent. Similarly, D3 will not use C2 for IP1 for some other intent. Similarly, D3 will not use C2 for
originating CAR route for IP1 for some other intent. originating CAR route for IP1 for some other intent.
Appendix B. Color Mapping Illustrations Appendix B. Color Mapping Illustrations
There are a variety of deployment scenarios that arise when different There are a variety of deployment scenarios that arise when different
color mappings are used in an inter-domain environment. This section color mappings are used in an inter-domain environment. This section
attempts to enumerate them and provide clarity into the usage of the attempts to enumerate them and provide clarity into the usage of the
color related protocol constructs. color-related protocol constructs.
B.1. Single color domain containing network domains with N:N color B.1. Single Color Domain Containing Network Domains with N:N Color
distribution Distribution
* All network domains (ingress, egress and all transit domains) are * All network domains (ingress, egress, and all transit domains) are
enabled for the same N colors. enabled for the same N colors.
- A color may of course be realized by different technologies in - A color may of course be realized by different technologies in
different domains as described above. different domains as described above.
* The N intents are both signaled end-to-end via BGP CAR routes; as * The N intents are both signaled end-to-end via BGP CAR routes, as
well as realized in the data plane. well as realized in the data plane.
* Appendix A.1 is an example of this case. * Appendix A.1 is an example of this case.
B.2. Single color domain containing network domains with N:M color B.2. Single Color Domain Containing Network Domains with N:M Color
distribution Distribution
* Certain network domains may not be enabled for some of the colors * Certain network domains may not be enabled for some of the colors
used for end-to-end intents, but may still be required to provide used for end-to-end intents, but may still be required to provide
transit for routes of those colors. transit for routes of those colors.
* When a (E, C1) route traverses a domain where color C1 is not * When a (E, C1) route traverses a domain where color C1 is not
available, the operator may decide to use a different intent of available, the operator may decide to use a different intent of
color C2 that is available in that domain to resolve the next hop color C2 that is available in that domain to resolve the next hop
and establish a path through the domain. and establish a path through the domain.
- The next hop resolution may occur via paths of any intra-domain - The next-hop resolution may occur via paths of any intra-domain
protocol or even via paths provided by BGP CAR. protocol or even via paths provided by BGP CAR.
- The next hop resolution color C2 may be defined as a local - The next-hop resolution color C2 may be defined as a local
policy at ingress or transit nodes of the domain. policy at ingress or transit nodes of the domain.
- It may also be automatically signaled from egress border nodes - It may also be automatically signaled from egress border nodes
by attaching a Color-EC with value C2 to the BGP CAR routes. by attaching a Color-EC with value C2 to the BGP CAR routes.
* Hence, routes of N end-to-end colors may be resolved over paths * Hence, routes of N end-to-end colors may be resolved over paths
from a smaller set of M colors in a transit domain, while from a smaller set of M colors in a transit domain, while
preserving the original color-awareness end-to-end. preserving the original color awareness end-to-end.
* Any ingress PE that installs a service (VPN) route with a color * Any ingress PE that installs a service (VPN) route with a color C1
C1, must have C1 enabled locally to install IP routes to (E, C1) must have C1 enabled locally to install IP routes to (E, C1) and
and resolve the service route's next hop. resolve the service route's next hop.
* A degenerate variation of this scenario is where a transit domain * A degenerate variation of this scenario is where a transit domain
does not support any color. Appendix A.3 describes an example of does not support any color. Appendix A.3 describes an example of
this case. this case.
Illustration for N end to end intents over fewer M intra-domain Illustration for N end-to-end intents over fewer M intra-domain
intents: intents:
RD:V/v via E2 Color-EC: 100 RD:V/v via E2 Color-EC: 100
RD:W/w via E2 Color-EC: 200 RD:W/w via E2 Color-EC: 200
+-----+ RD:X/x via E2 Color-EC: 300 +-----+ +-----+ RD:X/x via E2 Color-EC: 300 +-----+
...... |S-RR1| <..................................|S-RR2| <........ ...... |S-RR1| <..................................|S-RR2| <........
: +-----+ RD:Y/y via E2 Color-EC: 400 +-----+ : : +-----+ RD:Y/y via E2 Color-EC: 400 +-----+ :
: : : :
: : : :
: : : :
skipping to change at page 76, line 45 skipping to change at line 3425
| C1=FA132 | C10=FA128 | C1=FA132 | | C1=FA132 | C10=FA128 | C1=FA132 |
| C2=FA133 | C20=FA129 | C2=FA133 | | C2=FA133 | C20=FA129 | C2=FA133 |
| | C30=FA130 | | | | C30=FA130 | |
| | C40=FA131 | | | | C40=FA131 | |
| | | | | | | |
| IS-IS SR | IS-IS SR | IS-IS SR | | IS-IS SR | IS-IS SR | IS-IS SR |
| ACCESS | CORE | ACCESS | | ACCESS | CORE | ACCESS |
+-----------------------+---------------------+------------------------+ +-----------------------+---------------------+------------------------+
iPE iABR eABR ePE iPE iABR eABR ePE
Figure 13: N:M illustration Figure 13: N:M Illustration
* The following description applies to the reference topology above: * The following description applies to the reference topology above:
- Core domain provides 4 intra-domain intents as described below: - Core domain provides 4 intra-domain intents as described below:
o FA128 mapped to C10, o FA128 mapped to C10,
o FA129 mapped to C20, o FA129 mapped to C20,
o FA130 mapped to C30, and o FA130 mapped to C30, and
o FA131 mapped to C40. o FA131 mapped to C40.
- Access domain provides following 2 intra-domain intents: - Access domain provides the following 2 intra-domain intents:
o FA132 mapped to C1, and o FA132 mapped to C1, and
o FA133 mapped to C2 o FA133 mapped to C2.
- Operator defines following 4 BGP CAR end to end intents as - Operator defines the following 4 BGP CAR end-to-end intents as
below: below:
o CAR color C100 that resolves on C1 in access and C10 in core o CAR color C100 that resolves on C1 in access and C10 in Core
domain, domain,
o CAR color C200 that resolves on C1 in access and C20 in core o CAR color C200 that resolves on C1 in access and C20 in Core
domain, domain,
o CAR color C300 that resolves on C2 in access and C30 in core o CAR color C300 that resolves on C2 in access and C30 in Core
domain, and domain, and
o CAR color C400 that resolves on C2 in access and C40 in core o CAR color C400 that resolves on C2 in access and C40 in Core
domain. domain.
- E2 may originate BGP CAR routes with multiple BGP Color-ECs as - E2 may originate BGP CAR routes with multiple BGP Color-ECs as
shown above. At each hop, CAR route's next hop is resolved shown above. At each hop, CAR route's next hop is resolved
over the available intra-domain color. For example (E2, C100) over the available intra-domain color. For example (E2, C100)
with BGP color ECs C1, C10 resolves over C1 at ABR 231, C10 at with BGP Color-ECs C1, C10 resolves over C1 at ABR 231, C10 at
ABR 121, and C1 at E1. ABR 121, and C1 at E1.
- Egress PE E2 advertises a VPN route RD:V/v colored with BGP - Egress PE E2 advertises a VPN route RD:V/v colored with BGP
Color-EC C100 to steer traffic through FA 132 in access and FA Color-EC C100 to steer traffic through FA 132 in access and FA
128 in core. It also advertises another VPN route RD:W/w 128 in core. It also advertises another VPN route RD:W/w
colored with BGP Color-EC C200 to steer traffic through FA 132 colored with BGP Color-EC C200 to steer traffic through FA 132
in access and FA 129 in core. in access and FA 129 in core.
* Important: * Important:
skipping to change at page 78, line 13 skipping to change at line 3488
intra-domain colors or intents. intra-domain colors or intents.
- Combination can be expressed by local policy at ABRs or by - Combination can be expressed by local policy at ABRs or by
attaching multiple BGP Color-ECs at origination point of BGP attaching multiple BGP Color-ECs at origination point of BGP
CAR route. CAR route.
- Service traffic is steered into suitable CAR color to use the - Service traffic is steered into suitable CAR color to use the
most granular intent in a domain multiple hops away from most granular intent in a domain multiple hops away from
ingress PE. ingress PE.
- Consistent reuse of standard color based resolution mechanism - Consistent reuse of standard color-based resolution mechanism
at both service and transport layers. at both service and transport layers.
B.3. Multiple color domains B.3. Multiple Color Domains
When the routes are distributed between domains with different color- When the routes are distributed between domains with different color-
to-intent mapping schemes, both N:N and N:M cases are possible. to-intent mapping schemes, both N:N and N:M cases are possible.
Although an N:M mapping is more likely to occur. Although an N:M mapping is more likely to occur.
Reference topology: Reference topology:
D1 ----- D2 ----- D3 D1 ----- D2 ----- D3
C1 C2 C3 C1 C2 C3
Figure 14: Multiple color domains Figure 14: Multiple Color Domains
* C1 in D1 maps to C2 in D2 and to C3 in D3. * C1 in D1 maps to C2 in D2 and to C3 in D3.
* BGP CAR is enabled in all three color domains. * BGP CAR is enabled in all three color domains.
The reference topology above is used to elaborate on the design The reference topology above is used to elaborate on the design
described in Section 2.8 described in Section 2.8
When the route originates in color domain D1 and gets advertised to a When the route originates in color domain D1 and gets advertised to a
different color domain D2, following procedures apply: different color domain D2, the following procedures apply:
* The NLRI of the BGP CAR route is preserved end to end, i.e., route * The NLRI of the BGP CAR route is preserved end to end (i.e., route
is (E, C1). is (E, C1)).
* A BR of D1 attaches LCM-EC with value C1 when advertising to a BR * A BR of D1 attaches LCM-EC with value C1 when advertising to a BR
in D2. in D2.
* A BR in D2 receiving (E, C1) maps C1 in received LCM-EC to local * A BR in D2 receiving (E, C1) maps C1 in received LCM-EC to local
color, say C2. color, say C2.
- A BR in D2 may receive (E, C1) from multiple D1 BRs which - A BR in D2 may receive (E, C1) from multiple D1 BRs, which
provide equal cost or primary/backup paths. provide equal cost or primary/backup paths.
* Within D2, this LCM-EC value of C2 is used instead of the Color in * Within D2, this LCM-EC value of C2 is used instead of the Color in
CAR route NLRI (E, C1). This applies to all procedures described CAR route NLRI (E, C1). This applies to all procedures described
in the earlier section for a single color domain, such as next-hop in the earlier section for a single color domain, such as next-hop
resolution and service steering. resolution and service steering.
* A colored service route V/v originated in color domain D1 with * A colored service route V/v originated in color domain D1 with
next hop E and Color-EC C1 will also have its color extended- next hop E and Color-EC C1 will also have its Color-EC value re-
community value re-mapped to C2, typically at a service RR. mapped to C2, typically at a service RR.
* On an ingress PE in D2, V/v will resolve via C2. * On an ingress PE in D2, V/v will resolve via C2.
* When a BR in D2 advertises the route to a BR in D3, the same * When a BR in D2 advertises the route to a BR in D3, the same
process repeats. process repeats.
Appendix C. CAR SRv6 Illustrations Appendix C. CAR SRv6 Illustrations
C.1. BGP CAR SRv6 locator reachability hop by hop distribution C.1. BGP CAR SRv6 Locator Reachability Hop-by-Hop Distribution
RD:V/v via E2 RD:V/v via E2
+-----+ SRv6SID=B:C11:2:DT4:: +-----+ +-----+ SRv6SID=B:C11:2:DT4:: +-----+
...... |S-RR1| <..................................|S-RR2| <..... ...... |S-RR1| <..................................|S-RR2| <.....
: +-----+ +-----+ : : +-----+ +-----+ :
: : : :
: : : :
: AS2 AS1 : : AS2 AS1 :
+-:------------------------------------+ +--------------:--+ +-:------------------------------------+ +--------------:--+
| : | | : | | : | | : |
| : B:C11::/32 via IP1 | | : | | : B:C11::/32 via IP1 | | : |
skipping to change at page 80, line 43 skipping to change at line 3583
| via IP2 | B:C11::/32 | | | via IP2 | B:C11::/32 | |
| | via 232 | | | | via 232 | |
| | LCM=C1 | | | | LCM=C1 | |
| | AIGP=10 | | | | AIGP=10 | |
| IS-ISv6 | | IS-ISv6 | | IS-ISv6 | | IS-ISv6 |
| FA 128 (B:C12::/32) | |FA128(B:C11::/32)| | FA 128 (B:C12::/32) | |FA128(B:C11::/32)|
| FA 0 (B:02::/32) | |FA0 (B:01::/32) | | FA 0 (B:02::/32) | |FA0 (B:01::/32) |
+--------------------------------------+ +-----------------+ +--------------------------------------+ +-----------------+
iPE ASBR ASBR ePE iPE ASBR ASBR ePE
Figure 15 Figure 15
The topology above is an example to illustrate the BGP CAR SRv6 The topology above is an example to illustrate the BGP CAR SRv6
locator prefix route based design (Routed Service SID: locator prefix route-based design (Section 7.1.1) with hop-by-hop
Section 7.1.1), with hop by hop IPv6 routing within and between IPv6 routing within and between domains.
domains.
* Multi-AS network with eBGP CAR session between ASBRs. * Multi-AS network with eBGP CAR session between ASBRs.
* Transport RR (TRR) peers with P, BR and PE clients within an AS to * Transport RR (TRR) peers with P, BR, and PE clients within an AS
propagate CAR prefixes. AddPath is enabled to propagate multiple to propagate CAR prefixes. ADD-PATH is enabled to propagate
paths. multiple paths.
* IS-IS (IGP) Flex-Algo 128 for SRv6 is running in each AS (AS may * IS-IS (IGP) Flex-Algo 128 for SRv6 is running in each AS (AS may
consist of multiple IGP domains), where the following steps apply: consist of multiple IGP domains), where the following steps apply:
- Prefix B:C11::/32 summarizes Flex-Algo 128 block in AS1 for the - Prefix B:C11::/32 summarizes Flex-Algo 128 block in AS1 for the
given intent. Node locators in the egress domain are sub- given intent. Node locators in the egress domain are sub-
allocated from the block for the given intent. allocated from the block for the given intent.
- Similarly, Prefix B:C12::/32 summarizes Flex-Algo 128 block in - Similarly, Prefix B:C12::/32 summarizes Flex-Algo 128 block in
AS2. AS2.
- Per Flex-Algo external subnets for eBGP next hops IP1 and IP2 - Per Flex-Algo external subnets for eBGP next hops IP1 and IP2
are distributed in IS-IS within AS2. are distributed in IS-IS within AS2.
* BGP CAR prefix route B:C11::/32 with LCM C1 is originated by AS1 * BGP CAR prefix route B:C11::/32 with LCM C1 is originated by AS1
BRs 231 and 232 on eBGP sessions to AS2 BRs 121 and 122. BRs 231 and 232 on eBGP sessions to AS2 BRs 121 and 122.
* ASBR 121 and 122 propagate the route in AS2 to all the P, ABRs and * ASBR 121 and 122 propagate the route in AS2 to all the P, ABRs,
PEs through transport RR. and PEs through transport RR.
* Every router in AS2 resolves BGP CAR prefix B:C11::/32 next hops * Every router in AS2 resolves BGP CAR prefix B:C11::/32 next hops
IP1 and IP2 in IS-ISv6 Flex-Algo 128 and programs B:C11::/32 IP1 and IP2 in IS-ISv6 Flex-Algo 128 and programs B:C11::/32
prefix in global IPv6 forwarding table. prefix in global IPv6 forwarding table.
* AIGP attribute influences BGP CAR route best path decision. * AIGP attribute influences BGP CAR route best path decision.
* Egress PE E2 advertises a VPN route RD:V/v with SRv6 service SID * Egress PE E2 advertises a VPN route RD:V/v with SRv6 Service SID
B:C11:2:DT4::. Service SID is allocated by E2 from its locator of B:C11:2:DT4::. Service SID is allocated by E2 from its locator of
color C1 intent. color C1 intent.
* Ingress PE E1 learns (via service RRs S-RR1 and S-RR2) VPN route * Ingress PE E1 learns (via service RRs S-RR1 and S-RR2) VPN route
RD:V/v with SRv6 SID B:C11:2:DT4::. RD:V/v with SRv6 SID B:C11:2:DT4::.
* Service traffic encapsulated with SRv6 Service SID B:C11:2:DT4:: * Service traffic encapsulated with SRv6 Service SID B:C11:2:DT4::
is natively steered hop by hop along IPv6 routed path to is natively steered hop by hop along IPv6 routed path to
B:C11::/32 provided by BGP CAR in AS2. B:C11::/32 provided by BGP CAR in AS2.
* Encapsulated service traffic is natively steered along IPv6 routed * Encapsulated service traffic is natively steered along IPv6 routed
path to B:C11::/32 provided by IS-ISv6 Flex-Algo 128 in AS1. path to B:C11::/32 provided by IS-ISv6 Flex-Algo 128 in AS1.
* Design applies to multiple ASNs. BGP next hop is rewritten across * Design applies to multiple ASNs. BGP next hop is rewritten across
a eBGP hop. an eBGP hop.
Important: Important:
* No tunneling/encapsulation on Ingress PE and BRs for BGP CAR * No tunneling/encapsulation on ingress PE and BRs for BGP CAR
provided transport. provided transport.
* Uses longest prefix match of SRv6 service SID to BGP CAR IP * Uses longest prefix match of SRv6 Service SID to BGP CAR IP
prefix. No mapping to labels/SIDs, instead use of simple IP based prefix. No mapping to labels/SIDs, instead use of simple IP-based
forwarding. forwarding.
Packet forwarding Packet forwarding:
@E1: IPv4 VRF V/v => H.Encaps.red <B:C11:2:DT4::> => forward based on @E1: IPv4 VRF V/v => H.Encaps.red <B:C11:2:DT4::> => Forward based
B:C11::/32 on B:C11::/32
@P*: IPv6 table: B:C11::/32 => forward to interface, NH @P*: IPv6 table: B:C11::/32 => Forward to interface, NH
@121: IPv6 Table: B:C11::/32 => forward to interface, NH @121: IPv6 Table: B:C11::/32 => Forward to interface, NH
@231: IPv6 table: B:C11:2::/48 :: => forward via IS-ISv6 FA path to E2 @231: IPv6 table: B:C11:2::/48 :: => Forward via IS-ISv6 FA path to E2
@231: IPv6 Table B:C11:2::/48 => forward via IS-ISv6 FA path to E2 @231: IPv6 Table B:C11:2::/48 => Forward via IS-ISv6 FA path to E2
@E2: My SID table B:C11:2:DT4:: =>pop the outer header and lookup the @E2: My SID table B:C11:2:DT4:: => Pop the outer header and look up
inner DA in the VRF the inner DA in the VRF
C.2. BGP CAR SRv6 Locator Reachability Distribution with Encapsulation
C.2. BGP CAR SRv6 locator reachability distribution with encapsulation
RD:V/v via E2 RD:V/v via E2
+-----+ SRv6SID=B:C11:2:DT4:: +-----+ +-----+ SRv6SID=B:C11:2:DT4:: +-----+
...... |S-RR1| <..................................|S-RR2| <....... ...... |S-RR1| <..................................|S-RR2| <.......
: +-----+ +-----+ : : +-----+ +-----+ :
: : : :
: : : :
: : : :
+-:-----------------------+----------------------+------------------:--+ +-:-----------------------+----------------------+------------------:--+
| : | | : | | : | | : |
| : | | : | | : | | : |
skipping to change at page 83, line 43 skipping to change at line 3698
| | | | | | | |
| IS-ISv6 | IS-ISv6 | IS-ISv6 | | IS-ISv6 | IS-ISv6 | IS-ISv6 |
| FA 128 (B:C13::/32) | FA 128 (B:C12::/32) | FA128 (B:C11::/32) | | FA 128 (B:C13::/32) | FA 128 (B:C12::/32) | FA128 (B:C11::/32) |
| FA 0 (B:03::/32) | FA 0 (B:02::/32) | FA1 0 (B:01::/32) | | FA 0 (B:03::/32) | FA 0 (B:02::/32) | FA1 0 (B:01::/32) |
+-------------------------+----------------------+---------------------+ +-------------------------+----------------------+---------------------+
iPE iABR eABR ePE iPE iABR eABR ePE
Figure 16 Figure 16
The topology above is an example to illustrate the BGP CAR SRv6 The topology above is an example to illustrate the BGP CAR SRv6
locator prefix route based design (Routed Service SID: locator prefix route-based design (Section 7.1.1) with intra-domain
Section 7.1.1), with intra-domain encapsulation. The example shown encapsulation. The example shown is iBGP, but also applies to eBGP
is iBGP, but also applies to eBGP (multi-AS). (multi-AS).
* IGP Flex-Algo 128 is running in each domain, where * IGP Flex-Algo 128 is running in each domain, where:
- Prefix B:C11::/32 summarizes Flex-Algo 128 block in egress - Prefix B:C11::/32 summarizes Flex-Algo 128 block in egress
domain for the given intent. Node locators in the egress domain for the given intent. Node locators in the egress
domain are sub-allocated from the block. domain are sub-allocated from the block.
- Prefix B:C12::/32 summarizes FA128 block in transit domain. - Prefix B:C12::/32 summarizes FA128 block in transit domain.
- Prefix B:C13::/32 summarizes FA128 block in ingress domain. - Prefix B:C13::/32 summarizes FA128 block in ingress domain.
* BGP CAR route B:C11::/32 is originated by ABRs 231 and 232 with * BGP CAR route B:C11::/32 is originated by ABRs 231 and 232 with
LCM C1. Along the propagation path, border routers set next-hop- LCM C1. Along the propagation path, border routers set next-hop-
self and appropriately update the intra-domain encapsulation self and appropriately update the intra-domain encapsulation
information for the C1 intent. For example, 231 and 121 signal information for the C1 intent. For example, 231 and 121 signal
SRv6 SID of END behavior [RFC8986] allocated from their respective SRv6 SID of End behavior [RFC8986] allocated from their respective
locators for the C1 intent. (Note: IGP Flex-Algo is shown for locators for the C1 intent. (Note: IGP Flex-Algo is shown for
intra-domain path, but SR-Policy may also provide the path as intra-domain path, but SR-Policy may also provide the path as
shown in Appendix C.3). shown in Appendix C.3.)
* AIGP attribute influences BGP CAR route best path decision. * AIGP attribute influences BGP CAR route best path decision.
* Egress PE E2 advertises a VPN route RD:V/v with SRv6 service SID * Egress PE E2 advertises a VPN route RD:V/v with SRv6 Service SID
B:C11:2:DT4::. Service SID is allocated by E2 from its locator of B:C11:2:DT4::. Service SID is allocated by E2 from its locator of
color C1 intent. color C1 intent.
* Ingress PE E1 learns CAR route B:C11::/32 and VPN route RD:V/v * Ingress PE E1 learns CAR route B:C11::/32 and VPN route RD:V/v
with SRv6 SID B:C11:2:DT4::. with SRv6 SID B:C11:2:DT4::.
* Traffic encapsulated with SRv6 Service SID B:C11:2:DT4:: is * Traffic encapsulated with SRv6 Service SID B:C11:2:DT4:: is
steered along IPv6 routed path provided by BGP CAR IP prefix route steered along IPv6 routed path provided by BGP CAR IP prefix route
to locator B:C11::/32. to locator B:C11::/32.
Important Important:
* Uses longest prefix match of SRv6 service SID to BGP CAR prefix. * Uses longest prefix match of SRv6 Service SID to BGP CAR prefix.
No mapping labels/SIDs, instead simple IP based forwarding. There is no mapping labels/SIDs; there is simple IP-based
forwarding instead.
* Originating domain PE locators of the given intent can be * Originating domain PE locators of the given intent can be
summarized on transit BGP hops eliminating per PE state on border summarized on transit BGP hops eliminating per PE state on border
routers. routers.
Packet forwarding Packet forwarding:
@E1: IPv4 VRF V/v => H.Encaps.red <B:C13:121:END::, B:C11:2:DT4::> @E1: IPv4 VRF V/v => H.Encaps.red <B:C13:121:END::, B:C11:2:DT4::>
@121: My SID table: B:C13:121:END:: => Update DA with B:C11:2:DT4:: @121: My SID table: B:C13:121:END:: => Update DA with B:C11:2:DT4::
@121: IPv6 Table: B:C11::/32 => H.Encaps.red <B:C12:231:END::> @121: IPv6 Table: B:C11::/32 => H.Encaps.red <B:C12:231:END::>
@231: My SID table: B:C12:231:END:: => Remove IPv6 header; Inner DA B:C11:2:DT4:: @231: My SID table: B:C12:231:END:: => Remove IPv6 header;
@231: IPv6 Table B:C11:2::/48 => forward via IS-ISv6 FA path to E2 Inner DA B:C11:2:DT4::
@E2: My SID table B:C11:2:DT4:: =>pop the outer header and lookup the @231: IPv6 Table B:C11:2::/48 => Forward via IS-ISv6 FA path to E2
inner DA in the VRF @E2: My SID table B:C11:2:DT4:: => Pop the outer header and look up
the inner DA in the VRF
C.3. BGP CAR (E, C) route distribution for steering non-routed service C.3. BGP CAR (E, C) Route Distribution for Steering Non-Routed Service
SID SID
RD:V/v via E2 RD:V/v via E2
+-----+ SRv6SID: B:01:2:DT4:: +-----+ +-----+ SRv6SID: B:01:2:DT4:: +-----+
...... |S-RR1| <..................................|S-RR2| <....... ...... |S-RR1| <..................................|S-RR2| <.......
: +-----+ Color C2 +-----+ : : +-----+ Color C2 +-----+ :
: : : :
: +-----+ (E2,C2) via 231 : : +-----+ (E2,C2) via 231 :
: -----------------| TRR |-------------------| : : -----------------| TRR |-------------------| :
:| +-----+ SID=B:C21:2:B6:: | : :| +-----+ SID=B:C21:2:B6:: | :
+-:|---------------------+---------------------|+------------------:--+ +-:|---------------------+---------------------|+------------------:--+
| :| | || : | | :| | || : |
skipping to change at page 85, line 36 skipping to change at line 3790
| LCM=C2,AIGP=120 | LCM=C2 AIGP=20 | BSID=B:C21:2:B6:: | | LCM=C2,AIGP=120 | LCM=C2 AIGP=20 | BSID=B:C21:2:B6:: |
| | | | | | | |
| IS-ISv6 | IS-ISv6 | IS-ISv6 | | IS-ISv6 | IS-ISv6 | IS-ISv6 |
| FA 0 (B:03::/32) | FA 0 (B:02::/32) | FA 0(B:01::/32) | | FA 0 (B:03::/32) | FA 0 (B:02::/32) | FA 0(B:01::/32) |
+------------------------+----------------------+---------------------+ +------------------------+----------------------+---------------------+
iPE iABR eABR ePE iPE iABR eABR ePE
Figure 17 Figure 17
The topology above is an example to illustrate the BGP CAR (E, C) The topology above is an example to illustrate the BGP CAR (E, C)
route based design (Section 7.1.2). The example is iBGP, but design route-based design (Section 7.1.2). The example is iBGP, but the
also applies to eBGP (multi-AS). design also applies to eBGP (multi-AS).
* SR policy (E2, C2) provides given intent in egress domain. * SR policy (E2, C2) provides given intent in egress domain.
- SR policy (E2, C2) with segments <B:01:z:END::, B:01:2:END::> - SR policy (E2, C2) with segments <B:01:z:END::, B:01:2:END::>,
where z is the node id in egress domain. where z is the node id in egress domain.
* Egress ABRs 231 and 232 redistribute SR policy into BGP CAR Type-1 * Egress ABRs 231 and 232 redistribute SR policy into BGP CAR Type-1
NLRI (E2, C2) to other domains, with SRv6 SID of End.B6 behavior. NLRI (E2, C2) to other domains, with SRv6 SID of End.B6 behavior.
This route is propagated to ingress PEs through transport RR (TRR) This route is propagated to ingress PEs through Transport RR (TRR)
or inline with next hop unchanged. or inline with next-hop-unchanged.
* The ABRs also advertise BGP CAR prefix route (B:C21::/32) * The ABRs also advertise BGP CAR prefix route (B:C21::/32)
summarizing locator part of SRv6 SIDs for SR policies of given summarizing locator part of SRv6 SIDs for SR policies of given
intent to different PEs in egress domain. BGP CAR prefix route intent to different PEs in egress domain. BGP CAR prefix route
propagates through border routers. At each BGP hop, BGP CAR propagates through border routers. At each BGP hop, BGP CAR
prefix next-hop resolution triggers intra-domain transit SR policy prefix next-hop resolution triggers intra-domain transit SR policy
(C2, CAR next hop). For example: (C2, CAR next hop). For example:
- SR policy (231, C2) with segments <B:02:y:END::, - SR policy (231, C2) with segments <B:02:y:END::,
B:02:231:END::>, and B:02:231:END::>, and
- SR policy (121, C2) with segments <B:03:x:END::, - SR policy (121, C2) with segments <B:03:x:END::,
B:03:121:END::>, B:03:121:END::>,
- where x and y are node ids within the respective domains. - where x and y are node ids within the respective domains.
* Egress PE E2 advertises a VPN route RD:V/v with Color-EC C2. * Egress PE E2 advertises a VPN route RD:V/v with Color-EC C2.
* Ingress PE E1 steers VPN route from E2 onto BGP CAR route (E2, C2) * Ingress PE E1 steers VPN route from E2 onto BGP CAR route (E2, C2)
that results in H.Encaps.red of SRv6 transport SID B:C21:2:B6:: that results in H.Encaps.red of SRv6 transport SID B:C21:2:B6::
and SRv6 service SID as last segment in IPv6 header. and SRv6 Service SID as last segment in IPv6 header.
* IPv6 destination B:C21:2:B6:: match on CAR prefix B:C21::/32 that * IPv6 destination B:C21:2:B6:: match on CAR prefix B:C21::/32 that
steers the packet into intra-domain (intent-aware) SR Policy on steers the packet into intra-domain (intent-aware) SR Policy on
ingress PE E1 and ABR 121. ingress PE E1 and ABR 121.
* IPv6 packet destination B:C21:2:B6:: lookup in mySID table on ABR * IPv6 packet destination B:C21:2:B6:: lookup in mySID table on ABR
231 or 232 results in END.B6 behavior (i.e., push of policy 231 or 232 results in END.B6 behavior (i.e., push of policy
segments to E2). segments to E2).
Important Important:
* Ingress PE steers services via (E, C) CAR route as per [RFC9256]. * Ingress PE steers services via (E, C) CAR route as per [RFC9256].
* In data plane (E, C) resolution results in IPv6 header destination * In data plane (E, C), resolution results in IPv6 header
being SRv6 SID of END.B6 behavior whose locator is of given intent destination being SRv6 SID of END.B6 behavior whose locator is of
on originating ABRs. given intent on originating ABRs.
* CAR IP prefix route along the transit path provides simple LPM * CAR IP prefix route along the transit path provides simple Longest
IPv6 forwarding along the transit BGP hops. Prefix Match (LPM) IPv6 forwarding along the transit BGP hops.
* CAR NLRI Type-2 prefix summarizes binding SIDs of all SR policies * CAR NLRI Type-2 prefix summarizes binding SIDs of all SR policies
on originating ABR of a given intent to different PEs in egress on originating ABR of a given intent to different PEs in egress
domain. This eliminates per PE state on transit routers. domain. This eliminates per PE state on transit routers.
Packet forwarding Packet forwarding:
@E1: IPv4 VRF V/v => H.Encaps.red <B:C21:2:B6::, B:0:E2:DT4::> @E1: IPv4 VRF V/v => H.Encaps.red <B:C21:2:B6::, B:0:E2:DT4::>
H.Encaps.red <SR policy (C2,121) sid list> H.Encaps.red <SR policy (C2,121) sid list>
@121: My SID table: B:03:121:END:: => Remove outer IPv6 header; Inner DA B:C21:2:B6:: @121: My SID table: B:03:121:END:: => Remove outer IPv6 header;
@121: IPv6 Table: B:C21::/32 => H.Encaps.red <SR Policy (C2,231) sid Inner DA B:C21:2:B6::
list> @121: IPv6 Table: B:C21::/32 => H.Encaps.red <SR Policy (C2,231) sid
@231: My SID table: B:02:231:END:: => Remove outer IPv6 header; Inner DA B:C21:2:B6:: list>
@231: My SID table: B:02:231:END:: => Remove outer IPv6 header;
Inner DA B:C21:2:B6::
@231: MySIDtable B:C21:2:B6:: => H.Encaps.red <SR Policy (C2,E2) sid @231: MySIDtable B:C21:2:B6:: => H.Encaps.red <SR Policy (C2,E2) sid
list> list>
@E2: IPv6 Table B:0:2:DT4:: =>pop the outer header and lookup the @E2: IPv6 Table B:0:2:DT4:: => Pop the outer header and look up the
inner DA in the VRF inner DA in the VRF
Appendix D. CAR SAFI NLRI update packing efficiency calculation Appendix D. CAR SAFI NLRI Update Packing Efficiency Calculation
CAR SAFI NLRI encoding is optimized for update packing. It allows CAR SAFI NLRI encoding is optimized for update packing. It allows
per route information (for example label, label index and SRv6 SID per-route information (for example, label, label index, and SRv6 SID
encapsulation data) to be carried in non-key TLV part of NLRI. This encapsulation data) to be carried in the non-key TLV part of NLRI.
allows multiple NLRIs to be packed in single update message when This allows multiple NLRIs to be packed in a single update message
other attributes (including LCM-EC when present) are shared. The when other attributes (including LCM-EC, when present) are shared.
table below shows a theoretical analysis calculated from observed BGP The table below shows a theoretical analysis calculated from observed
update message size in operational networks. It compares total BGP BGP update message size in operational networks. It compares total
data on the wire for CAR SAFI and [RFC8277] style encoding in MPLS BGP data on the wire for CAR SAFI and [RFC8277] style encoding in
label (CASE A), SR extension with MPLS (per-prefix label index in MPLS label (CASE A), SR extension with MPLS (per-prefix label index
Prefix-SID attribute) [RFC8669] (CASE B) and SRv6 SID (CASE C) cases. in Prefix-SID attribute) [RFC8669] (CASE B) and SRv6 SID (CASE C)
Scenarios considered are ideal packing (maximum number of routes cases. The packing scenarios considered are as follows:
packed to update message limit of 4k bytes), practical deployment
case with average packing (5 routes share set of BGP path attributes
and hence packed in single update message) and worst-case of no
packing (each route in separate update message).
Encoding | BGP CAR |RFC-8277 style | Result * the ideal case (where the maximum number of routes are packed to
| NLRI |NLRI | the update message limit of 4k bytes),
CASE A: Label | | |
(Ideal) | 27.5 MB | 26 MB |
+--------------+----------------+ No degradation from
(Practical) | 86 MB | 84 MB | RFC8277 like encoding
+--------------+----------------+
(No packing) | 325 MB | 324 MB |
CASE B: Label | | 339 MB | CAR SAFI encoding more
& Label-index | | Packing not | efficient by 88% in
(Ideal) | 42 MB | possible | best case and 71% in
+--------------+----------------+ average case over
(Practical) | 99 MB | 339 MB | RFC8277 style encoding
| | Packing not | (which precludes
| | possible | packing)
+--------------+----------------+
(No packing) | 339 MB | 339 MB |
| | |
CASE C: SRv6 SID| | | Results are similar to
(Ideal) | 49 MB | 378 MB | SR MPLS case.
| | | Transposition provides
+--------------+----------------+ further 20% reduction
(Practical) | 115 MB | 378 MB | in BGP data.
+--------------+----------------+
(No packing) | 378 MB | 378 MB |
Figure 18: Summary of ideal, practical and no-packing BGP data in * the practical case of average packing (where 5 routes share a set
each case of BGP path attributes, and hence are packed in a single update
message), and
Analysis considers 1.5 million routes (5 colors across 300k * the worst case of no packing (where each route is in a separate
endpoints) update message).
+=============+=========+===========+============================+
| Encoding | BGP CAR | [RFC8277] | Result |
| | NLRI | style | |
| | | NLRI | |
+=============+=========+===========+============================+
| CASE A: Label |
+=============+=========+===========+============================+
| (Ideal) | 27.5 MB | 26 MB | No degradation from |
| | | | [RFC8277] like encoding. |
+-------------+---------+-----------+ |
| (Practical) | 86 MB | 84 MB | |
+-------------+---------+-----------+ |
| (Worst; no | 325 MB | 324 MB | |
| packing) | | | |
+=============+=========+===========+============================+
| CASE B: Label & Label-index |
+=============+=========+===========+============================+
| (Ideal) | 42 MB | 339 MB | CAR SAFI encoding is more |
| | | Packing | efficient by 88% in the |
| | | not | best case and 71% in the |
| | | possible | average case over |
| | | | [RFC8277] style encoding |
| | | | (which precludes packing). |
+-------------+---------+-----------+ |
| (Practical) | 99 MB | 339 MB | |
| | | Packing | |
| | | not | |
| | | possible | |
+-------------+---------+-----------+ |
| (Worst; no | 339 MB | 339 MB | |
| packing) | | | |
+=============+=========+===========+============================+
| CASE C: SRv6 SID |
+=============+=========+===========+============================+
| (Ideal) | 49 MB | 378 MB | Results are similar to the |
| | | | SR-MPLS case. |
| | | | Transposition provides a |
| | | | further 20% reduction in |
| | | | BGP data. |
+-------------+---------+-----------+ |
| (Practical) | 115 MB | 378 MB | |
+-------------+---------+-----------+ |
| (Worst; no | 378 MB | 378 MB | |
| packing) | | | |
+-------------+---------+-----------+----------------------------+
Table 5: Summary of the Ideal, Practical, and Worst Cases of
Packing BGP Data
This analysis considers 1.5 million routes (5 colors across 300k
endpoints).
CASE A: BGP data exchanged for the non-SR-MPLS case:
CASE A: BGP data exchanged for non SR MPLS case
Consider 200 bytes of shared attributes Consider 200 bytes of shared attributes
CAR SAFI signal Label in non-key TLV part of NLRI CAR SAFI signal Label in non-key TLV part of NLRI
Each NLRI size for AFI 1 = 12(key) + 5(label) = 17 bytes Each NLRI size for AFI 1 = 12(key) + 5(label) = 17 bytes
Ideal packing: Ideal packing:
number of NLRIs in 4k update size = 223 (4k-200/17) number of NLRIs in 4k update size = 223 (4k-200/17)
number of update messages of 4k size = 1.5 million/223 = 6726 number of update messages of 4k size = 1.5 million/223 = 6726
Total BGP data on wire = 6726 * 4k = ~27.5MB Total BGP data on wire = 6726 * 4k = ~27.5MB
Practical packing (5 routes in update message) Practical packing (5 routes in update message):
size of update message = (17 * 5) + 200 = 285 size of update message = (17 * 5) + 200 = 285
Total BGP data on wire = 285 * 300k = ~86MB Total BGP data on wire = 285 * 300k = ~86MB
No-packing case (1 route per update message) No-packing case (1 route per update message):
size of update message = 17 + 200 = 217 size of update message = 17 + 200 = 217
Total BGP data on wire = 217 * 1.5 million = ~325MB Total BGP data on wire = 217 * 1.5 million = ~325MB
SAFI 128 8277 style encoding with label in NLRI SAFI 128 8277 style encoding with label in NLRI
Each NLRI size for AFI 1 = 13(key) + 3(label) = 16 bytes Each NLRI size for AFI 1 = 13(key) + 3(label) = 16 bytes
Ideal packing: Ideal packing:
number of NLRIs in 4k update size = 237 (4k-200/16) number of NLRIs in 4k update size = 237 (4k-200/16)
number of update messages of 4k size = 1.5 million/237 = ~6330 number of update messages of 4k size = 1.5 million/237 = ~6330
Total BGP data on wire = 6330 * 4k = ~25.9MB Total BGP data on wire = 6330 * 4k = ~25.9MB
Practical packing (5 routes in update message) Practical packing (5 routes in update message):
size of update message = (16 * 5) + 200 = 280 size of update message = (16 * 5) + 200 = 280
Total BGP data on wire = 280 * 300k = ~84MB Total BGP data on wire = 280 * 300k = ~84MB
No-packing case (1 route per update message) No-packing case (1 route per update message):
size of update message = 16 + 200 = 216 size of update message = 16 + 200 = 216
Total BGP data on wire = 216 * 1.5 million = ~324MB Total BGP data on wire = 216 * 1.5 million = ~324MB
CASE B: BGP data exchanged for SR label index CASE B: BGP data exchanged for SR label index:
Consider 200 bytes of shared attributes Consider 200 bytes of shared attributes
CAR SAFI signal Label in non-key TLV part of NLRI CAR SAFI signal Label in non-key TLV part of NLRI
Each NLRI size for AFI 1 Each NLRI size for AFI 1
= 12(key) + 5(label) + 9(Index) = 26 bytes = 12(key) + 5(label) + 9(Index) = 26 bytes
Ideal packing: Ideal packing:
number of NLRIs in 4k update size = 146 (4k-200/26) number of NLRIs in 4k update size = 146 (4k-200/26)
number of update messages of 4k size = 1.5 million/146 = 6726 number of update messages of 4k size = 1.5 million/146 = 6726
Total BGP data on wire = 10274 * 4k = ~42MB Total BGP data on wire = 10274 * 4k = ~42MB
Practical packing (5 routes in update message) Practical packing (5 routes in update message)
size of update message = (26 * 5) + 200 = 330 size of update message = (26 * 5) + 200 = 330
Total BGP data on wire = 330 * 300k = ~99MB Total BGP data on wire = 330 * 300k = ~99MB
No-packing case (1 route per update message) No-packing case (1 route per update message)
size of update message = 26 + 200 = 226 size of update message = 26 + 200 = 226
Total BGP data on wire = 226 * 1.5 million = ~339MB Total BGP data on wire = 226 * 1.5 million = ~339MB
SAFI 128 8277 style encoding with label in NLRI SAFI 128 8277 style encoding with label in NLRI
Each NLRI size for AFI 1 = 13(key) + 3(label) = 16 bytes Each NLRI size for AFI 1 = 13(key) + 3(label) = 16 bytes
Ideal packing Ideal packing:
Not supported as label index is encoded in Prefix-SID Not supported as label index is encoded in Prefix-SID
Attribute attribute
Practical packing (5 routes in update message) Practical packing (5 routes in update message):
Not supported as label index is encoded in Prefix-SID Not supported as label index is encoded in Prefix-SID
Attribute attribute
No-packing case (1 route per update message) No-packing case (1 route per update message):
size of update message = 16 + 210 = 226 size of update message = 16 + 210 = 226
Total BGP data on wire = 216 * 1.5 million = ~339MB Total BGP data on wire = 216 * 1.5 million = ~339MB
CASE C: BGP data exchanged with 128 bit single SRv6 SID CASE C: BGP data exchanged with 128 bit single SRv6 SID:
Consider 200 bytes of shared attributes Consider 200 bytes of shared attributes
CAR SAFI signal Label in non-key TLV part of NLRI CAR SAFI signal Label in non-key TLV part of NLRI
Each NLRI size for AFI 1 = 12(key) + 18(Srv6 SID) = 30 bytes Each NLRI size for AFI 1 = 12(key) + 18(Srv6 SID) = 30 bytes
Ideal packing: Ideal packing:
number of NLRIs in 4k update size = 126 (4k-200/30) number of NLRIs in 4k update size = 126 (4k-200/30)
number of update messages of 4k size = 1.5 million/126 = ~12k number of update messages of 4k size = 1.5 million/126 = ~12k
Total BGP data on wire = 12k * 4k = ~49MB Total BGP data on wire = 12k * 4k = ~49MB
Practical packing (5 routes in update message) Practical packing (5 routes in update message):
size of update message size of update message
= (30 * 5) + 236 (including Prefix SID) = 386 = (30 * 5) + 236 (including Prefix-SID) = 386
Total BGP data on wire = 386 * 300k = ~115MB Total BGP data on wire = 386 * 300k = ~115MB
No-packing case (1 route per update message) No-packing case (1 route per update message):
size of update message = 12 + 236 (SID in Prefix SID) = 252 size of update message = 12 + 236 (SID in Prefix-SID) = 252
Total BGP data on wire = 252 * 1.5 million = ~378MB Total BGP data on wire = 252 * 1.5 million = ~378MB
SAFI 128 8277 style encoding with label in NLRI (No transposition) SAFI 128 8277 style encoding with label in NLRI (No transposition)
Each NLRI size for AFI 1 = 13(key) + 3(label) = 16 bytes Each NLRI size for AFI 1 = 13(key) + 3(label) = 16 bytes
Ideal packing Ideal packing:
Not supported as label index is encoded in Prefix-SID Not supported as label index is encoded in Prefix-SID
Attribute attribute
Practical packing (5 routes in update message) Practical packing (5 routes in update message):
Not supported as label index is encoded in Prefix-SID Not supported as label index is encoded in Prefix-SID
Attribute attribute
No-packing case (1 route per update message) No-packing case (1 route per update message):
size of update message = 16 + 236 = 252 size of update message = 16 + 236 = 252
Total BGP data on wire = 252 * 1.5 million = ~378MB Total BGP data on wire = 252 * 1.5 million = ~378MB
BGP data exchanged with SRv6 SID 4 bytes transposition into SRv6 SID BGP data exchanged with SRv6 SID 4 bytes transposition into SRv6 SID
TLV TLV:
Consider 200 bytes of shared attributes Consider 200 bytes of shared attributes
CAR SAFI signal Label in non-key TLV part of NLRI CAR SAFI signal Label in non-key TLV part of NLRI
Each NLRI size for AFI 1 = 12(key) + 6(Srv6 SID) = 18 bytes Each NLRI size for AFI 1 = 12(key) + 6(Srv6 SID) = 18 bytes
Ideal packing: Ideal packing:
number of NLRIs in 4k update size = 211 (4k-200/18) number of NLRIs in 4k update size = 211 (4k-200/18)
number of update messages of 4k size = 1.5 million/211 = ~7110 number of update messages of 4k size = 1.5 million/211 = ~7110
Total BGP data on wire = 7110 * 4k = ~29MB Total BGP data on wire = 7110 * 4k = ~29MB
Practical packing (5 routes in update message) Practical packing (5 routes in update message):
size of update message size of update message
= (18 * 5) + 236 (including Prefix SID) = 326 = (18 * 5) + 236 (including Prefix-SID) = 326
Total BGP data on wire = 326 * 300k = ~98MB Total BGP data on wire = 326 * 300k = ~98MB
No-packing case (1 route per update message) No-packing case (1 route per update message):
size of update message size of update message
= 12 + 236 (SID in Prefix-SID Attribute) = 252 = 12 + 236 (SID in Prefix-SID attribute) = 252
Total BGP data on wire = 252 * 1.5 million = ~378MB Total BGP data on wire = 252 * 1.5 million = ~378MB
Acknowledgements
The authors would like to acknowledge the invaluable contributions of
many collaborators towards the BGP CAR solution and this document in
providing input about use cases, participating in brainstorming and
mailing list discussions and in reviews of the solution and draft
revisions. In addition to the contributors listed in the
Contributors section, the authors would like to thank Robert Raszuk,
Bin Wen, Chaitanya Yadlapalli, Satoru Matsushima, Moses Nagarajah,
Gyan Mishra, Jorge Rabadan, Daniel Voyer, Stephane Litkowski, Hannes
Gredler, Jose Liste, Jakub Horn, Brent Foster, Dave Smith, Jiri
Chaloupka, Miya Kohno, Kamran Raza, Zafar Ali, Xing Jiang, Oleksander
Nestorov, Peter Psenak, Kaliraj Vairavakkalai, Natrajan Venkataraman,
Srihari Sangli, Ran Chen, and Jingrong Xie.
The authors also appreciate the detailed reviews and astute
suggestions provided by Sue Hares (as document shepherd), Jeff Haas,
Yingzhen Qu, and John Scudder that have greatly improved the
document.
Contributors
The following people gave substantial contributions to the content of
this document and should be considered as coauthors:
Clarence Filsfils
Cisco Systems
Belgium
Email: cfilsfil@cisco.com
Bruno Decraene
Orange
France
Email: bruno.decraene@orange.com
Luay Jalil
Verizon
United States of America
Email: luay.jalil@verizon.com
Yuanchao Su
Alibaba, Inc
Email: yitai.syc@alibaba-inc.com
Jim Uttaro
Individual
United States of America
Email: juttaro@ieee.org
Jim Guichard
Futurewei
United States of America
Email: james.n.guichard@futurewei.com
Ketan Talaulikar
Cisco Systems
India
Email: ketant.ietf@gmail.com
Keyur Patel
Arrcus, Inc
United States of America
Email: keyur@arrcus.com
Haibo Wang
Huawei Technologies
China
Email: rainsword.wang@huawei.com
Jie Dong
Huawei Technologies
China
Email: jie.dong@huawei.com
Additional contributors:
Dirk Steinberg
Lapishills Consulting Limited
Germany
Email: dirk@lapishills.com
Israel Means
AT&T
United States of America
Email: im8327@att.com
Reza Rokui
Ciena
United States of America
Email: rrokui@ciena.com
Authors' Addresses Authors' Addresses
Dhananjaya Rao (editor) Dhananjaya Rao (editor)
Cisco Systems Cisco Systems
United States of America United States of America
Email: dhrao@cisco.com Email: dhrao@cisco.com
Swadesh Agrawal (editor) Swadesh Agrawal (editor)
Cisco Systems Cisco Systems
United States of America United States of America
Email: swaagraw@cisco.com Email: swaagraw@cisco.com
 End of changes. 531 change blocks. 
1253 lines changed or deleted 1319 lines changed or added

This html diff was produced by rfcdiff 1.48.