Internet DRAFT - draft-haas-idr-bgp-diffract

draft-haas-idr-bgp-diffract







IDR                                                              J. Haas
Internet-Draft                                          Juniper Networks
Intended status: Informational                            19 August 2022
Expires: 20 February 2023


         Interoperability Procedures for BGP Routes with Color
                     draft-haas-idr-bgp-diffract-00

Abstract

   "BGP Routes with Color" have become a topic of interest in the IDR
   Working Group.  The authors of the various proposals have many things
   in mind to solve with them, how a color might be used, and the
   operational model for their solution.  In general, the solutions
   share some core properties: Routes for an IP endpoint, that have a
   domain-wide semantic element to differentiate forwarding (often
   called a color), and appropriate state to enable that differentiated
   forwarding.

   Examples of the technologies enabling differentiated forwarding
   include MPLS and Segment Routing.

   This document examines two of the current proposals - BGP Color-Aware
   Routing, and BGP Classful Transport - and proposes mechanisms to
   permit them to interoperate.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   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
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on 20 February 2023.

Copyright Notice

   Copyright (c) 2022 IETF Trust and the persons identified as the
   document authors.  All rights reserved.



Haas                    Expires 20 February 2023                [Page 1]

Internet-Draft         draft-haas-idr-bgp-diffract           August 2022


   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents (https://trustee.ietf.org/
   license-info) in effect on the date of publication of this document.
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.  Code Components
   extracted from this document must include Revised BSD License text as
   described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Revised BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
     1.1.  Requirements Language . . . . . . . . . . . . . . . . . .   3
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   3
   3.  Overview  . . . . . . . . . . . . . . . . . . . . . . . . . .   4
   4.  Color-Aware Routes Protocol Elements  . . . . . . . . . . . .   5
     4.1.  CAR Protocol Elements Diagrams  . . . . . . . . . . . . .   5
     4.2.  CAR Protocol Elements . . . . . . . . . . . . . . . . . .   5
   5.  Classful Transport Protocol Elements  . . . . . . . . . . . .   6
     5.1.  Classful Transport Protocol Elements Diagrams . . . . . .   6
     5.2.  Classful Transport Protocol Elements  . . . . . . . . . .   6
   6.  Mapping NLRI keys: CAR Color, CT Route Distinguisher  . . . .   7
     6.1.  RD-Color Route Distinguisher Format . . . . . . . . . . .   7
     6.2.  Classful Transport Original RD Extended Community . . . .   8
     6.3.  Classful Transport Original Intent Extended Community . .   8
     6.4.  CAR-mapped-CT mapping procedures  . . . . . . . . . . . .   9
     6.5.  CAR-mapped-CT unmapping procedures  . . . . . . . . . . .   9
     6.6.  CT-mapped-CAR mapping procedures  . . . . . . . . . . . .  10
     6.7.  CT-mapped-CAR unmapping procedures  . . . . . . . . . . .  10
   7.  Mapping Forwarding State  . . . . . . . . . . . . . . . . . .  10
     7.1.  Mapping CAR Route Forwarding State into CT-mapped-CAR
           routes  . . . . . . . . . . . . . . . . . . . . . . . . .  10
     7.2.  Mapping VPN CAR Routes into CT  . . . . . . . . . . . . .  11
     7.3.  Mapping CT Route Forwarding State into CAR-mapped-CT
           routes  . . . . . . . . . . . . . . . . . . . . . . . . .  11
     7.4.  Mapping CT Routes into VPN CAR  . . . . . . . . . . . . .  11
     7.5.  Miscellany  . . . . . . . . . . . . . . . . . . . . . . .  11
   8.  BGP Decision Process and Route Resolution Considerations  . .  12
   9.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  12
   10. Security Considerations . . . . . . . . . . . . . . . . . . .  13
   11. References  . . . . . . . . . . . . . . . . . . . . . . . . .  13
     11.1.  Normative References . . . . . . . . . . . . . . . . . .  13
     11.2.  Informative References . . . . . . . . . . . . . . . . .  14
   Appendix A.  Acknowledgements . . . . . . . . . . . . . . . . . .  14
   Appendix B.  Contributors . . . . . . . . . . . . . . . . . . . .  14
   Appendix C.  Example NLRI Mapping . . . . . . . . . . . . . . . .  15
     C.1.  Mapping a BGP-CT route into BGP-CAR . . . . . . . . . . .  15
     C.2.  Mapping a BGP-CAR route into BGP-CT . . . . . . . . . . .  17



Haas                    Expires 20 February 2023                [Page 2]

Internet-Draft         draft-haas-idr-bgp-diffract           August 2022


   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .  19

1.  Introduction

   Introductory text

1.1.  Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

2.  Terminology

   Color:
      A value, typically a 32 bit unsigned integer, associated with a
      forwarding behavior.  In -CT, analogous to a Transport-Class.

   Color Domain:
      One or more networks managed by a given entity wherein the color
      values have a specific defined forwarding behavior.  Primarily
      used to contrast between scenarios where the same color's value
      may carry a different forwarding behavior.

   Effective Color:
      When more than one protocol element for a BGP route can contain a
      property that gives the route a color, the Effective Color is what
      color the route is for purposes of route resolution within the
      procedures for that protocol extension.

   Endpoint:
      Terminal address for a route with color; typically a loopback.

   Forwarding behavior:
      Transport of IP or other traffic to an endpoint with specific
      properties that may include quality of service, steering over
      specific paths, latency properties, encapsulation, etc.

   NLRI key
      Properties of the BGP route with color's BGP NLRI that are used in
      BGP's Decision Process.








Haas                    Expires 20 February 2023                [Page 3]

Internet-Draft         draft-haas-idr-bgp-diffract           August 2022


   Resolution key
      Properties of the BGP route with color that contribute to route
      resolution.  This is typically resolving a given Endpoint for a
      specific Effective Color.  This differentiates that even though
      the NLRI key may stay the same, the resolution key may change.
      See, for example, the Local-Color-Mapping mechanism for BGP-CAR.

3.  Overview

   The forwarding behaviors covered by routes for both the BGP-CAR
   [I-D.dskc-bess-bgp-car] and BGP-CT
   [I-D.kaliraj-idr-bgp-classful-transport-planes] proposals can largely
   be mapped from one mechanism to the other mechanism.  BGP-CT utilizes
   encodings used in existing RFCs for the cited features typically for
   BGP Labeled-Unicast routes.  BGP-CAR provides optimizations against
   those RFCs to attempt to enable better NLRI packing within a BGP
   Update message.

   BGP-CAR expects to carry portions of its forwarding behavior in non-
   key NLRI fields.

   The procedures for mapping forwarding state from one mechanism to
   another is covered in Section 7.

   BGP NLRI carry reachability that is expected to be exchanged across
   Autonomous Systems with consistent semantics for route selection.  A
   core differentiation between BGP-CAR and BGP-CT is what contents are
   carried in their NLRI keys, and operationally how this is intended to
   be used for distributing routes with color.

   BGP-CAR expects to distribute NLRI keys for a given end-point for a
   given color.  BGP-CT expects to distribute NLRI keys for a given end-
   point carrying a Route Distinguisher.  If it is desired to pass
   routes from one mechanism into another mechanism, it is necessary to
   provide a mapping mechanism.

   This document introduces the idea of the "CAR-mapped-CT" route and
   the "CT-mapped-CAR" route wherein a BGP route of the appropriate AFI/
   SAFI carries the state of the other route in such a way that it can
   be locally utilized.  It also provides procedures for "unmapping"
   such mapped routes to restore them to their native AFI/SAFI when re-
   entering the native domain.

   Section 6 discusses the general mapping procedures.  Section 6.4
   discusses mapping BGP-CT routes into BGP-CAR routes.  Section 6.6
   discusses mapping BGP-CAR routes into BGP-CT routes.





Haas                    Expires 20 February 2023                [Page 4]

Internet-Draft         draft-haas-idr-bgp-diffract           August 2022


4.  Color-Aware Routes Protocol Elements

4.1.  CAR Protocol Elements Diagrams

      Color-Aware Routes NLRI Type (-car-05, section 2.9.2):

       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  NLRI Length  |  Key Length   |   NLRI Type   |Prefix Length  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |               IP Prefix (variable)                           //
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |               Color (4 octets)                                |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Followed by optional TLVs encoded as below:

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     Type      |    Length     |    Value (variable)          //
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Local Color Map (LCM) Extended Community (-car-05, section 2.9.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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     Type=0x3  | Sub-Type=TBD2 |          Reserved             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                             Color                             |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

4.2.  CAR Protocol Elements

   NLRI Key:
      (IP Prefix, Color)

   Endpoint:
      IP Prefix

   Effective Color:
      Color from NLRI, or LCM Color when LCM is present.  The default
      scenario for CAR is that the color is carried in the NLRI and only
      set in the LCM in multi-color-domain scenarios.

   Resolution Key:
      (BGP Nexthop, Effective Color)





Haas                    Expires 20 February 2023                [Page 5]

Internet-Draft         draft-haas-idr-bgp-diffract           August 2022


   Forwarding:
      *  [RFC8277] Label Stack (optional TLV type 1)

      *  [RFC8402] SR-MPLS Label Index (optional TLV type 2, possibly
         with [RFC8669] Prefix-SID)

      *  [RFC9252] SRv6 SIDs either single or multiple full-length SRv6
         SIDs or transposition SIDs (optional TLV type 3 plus [RFC9252]
         Prefix SID)

5.  Classful Transport Protocol Elements

5.1.  Classful Transport Protocol Elements Diagrams

    Classful Transport NLRI (-ct-17, section 7):

     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    Length     |                 Label                 |Rsrv |S|
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ~                     Route Distinguisher (8 bytes)             |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                     IPv4/IPv6 Prefix                          ~
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    Transport Class Extended Community (-ct-17, section 4):

     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   Type= 0xa   | SubType= 0x02 |            Reserved           |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                     Transport Class ID                        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

5.2.  Classful Transport Protocol Elements

   NLRI Key:
      (Route Distinguisher, IPv4/IPv6 Prefix)

   Endpoint:
      IPv4/IPv6 Prefix

   Effective Color:
      Transport Class ID



Haas                    Expires 20 February 2023                [Page 6]

Internet-Draft         draft-haas-idr-bgp-diffract           August 2022


   Resolution Key:
      (BGP Nexthop, Effective Color)

   Forwarding:
      *  [RFC8277] Label Stack (NLRI Labels)

      *  [RFC8669] Prefix SID (NLRI Labels + Prefix SID Path Attribute)

      *  [RFC9252] SRv6 SIDs, excluding transposition procedures.  The
         Label field MAY contain a locally assigned label corresponding
         to the SRv6 forwarding, or may contain the distinguished value
         (XXX) indicating that no local label binding is in effect.

6.  Mapping NLRI keys: CAR Color, CT Route Distinguisher

   To carry routes from one protocol across BGP Speakers using the other
   protocol, NLRI key mapping operations must be carried out
   consistently.  Mapped NLRI keys MUST be able to be "unmapped" to the
   original native NLRI key.  This, along with preserving BGP route loop
   prevention mechanisms, permits consistent route selection across
   deployments.

   The NLRI key elements for both CAR and CT include the IP Prefix for
   the endpoint.  However, each protocol differs on the additional key
   carried in the NLRI to identify the route and its forwarding
   behavior.

   For CAR, the additional key is the Color of the route, and the
   original intent for that route.  In the absence of the Local Color
   Map (LCM) Extended Community, this Color is also the route's
   Effective Color.

   For CT, the additional key is a Route Distinguisher with similar
   semantics to those used in BGP VPNs ([RFC4364], and others).  It
   serves two purposes: Providing administrative information about the
   source of the route with a set of cooperating networks; providing the
   ability to allow the same endpoint to be originated from the same BGP
   Speaker with differing forwarding behaviors that are to be preserved
   end-to-end within the cooperating networks.  CT doesn't encode any
   information about the route's Color or intent in the NLRI.

   The procedures below describe CAR-mapped-CT routes and CT-mapped-CAR
   routes.  New BGP protocol elements are defined to provide these
   mapping capabilities.

6.1.  RD-Color Route Distinguisher Format





Haas                    Expires 20 February 2023                [Page 7]

Internet-Draft         draft-haas-idr-bgp-diffract           August 2022


      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |       Type = TBD (2 octets)   |        Color (4 octets)       |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |         Color continued       |   Assigned Number (2 octets)  |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                RD-Color Route Distinguisher Format

   To carry the CAR Color NLRI key element in a CT-mapped-CAR route,
   this document create the RD-Color Route Distinguisher.  Its Type is
   TBD and should be assigned from IANA's Route Distinguisher Type Field
   registry from the IETF Review range.

   The format of the RD-Color Route Distinguisher is a four-octet
   Administrator subfield containing the Color, followed by a two-octet
   Assigned Number subfield.

6.2.  Classful Transport Original RD Extended Community

     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   Type= 0x03  | SubType= TBD  |        Value (6 octets)       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                      Value continued                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

           Classful Transport Original RD Extended Community

   To permit CAR-mapped-CT routes to restore the original Route
   Distinguisher during unmapping, it is necessary to carry the original
   Route Distinguisher in the route CAR-mapped-CT route.  To do so, a
   new BGP Extended Community is defined: the Classful Transport
   Original RD (CTORD) Extended Community.

   The Classful Transport Original RD Extended Community should be
   allocated from the Transitive Opaque Extended Community Sub-Types
   registry (Type 0x03) with a sub-type TBD.  Its value field will
   contain the CT Route Distinguisher that is to be carried in the CAR-
   mapped-CT route.

6.3.  Classful Transport Original Intent Extended Community







Haas                    Expires 20 February 2023                [Page 8]

Internet-Draft         draft-haas-idr-bgp-diffract           August 2022


     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   Type= 0x0a  | SubType= TBD  |     RESERVED (2 octets)       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                Transport Class ID (4 octets)                  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

         Classful Transport Original Intent Extended Community

   To permit retention of the "original intent" for the CT route's
   Transport Color when carried in a CAR-mapped-CT route and CAR
   procedural purposes, a new Extended Community is defined: The
   Classful Transport Original Intent (CTOI) Extended Community.

   This Extended Community should be allocated from the Transport Class
   Extended Communities Sub-Types registry (Type 0x0a) with a sub-type
   TBD.  Its contents will be identical to the Transport Class Extended
   Community defined in -ct, Section 4: Two octets of RESERVED field,
   four octets for Transport Class ID.

6.4.  CAR-mapped-CT mapping procedures

   The need to be able to consistently map a CAR Color to a CT Route
   Distinguisher provides a challenge to the CT operational model.
   Since the originating router for the CAR route is not carried as part
   the CAR protocol procedures, there isn't clear information that could
   be utilized to consistently populate the Route Distinguisher.

   If no Classful Transport Original Intent Extended Community exists,
   the CT route's Transport Class ID is added to a newly created CTOI
   Extended Community, and this value is used for the CAR-mapped-CT
   route's Color NLRI key.

   If a CTOI Extended Community is already present in the CAR route,
   indicating that this route has been previously been mapped and then
   unmapped, the value from that CTOI Extended Community is used for the
   CAR-mapped-CT route's Color NLRI key.

   The CT route's Route Distinguisher is carried in the Classful
   Transport Original RD Extended Community in the newly created CAR-
   mapped-CT route.

6.5.  CAR-mapped-CT unmapping procedures

   The CT route's Route Distinguisher is set from the Classful Transport
   Original RD Extended Community.  This Extended Community is then
   deleted.



Haas                    Expires 20 February 2023                [Page 9]

Internet-Draft         draft-haas-idr-bgp-diffract           August 2022


   The CT route's Transport Class Transport Class ID Extended Community
   value is set to the value from the CAR-mapped-CT route's RD-Color
   Administrator subfield.

   The CT route's Classful Transport Original Intent Community is
   retained from the CAR-mapped-CT route.  This permits consistent CAR-
   mapped-CT NLRI Color mapping in the event of further redistribution
   between CT and CAR domains.

6.6.  CT-mapped-CAR mapping procedures

   The CT-mapped-CAR's Route Distinguisher uses the RD-Color format and
   contains the CAR route's NLRI Color in the Administrator field.  It
   is RECOMMENDED that the RD-Color Assigned number subfield is set to
   zero.

   If a CAR Local-Color-Mapping (LCM) Extended Community is present on
   the CAR route, that community's Color value is the Effective Color of
   the CAR route.  Otherwise, the Effective Color is the value of the
   NLRI's Color field.  The LCM Extended Community deleted, if present.

   A Transport Class Extended Community is set on the CT-mapped-CAR's
   route with the Transport Class ID being assigned the Effective Color,
   determined above.

6.7.  CT-mapped-CAR unmapping procedures

   The CAR route's NLRI Color field is set from the RD-Color
   Administrator subfield.

   If the Transport Class ID for the CT-mapped-CAR route is different
   from the value used for the NLRI Color, above, a Local-Color-Mapping
   Extended Community is added to the CAR route using the Transport
   Class ID value.

   The Transport Class Extended Community is deleted.

7.  Mapping Forwarding State

7.1.  Mapping CAR Route Forwarding State into CT-mapped-CAR routes

   *  For [RFC8277] Label Stacks, the CAR Label TLVs will be carried in
      the CT NLRI Labels








Haas                    Expires 20 February 2023               [Page 10]

Internet-Draft         draft-haas-idr-bgp-diffract           August 2022


   *  For [RFC8669] Label Index TLVs, an [RFC8669] Prefix-SID is created
      with the Label Index set to the value from the CAR optional NLRI's
      Label Index and the Flags are similarly copied.  If the CAR route
      contains a Prefix-SID SRGB, it is similarly copied.  The CT Label
      MAY be initialized with the value of the label derived from the
      Prefix SID, but this is a local matter.

   *  For [RFC9252] SRv6 SIDs, CT does not utilize the transposition
      scheme documented in [RFC9252], Section 4.  Instead, the whole
      SRv6 SID should be encoded in the SRv6 Service Data Sub-Sub-TLV.
      (Transposition length 0.)  The CT Label MAY carry a locally
      assigned label covering this forwarding state, however it may also
      carry the distinguished label (XXX) indicating that no label
      mapping has been assigned.  (XXX needs ref in updated CT doc.)

7.2.  Mapping VPN CAR Routes into CT

   XXX

7.3.  Mapping CT Route Forwarding State into CAR-mapped-CT routes

   *  For the simple label stack scenario for CT (no Prefix-SID Path
      Attribute), the CT Label Stack is carried in the Type 1 Label TLV.
      (-car, Section 2.9.2.1).

   *  For [RFC8669] Label Index TLVs, when an [RFC8669] Prefix-SID Path
      Attribute excluding the SRv6 Service TLVs is present, the Prefix-
      SID Path Attribute, if present, MAY be copied if the SRGB is
      identical to local configuration.  The CAR Type 2 Label Index TLV
      (-car, Section 2.9.2.2) is initialized with the contents of the CT
      Prefix-SID's Label-Index TLV.

   *  For [RFC9252] SRv6 SIDs, the CAR Type 3 SRv6 SID TLV (-car,
      Section 2.9.2.3) is initialized from the CT's SRv6 SIDs carried in
      the Prefix-SID Path Attribute.  The transposition scheme encoding
      SHOULD be used, when possible.

7.4.  Mapping CT Routes into VPN CAR

   XXX

7.5.  Miscellany

   The CAR type specific non-key transitivity field is not directly
   mapped into CT routes.






Haas                    Expires 20 February 2023               [Page 11]

Internet-Draft         draft-haas-idr-bgp-diffract           August 2022


   The CAR type specific non-key fields currently specify a set of
   forwarding behaviors.  The handling of all combinations of forwarding
   behaviors for currently specified types is not fully described in the
   latest CAR document.

8.  BGP Decision Process and Route Resolution Considerations

   The sections above describe how BGP routes with color can be mapped
   from one form to the other form.  BGP implementations that implement
   both mechanisms can receive routes from both.  The purpose of the
   mapping mechanisms above is to attempt to preserve route
   comparability across mapped NLRI.

   The core desired behavior for these mechanisms is to permit BGP
   service routes that have a color mapping mechanism to resolve their
   BGP Nexthops over endpoints for that color.  In particular, both
   mechanisms perform a longest-match lookup for the Endpoint over the
   resolution state for a particular color.  These resolution mechanisms
   may implement specific fall-back procedures.  However, a given
   deployment of one or both of these mechanisms will desire consistent
   route selection and nexthop resolution regardless of the source of
   the resolving state.

   On BGP Speakers participating in both mechanisms, operators SHOULD
   chose one of the two mechanisms to generate the BGP route resolution
   state for those protocols.  The mapping mechanisms permit BGP routes
   received across the different mechanisms to be able to tie-break in a
   single RIB according to the properties of the routes within that RIB.
   The choice of the mapping mechanism would likely be based on the
   desired overall deployment model for routes with color and the
   underlying comparability of the routes as they are distributed across
   the cooperating networks.

   The chosen RIB on that BGP Speaker would then be used to create the
   route resolution state for BGP routes with color for that device.

9.  IANA Considerations

   IANA is requested to allocate a Route Distinguisher from the Route
   Distinguisher Type Field registry from the IETF Review range.  The
   Description should be "RD-Color, Administrator field is a four-byte
   Color, Assigned value field is a two-byte integer".  The reference
   should be this document.

   IANA is requested to allocate a BGP Extended Community from the
   Transitive Opaque Extended Community Sub-Types registry.  Its name
   will be "Classful Transport Original RD".  The reference should be
   this document.



Haas                    Expires 20 February 2023               [Page 12]

Internet-Draft         draft-haas-idr-bgp-diffract           August 2022


   IANA is requested to allocate a BGP Extended Community from the
   Transport Class Extended Communities Sub-Types registry.  Its Name
   will be "Classful Transport Original RD".  The reference should be
   this document.

10.  Security Considerations

   The BGP transport route use cases for "BGP routes with color" largely
   overlap those for the original BGP Labeled Unicast protocol
   extension.  ([RFC8277]) Such routes are traditionally only accepted
   from trusted BGP Speakers that exist within a BGP transport domain.

   This document defines procedures for BGP Speakers implementing both
   the BGP-CAR and BGP-CT address families to mutually exchange routing
   information.  Some of these procedures utilize BGP Extended
   Communities.  Care should be taken to not accept routes with Extended
   Communities with mapping semantics from parties not eligible to
   participate in these procedures.  Such care may include filtering, or
   discarding reachability with such Extened Communities from
   unauthorized parties.

11.  References

11.1.  Normative References

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

   [RFC8277]  Rosen, E., "Using BGP to Bind MPLS Labels to Address
              Prefixes", RFC 8277, DOI 10.17487/RFC8277, October 2017,
              <https://www.rfc-editor.org/info/rfc8277>.

   [RFC8669]  Previdi, S., Filsfils, C., Lindem, A., Ed., Sreekantiah,
              A., and H. Gredler, "Segment Routing Prefix Segment
              Identifier Extensions for BGP", RFC 8669,
              DOI 10.17487/RFC8669, December 2019,
              <https://www.rfc-editor.org/info/rfc8669>.

   [RFC9252]  Dawra, G., Ed., Talaulikar, K., Ed., Raszuk, R., Decraene,
              B., Zhuang, S., and J. Rabadan, "BGP Overlay Services
              Based on Segment Routing over IPv6 (SRv6)", RFC 9252,
              DOI 10.17487/RFC9252, July 2022,
              <https://www.rfc-editor.org/info/rfc9252>.

   [I-D.dskc-bess-bgp-car]
              Rao, D., Agrawal, S., Filsfils, C., Steinberg, D., Jalil,
              L., Su, Y., Decraene, B., Guichard, J., Talaulikar, K.,



Haas                    Expires 20 February 2023               [Page 13]

Internet-Draft         draft-haas-idr-bgp-diffract           August 2022


              Patel, K., Wang, H., and J. Uttaro, "BGP Color-Aware
              Routing (CAR)", Work in Progress, Internet-Draft, draft-
              dskc-bess-bgp-car-05, 6 July 2022,
              <https://www.ietf.org/archive/id/draft-dskc-bess-bgp-car-
              05.txt>.

   [I-D.kaliraj-idr-bgp-classful-transport-planes]
              Vairavakkalai, K., Venkataraman, N., Rajagopalan, B.,
              Mishra, G., Khaddam, M., Xu, X., Szarecki, R. J., Gowda,
              D. J., Yadlapalli, C., and I. Means, "BGP Classful
              Transport Planes", Work in Progress, Internet-Draft,
              draft-kaliraj-idr-bgp-classful-transport-planes-17, 30
              June 2022, <https://www.ietf.org/archive/id/draft-kaliraj-
              idr-bgp-classful-transport-planes-17.txt>.

11.2.  Informative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC4360]  Sangli, S., Tappan, D., and Y. Rekhter, "BGP Extended
              Communities Attribute", RFC 4360, DOI 10.17487/RFC4360,
              February 2006, <https://www.rfc-editor.org/info/rfc4360>.

   [RFC4364]  Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private
              Networks (VPNs)", RFC 4364, DOI 10.17487/RFC4364, February
              2006, <https://www.rfc-editor.org/info/rfc4364>.

   [RFC8402]  Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L.,
              Decraene, B., Litkowski, S., and R. Shakir, "Segment
              Routing Architecture", RFC 8402, DOI 10.17487/RFC8402,
              July 2018, <https://www.rfc-editor.org/info/rfc8402>.

Appendix A.  Acknowledgements

   TBD

Appendix B.  Contributors

   TBD









Haas                    Expires 20 February 2023               [Page 14]

Internet-Draft         draft-haas-idr-bgp-diffract           August 2022


Appendix C.  Example NLRI Mapping

C.1.  Mapping a BGP-CT route into BGP-CAR

   Input:

   *  Route Distinguisher 192.0.2.1:100
   *  Endpoint: 10.0.0.1/32
   *  Label: 100
   *  Color: 999

   BGP-CT state:

     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    Length     |                 Label                 |Rsrv |S|
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ~                     Route Distinguisher (8 bytes)             |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                     IPv4/IPv6 Prefix                          ~
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    BGP-CT NLRI (AFI=1, SAFI=76)

    Length: 0x98 (152 bits)
    Label:  0x00 0x00 0x64 (100)
    Rsrv:   0x00 (0)
    S:      0x01 (1)
    Route Distinguisher: 0x00 0x01 0xc0 0x00 0x02 0x01 0x00 0x64
                         (Type 1, 192.0.2.1 : 100)
    IPv4/IPv6 Prefix: 0x20 0x0a 0x00 0x00 0x01 (32 / 10.0.0.1)

     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   Type= 0xa   | SubType= 0x02 |            Reserved           |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                     Transport Class ID                        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    Transport Class Extended Community:

    Type:     0x0a
    SubType:  0x02
    Reserved: 0x00 0x00
    Transport Class ID: 0x00 0x00 0x03 0xe7 (999)



Haas                    Expires 20 February 2023               [Page 15]

Internet-Draft         draft-haas-idr-bgp-diffract           August 2022


   Output:

   *  NLRI Type: 1
   *  Prefix Length: 32
   *  IP Prefix: 10.0.0.1
   *  Color: 999
   *  Label TLV:
      -  Type: 1
      -  Length: 3
      -  Value: 100
   *  CTOI Extended Community: 999
   *  CTORD Extended Community: 192.0.2.1:100

     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  NLRI Length  |  Key Length   |   NLRI Type   |Prefix Length  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |               IP Prefix (variable)                           //
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |               Color (4 octets)                                |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    CAR NLRI (AFI=1, SAFI=83):

    NLRI Length:   0x10 (16 octets)
    Key Length:    0x09 (9 octets)
    NLRI Type:     0x01 (Color-Aware Routes NLRI Type)
    Prefix Length: 0x20 (32)
    IP Prefix:     0x0a 0x00 0x00 0x01 (10.0.0.1)
    Color:         0x00 0x00 0x03 0xe7 (999)


    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |     Type      |    Length     |    Value (variable)          //
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    Label TLV:

    Type:   0x01 (Label TLV)
    Length: 0x03 (3)
    Label:  0x00 0x00 0x64 (100)

     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   Type= 0x0a  | SubType= TBD  |     RESERVED (2 octets)       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



Haas                    Expires 20 February 2023               [Page 16]

Internet-Draft         draft-haas-idr-bgp-diffract           August 2022


    |                Transport Class ID (4 octets)                  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    Classful Transport Original Intent Extended Community:

    Type: 0x0a
    SubType: TBD
    RESERVED: 0x00 0x000
    Transport Class ID: 0x00 0x00 0x03 0xe7 (999)

     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   Type= 0x03  | SubType= TBD  |        Value (6 octets)       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                      Value continued                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    Classful Transport Original RD Extended Community:

    Type:    0x03
    SubType: TBD
    Value:   0x00 0x01 0xc0 0x00 0x02 0x01 0x00 0x64
             (Type 1, 192.0.2.1 : 100)

C.2.  Mapping a BGP-CAR route into BGP-CT

   Input:

   *  NLRI Type: 1
   *  Prefix Length: 32
   *  IP Prefix: 10.0.0.1
   *  Color: 999
   *  Label TLV:
      -  Type: 1
      -  Length: 3
      -  Value: 100














Haas                    Expires 20 February 2023               [Page 17]

Internet-Draft         draft-haas-idr-bgp-diffract           August 2022


     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  NLRI Length  |  Key Length   |   NLRI Type   |Prefix Length  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |               IP Prefix (variable)                           //
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |               Color (4 octets)                                |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    CAR NLRI (AFI=1, SAFI=83):

    NLRI Length:   0x10 (16 octets)
    Key Length:    0x09 (9 octets)
    NLRI Type:     0x01 (Color-Aware Routes NLRI Type)
    Prefix Length: 0x20 (32)
    IP Prefix:     0x0a 0x00 0x00 0x01 (10.0.0.1)
    Color:         0x00 0x00 0x03 0xe7 (999)


    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |     Type      |    Length     |    Value (variable)          //
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    Label TLV:

    Type:   0x01 (Label TLV)
    Length: 0x03 (3)
    Label:  0x00 0x00 0x64 (100)

   Output:

   *  Route Distinguisher 192.0.2.1:100
   *  Endpoint: 10.0.0.1/32
   *  Label: 100
   *  Color: 999

   BGP-CT state:













Haas                    Expires 20 February 2023               [Page 18]

Internet-Draft         draft-haas-idr-bgp-diffract           August 2022


     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    Length     |                 Label                 |Rsrv |S|
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ~                     Route Distinguisher (8 bytes)             |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                     IPv4/IPv6 Prefix                          ~
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    BGP-CT NLRI (AFI=1, SAFI=76)

    Length: 0x98 (152 bits)
    Label:  0x00 0x00 0x64 (100)
    Rsrv:   0x00 (0)
    S:      0x01 (1)
    Route Distinguisher: 0xTBD 0xTBD 0x00 0x00 0x03 0xe7 0x00 0x00
                         (Type TBD - RD-Color, 999:0)
    IPv4/IPv6 Prefix: 0x20 0x0a 0x00 0x00 0x01 (32 / 10.0.0.1)

     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   Type= 0xa   | SubType= 0x02 |            Reserved           |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                     Transport Class ID                        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    Transport Class Extended Community:

    Type:     0x0a
    SubType:  0x02
    Reserved: 0x00 0x00
    Transport Class ID: 0x00 0x00 0x03 0xe7 (999)

Author's Address

   Jeffrey Haas
   Juniper Networks
   1133 Innovation Way
   Sunnyvale, CA 94089
   United States of America
   Email: jhaas@juniper.net







Haas                    Expires 20 February 2023               [Page 19]