<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="info" docName="draft-dskc-bess-bgp-car-problem-statement-04"
     ipr="trust200902">
  <front>
    <title abbrev="BGP CAR Problem Statement">BGP Color-Aware Routing Problem 
    Statement</title>
    
    <author fullname="Dhananjaya Rao" initials="D" surname="Rao">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street/>

          <country>USA</country>
        </postal>

        <email>dhrao@cisco.com</email>
      </address>
    </author>
    
    <author fullname="Swadesh Agrawal" initials="S" surname="Agrawal">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street/>

          <country>USA</country>
        </postal>

        <email>swaagraw@cisco.com</email>
      </address>
    </author>
    
    <author fullname="Clarence Filsfils" initials="C" surname="Filsfils">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street/>

          <country>Belgium</country>
        </postal>

        <email>cfilsfil@cisco.com</email>
      </address>
    </author>

    <author fullname="Ketan Talaulikar" initials="K" surname="Talaulikar">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country>India</country>
        </postal>

        <email>ketant@cisco.com</email>
      </address>
    </author>
    
    <author fullname="Bruno Decraene" initials="B" surname="Decraene">
      <organization>Orange</organization>

      <address>
        <postal>
          <street/>

          <country>France</country>
        </postal>

        <email>bruno.decraene@orange.com</email>
      </address>
    </author>

    <author fullname="Dirk Steinberg" initials="D" surname="Steinberg">
      <organization>Lapishills Consulting Limited</organization>

      <address>
        <postal>
          <street/>

          <country>Germany</country>
        </postal>

        <email>dirk@lapishills.com</email>
      </address>
    </author>

    <author fullname="Luay Jalil" initials="L" surname="Jalil">
      <organization>Verizon</organization>

      <address>
        <postal>
          <street/>

          <country>USA</country>
        </postal>

        <email>luay.jalil@verizon.com</email>
      </address>
    </author>

    <author fullname="Jim Guichard" initials="J" surname="Guichard">
      <organization>Futurewei</organization>

      <address>
        <postal>
          <street/>

          <country>USA</country>
        </postal>

        <email>james.n.guichard@futurewei.com</email>
      </address>
    </author>
    
    <author fullname="Keyur Patel" initials="K" surname="Patel">
      <organization>Arrcus, Inc</organization>

      <address>
        <postal>
          <street/>

          <country>USA</country>
        </postal>

        <email>keyur@arrcus.com</email>
      </address>
    </author>
    
    <author fullname="Wim Henderickx" initials="W" surname="Henderickx">
      <organization>Nokia</organization>

      <address>
        <postal>
          <street/>

          <country>Belgium</country>
        </postal>

        <email>wim.henderickx@nokia.com</email>
      </address>
    </author>

    <date/>

    <area>Routing</area>

    <workgroup>BESS WorkGroup</workgroup>

    <abstract>
      <t>This document explores the scope, use-cases and requirements for a BGP 
      based routing solution to establish end-to-end intent-aware paths across a 
      multi-domain service provider network environment.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="INTRO" title="Introduction">
      <section anchor="Objective" title="Objective">
        <t>This document explores the scope, use-cases and requirements for a 
        BGP based routing solution to establish end-to-end intent-aware 
        paths across a multi-domain service provider network environment.
        </t>
      
        <t>The targeted design outcome is to define the technology and protocol 
        extensions that may be required in a manner that addresses the widest 
        application.
        </t>

        <t>
        The problem that the document initially focuses on is the BGP-based
        delivery of an intent across several transport domains. To do this, it
        describes existing intent-aware routing solutions that are deployed
        and then extends the solution scope and architecture to BGP.
        </t>
        <t>
        The problem space is then widened to include any intent (including NFV
                chains and their location), any dataplane and the application
        of the intent-based routing to the Service/VPN routes.  All of this is
        detailed in the rest of the document.
        </t>
      </section>
      
      <section anchor="ColorAwareRouting" title="Color-Aware Routing">
        <t>
        Color-Aware Routing (CAR) establishes routed paths that satisfy
        specific intent in a network. This section describes the basic
        concepts that define CAR and the protocols that currently support it.
        </t>
        <t>
        The figure below is used as reference.
        </t>
        <figure anchor="REFERENCECAR" title="Color-aware routing reference
        topology"><artwork><![CDATA[                                       
              +-----------------------------------+
              |----+                         +----|
              | E1 |                         | E2 |- V/v with C 
              |----+                         +----| 
              +-----------------------------------+
          ]]></artwork>
        </figure>
        
        <section title="Intent">
          <t>
          Intent in routing may be any combination of the following behaviors:
          <list style="symbols">
          <t>
          Topology path selection (e.g. minimize metric, avoid resource)
          </t>
          <t>
          NFV service insertion (e.g. service chain steering)
          </t>
          <t>
          Per-hop behavior (e.g. QoS for 5G slice)
          </t>
          </list>
          </t>
          <t>
          An intent-aware routed path may be within a single network domain or
          across multiple domains.
          </t>
        </section>
        
        <section title="Color">
          <t>
          Color is a 32-bit numerical value that is associated with an intent,
          as defined in [I-D.ietf-spring-segment-routing-policy]
          </t>
        </section>
        
        <section title="Colored Service Route">
          <t>
          An Egress PE E2 colors a BGP service (e.g., VPN) route V/v to
          indicate the particular intent that E2 requests for the traffic
          bound to V/v. The color (C) is encoded as a BGP Color Extended
          community <xref target="I-D.ietf-idr-tunnel-encaps"/>.
          </t>
        </section>

        <section title="Color-Aware Route">
          <t>
          (E2, C) is a color-aware route to E2 which satisfies the intent
          associated with color C.
          </t>
          <t>
          Multiple technologies already provide color-aware paths in solutions
          that are widely deployed.
          <list style="symbols">
          <t>
          SR Policy [I-D.ietf-spring-segment-routing-policy]
          </t>
          <t>
          IGP Flex-Algo [I-D.ietf-lsr-flex-algo]
          </t>
          </list>
          </t>
          <t>
          In the context of large-scale SR-MPLS networks, SR Policy is applicable to 
          both intra-domain and inter-domain deployments; whereas IGP Flex-Algo is 
          better suited to intra-domain scenarios.
          </t>
        </section>
        
        <section title="Service Route Automated Steering on color-aware route ">
          <t>
          An ingress PE E1 automatically steers V-destined packets onto a
          Color-Aware path bound to (E2, C). If several such paths exist, a
          preference scheme is used to select the best path: E.g. IGP
          Flex-Algo first, then SR Policy.
          </t>
        </section>

        <section title="Inter-Domain color-aware routing with SR Policy">
          <t>
          If E1 and E2 are in different domains, E1 may request an SR-PCE in
          its domain for a path to (E2, C). The SR-PCE (or a set of them)
    computes the end-to-end path and installs it at E1 as an SR Policy. The
    end-to-end color-aware path may seamlessly cross multiple domains.
          </t>
        </section>

        <section title="Need for a BGP-based color-aware routing solution">
        <t>
          <list style="symbols">
          <t>An operator with an existing Seamless-MPLS/BGP-LU inter-domain deployment 
          <xref target="I-D.ietf-mpls-seamless-mpls"/> may prefer a BGP based 
          extension as a more incremental approach
          </t>
          <t>
          There may be an expectation that BGP would support a larger scale
          </t>
          <t>
          Trust boundaries in an inter-domain deployment leads to a
          preference for a BGP peering based solution
          </t>
          </list>
        </t>  
        </section>

        <section title="BGP Color-Aware Routing">
        <t>
        BGP Color-Aware Routing (CAR) is a new BGP solution which signals intent-aware 
        routes to reach a given destination (e.g., E2). (E2, C) represents a BGP hop-by-hop
        distributed route that builds an inter-domain color-aware path to E2 for color C.
        </t>  
        </section>

        <section title="Architectural consistency among color-aware routing 
        solutions">
        <t>
        As seen above, multiple technologies exist that provide color-aware
        routing in a network. A BGP based solution must be compliant with the
        existing principles that apply to them:
        </t>  
        <t>
          <list style="symbols">
          <t>
          Service routes MUST be colored using BGP Color Extended-Community
          to request intent
          <list>
          <t>
                  V/v via E, colored with C
          </t>
          </list>
          </t>
          <t>
          Colored service routes MUST be automatically steered on an
          appropriate color-aware path
          <list>
          <t>
                  V/v via E with C is steered via (E, C)
          </t>
          <t>
                  (E, C) provided by any color-aware technology or protocol
          </t>
          </list>
          </t>
          <t>
          Color-aware routes MAY resolve recursively via other color-aware
    routes 
          <list>
          <t>
                  (E, C) via N recursively resolves via (N, C)
          </t>
          </list>
          </t>

          </list>
        </t>  

          <t>
          Here is a brief example that illustrates these principles.
          </t>
        <figure anchor="REFERENCETOPOLOGY" title="Color-aware routing 
        inter-domain reference topology"><artwork><![CDATA[                                       
     +----------------+  +----------------+  +----------------+
     |                |  |                |  |                | V/v with C1
     |----+          +----+              +----+          +----|/
     | E1 |          | N1 |              | N2 |          | E2 |\
     |----+          +----+              +----+          +----| W/w with C2
     |                |  |                |  |                |
     |    Domain 1    |  |    Domain 2    |  |    Domain 3    |
     +----------------+  +----------------+  +--- ------------+

          ]]></artwork>
        </figure>
          <t>
          In the figure above, all the nodes are part of an inter-domain
          network under a single authority and with a consistent
          color-to-intent mapping:
          <list style="symbols">
          <t>
          Color C1 is mapped to "low delay"
          <list>
          <t>
          Flex-Algo FA1 is mapped to "low delay" and hence to C1
          </t>
          </list>
          </t>

          <t>
          Color C2 is mapped to "low delay and avoid resource R"
          <list>
          <t>
          Flex-Algo FA2 is mapped to "low delay and avoid resource R" and
          hence to C2
          </t>
          </list>
          </t>

          </list>
          </t>

          <t>
          E1 receives two BGP colored service routes from E2:
          <list style="symbols">
          <t>
          V/v with BGP Color Extended community C1
          </t>
          <t>
          W/w with BGP Color Extended community C2
          </t>
          </list>
          </t>

          <t>
          E1 has the following inter-domain color-aware paths:
          <list style="symbols">
          <t>
          (E2, C1) provided by BGP CAR which recursively resolves via
          intra-domain color-aware paths:
          <list>
          <t>
          (N1, C1) provided by IGP FA1 in Domain1 
          </t>
          <t>
          (N2, C1) provided by SR Policy bound to color C1 in Domain2 
          </t>
          </list>
          </t>
          <t>
          (E2, C2) provided by SR Policy 
          </t>
          </list>
          </t>

          <t>
          E1 automatically steers the received colored service routes as
          follows:
          <list style="symbols">
          <t>
          V/v via (E2, C1) provided by BGP CAR
          </t>
          <t>
          W/w via (E2, C2) provided by SR Policy
          </t>
          </list>
          </t>

          <t>
          The example illustrates the benefits provided by leveraging the
          architectural principles:
          <list style="symbols">
          <t>
          Seamless co-existence of multiple color-aware technologies, e.g.,
          BGP CAR and SR Policy
          <list>
          <t>
          V/v is steered on BGP CAR color-aware path
          </t>
          <t>
          W/w is steered on SR Policy color-aware path
          </t>
          </list>
          </t>
          <t>
          Seamless and complementary interworking between different
          color-aware technologies
          <list>
          <t>
          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 of V/v
          </t>
          </list>
          </t>
          </list>
          </t>

        </section>
      
      <section title="Color Domains">
        <t>
        <list style="symbols">
        <t>
        A color domain represents a collection of one or more network
        (IGP/BGP) domains with a single, consistent color-to-intent mapping
        </t>
        
        <t>
          Color re-mapping may happen at color domain boundaries
        </t>
        </list>
        </t>
      </section>

        <section title="Per-Destination and Per-Flow Steering with BGP CAR">
        <t>
        Ingress PE E1 steers packets destined for a service (VPN) route V/v 
        via BGP Color-Aware Route R/r to E2
          <list style="symbols">
          <t>
          Per-Destination Steering: Incoming packets on E1 match BGP service 
          route V/v to be steered based on the destination IP address of the packets.
          </t>
          <t>
          Per-Flow Steering: Incoming packets on E1 match BGP service route V/v 
          to be steered based on the combination of the destination IP address 
          and additional elements in the packet header (i.e., IP flow). Such a 
          packet lookup may recurse on a forwarding array where some of the entries 
          are BGP color-aware routes to E2. A given flow is mapped to a specific 
          entry in this array i.e. via a specific BGP color-aware route to E2.
          </t>
          </list>
        </t>
        </section>
      </section>
            
    </section>
    
    <section title="Intent bound to a Color">
      <t>
      The BGP CAR solution must support the following intents bound to a color:
        <list style="symbols">
        <t>Minimization of a cost metric vs a latency metric
          <list>
          <t>Minimization of different metric types, static and dynamic</t>
          </list>
        </t>
        <t>Exclusion/Inclusion of SRLG and/or Link Affinity and/or minimum MTU/number of hops</t>
        <t>Bandwidth management</t>
        <t>In the inter-domain context, exclusion/inclusion of entire domains,
        and border routers</t>
        <t>Inclusion of one or several virtual network function chains
          <list>
          <t>Located in a regional domain and/or core domain, in a DC</t>
          </list>
        </t>
        <t>Localization of the virtual network function chains
          <list>
          <t>Some functions may be desired in the regional DC or vice versa</t>
          </list>
        </t>
        <t>Per-Destination and Per-Flow steering</t>
        </list>
      </t>
    </section>  

    <section anchor="NBGPCARUSECASES" title="BGP CAR Use-cases ">
      <t>
      The BGP CAR route may be a transport route or a service route 
      (in this document, we use the term VPN instead of service for simplicity).
      </t>
      
      <section title="BGP Transport CAR">
        <t>
          <list style="symbols">
          <t>
          Transport Intent
            <list>
            <t>Intent-aware routing between PEs connected across multiple 
            transit domains
              <list>
              <t>Set up BGP based end-to-end paths stitching intent-aware intra-domain 
              segments</t> 
              </list>
            </t>  
            </list>
          </t>    
          <t>
          The network diagram below illustrates the reference network topology used
          in this section for Transport CAR:
            
          <figure anchor="TransportCAR" title="Transport CAR Reference Topology">
            <artwork><![CDATA[                                                  
        +-----+                +-----+                  +-----+
   .....|S-RR1| <............. |S-RR2| <............... |S-RR3| <...
   :    +-----+                +-----+                  +-----+    :
   :                                                               :
   :                                                               :
   :                                                               :
+--:--------------+       +-----------------+       +--------------:--+
|  :              |       |                 |       |              :  |
|  :              |       |                 |       |              :  |
|  :          +---|  D=20 |---+         +---|  D=25 |---+          :  |
|  :          |121|-------|211|         |231|-------|321|          :  |
|  :          +---| \   / |---+         +---| \   / |---+          :  |
|----+            |  \ /  |                 |  \ /  |            +----|    
|PE11|            |   V   |                 |   V   |            |PE31|
|----+            |  / \  |                 |  / \  |            +----|
|             +---| /   \ |---+         +---| /   \ |---+             |
|             |122|-------|212|         |232|-------|322|             |
|             +---|  D=15 |---+         +---|  D=10 |---+             |
|                 |       |                 |       |                 |
|    Domain 1     |       |    Domain 2     |       |    Domain 3     |
+-----------------+       +-----------------+       +------------------+
            ]]></artwork>
          </figure>
          
          The following network design assumptions apply to the reference topology 
          above, as an example:
            <list>
            <t>
            Independent ISIS/OSPF SR instance in each domain.
            </t>
            <t>
            eBGP peering link between ASBRs (121-211, 121-212, 122-211, 
            122-212, 231-321, 231-322, 232-321 and 232-322).
            </t>
            <t>
            Peering links have equal cost metric.
            </t>
            <t>
            Peering links have delay configured or measured as shown by &quot;D&quot;.
            D=50 for cross peering links.
            </t>
            <t>
            VPN service is running from PE31 to PE11 via service RRs (S-RRn in figure).
            </t>
            </list>
          </t>
          <t>
          The following sections illustrate a few examples of intent use-cases 
          applicable to transport routes.
          </t>
          </list>
        </t>
        <section title="Use-case of minimization of a cost metric vs a latency metric">
          <t>
            <list style="symbols">
            <t>In the reference topology of <xref target="TransportCAR"/>            
              <list style="empty">
              <t>
              Each domain has Algo 0 and Flex Algo 128
              </t>
              <t>
              Algo 0 is for minimum cost metric(cost optimized).
              </t>
              <t>
              Flex Algo 128 definition is for minimum delay (low latency).
              </t>
              </list>
            </t>  
            <t>
            Cost Optimized
              <list>
              <t>
              Color C1 - Minimum cost intent. (Here, a BGP CAR route with Color C1 is being
              used, instead of BGP-LU.)
              </t>
              <t>
              On PE11, VPN routes colored with C1 are steered via (C1, PE31) BGP CAR route
                <list style="symbols">
                <t>
                BGP CAR for C1 sets up path(s) between PEs for end-to-end minimum cost.
                </t>
                <t>
                (2)	These paths traverse over intra-domain Algo 0 in each domain 
                and account for the peering link cost between ASBRs.
                </t>
                <t>
                Example: PE11 learns (C1, PE31) CAR route via several equal paths:
                  <list style="numbers">
                  <t>
                  One such path is through FA0 to node 121, links 121-211, FA0 to 231, 
                  link 231-321, FA0 to PE31
                  </t>
                  <t>
                  Another such path is through FA0 to node 122, link 122-212, FA0 
                  to 232, link 232-322, FA0 to PE31.
                  </t>
                  </list>
                </t>
                </list>
              </t>
              </list>
            </t>
            <t>
            Minimize latency
              <list>
              <t>
              Color C2 - Minimum latency intent.
              </t>
              <t>
              On PE11, VPN routes colored with C2 are steered via (C2, PE31) BGP CAR route.
                <list style="symbols">
                <t>
                BGP CAR for C2 advertises paths between PEs for minimum end-to-end delay. 
                </t>
                <t>
                (2)	These paths traverse over intra-domain Flex Algo 128 in each 
                domain and account for peering link delay between ASBRs.
                </t>
                <t>
                (3)	Example: PE11 learns (C2, PE31) BGP CAR route and best path is 
                through FA128 to node 122, link 122-212, FA128 to 232, link 232-322, 
                FA128 to PE31.
                </t>
                </list>
              </t>
              </list>
            </t>
            </list>
          </t>  
        </section>
        <section title="Use-case of exclusion/inclusion of link affinity">
          <t>
            <list style="symbols">
            <t>Color C3 - Intent to Minimize cost metric and avoid purple links</t>
            <t>In the reference topology of <xref target="TransportCAR"/>
              <list style="empty">
              <t>Each domain has Flex Algo 129 and some links have purple affinity.</t>
              <t>Flex Algo 129 definition is set to minimum cost metric and avoid 
              purple links (within domain).</t>
              <t>Peering cross links are colored purple by policy. </t>
              </list>
            </t>
            <t>On PE11, VPN routes colored with C3 are steered via (C3, PE31) BGP CAR route.
              <list style="symbols">
              <t>BGP CAR for C3 sets up paths between PEs for minimum
              end-to-end cost 
              and avoiding purple link affinity.</t>
              <t>These paths traverse over intra domain Flex Algo 129 in each 
              domain and accounts for peering link cost between ASBR and avoiding 
              purple links.</t>
              <t>Example: PE11 learns (C3, PE31) BGP CAR route via 2 paths.
                <list style="numbers">
                <t>First path is through FA 129 to node 121, link 121-211, 
                FA129 to 231, link 231-321, FA129 to PE31.</t>
                <t>Second path is through FA129 to node 122, link 122-212, 
                FA129 to 232, link 232-322, FA129 to PE31.</t>
                </list>
              </t>
              </list>
            </t>
            </list>
          </t>
        </section>
        <section title="Use-case of exclusion/inclusion of domains">
          <figure anchor="TransportCARInEx">
            <artwork><![CDATA[
       +-----+                +-----+                 +-----+
   ....|S-RR1| <............. |S-RR2| <.............. |S-RR3| <....
   :   +-----+                +-----+                 +-----+     :             
   :                                                              :
   :                      +----------------+                      :
   :                      |                |                      :
+--:--------------+       |---+        +---|       +--------------:--+
|  :              |   |---|211|        |241|---|   |              :  |
|  :              |   |   |---+        +---|   |   |              :  |
|  :          +---|   |   |    Domain 2    |   |   |---+          :  |
|  :          |121|---|   +----------------+   |---|421|          :  |
|  :          +---|                                |---+          :  |
|----+            |                                |            +----|    
|PE11|            |                                |            |PE41|
|----+            |                                |            +----|
|             +---|                                |---+             |
|             |131|---|   +----------------+   |---|431|             |
|             +---|   |   |                |   |   |---+             |
|                 |   |   |---+        +---|   |   |                 |
|    Domain 1     |   |---|311|        |341|---|   |      Domain 4   |
+-----------------+       |---+        +---|       +-----------------+
                          |   Domain 3     |              
                          +----------------+
            ]]></artwork>
          </figure>
          <t>Color C4 - Avoid sending selected traffic via Domain 3
            <list style="symbols">
            <t>VPN routes advertised from PEs with Color C4</t>
            <t>BGP CAR for Color C4 should only set up paths between PE11 and PE41 that 
            exclude Domain 3</t>
            </list>
          </t>
        </section>
        <section title="Use-case of virtual network function chains in local and core domains">
          <figure anchor="TransportCARNFV">
            <artwork><![CDATA[
        ____                      ____	
       /    \                    /    \
      | NFV1 |                  | NFV2 | 
       \    /                    \    / 
+---------------------+  +--------------------+  +-------------------+
|      |E11|          |  |       |E21|        |  |                   |
|      +---+          |  |       +---+        |  |                   |
|                     |  |                    |  |                   |
|                     |  |                    |  |                   |
|----+              +------+                +------+            +----|    
|PE11|              | 121  |                | 231  |            |PE31|
|----+              +------+                +------+            +----|
|                     |  |                    |  |                   |
|                     |  |                    |  |                   |
|                     |  |                    |  |                   |
|                     |  |                    |  |                   |
|      Domain 1       |  |      Domain 2      |  |     Domain 3      |
+---------------------+  +--------------------+  +-------------------+
            ]]></artwork>
          </figure>
          <t>
            <list style="symbols">
            <t>Color intent
              <list>
              <t>C5 - Routing via min-cost paths</t>
              <t>C6 - Routing via a local NFV service chain situated at E11</t>
              <t>C7 - Routing via a centrally located NFV service chain situated at E21</t>
              </list>
            </t>
            <t>
            Forwarding of packets from PE11 towards PE31:
              <list>
              <t>(C5, PE31) mapped packets are sent via nodes 121, 231 to PE31</t>
              <t>(C6, PE31) mapped packets are sent to E11 and then post-service chain, 
              via 121, 231 to PE31</t>
              <t>(C7, PE31) mapped packets are sent via 121 to E21 and then post-service 
              chain, via 231 to PE31</t>
              </list>
            </t>
            </list>
          </t>    
        </section>
      </section>
      
      <section title="BGP VPN CAR">
        <t>
          <list style="symbols">
          <t>
          VPN (Service layer) intent
            <list>
            <t>Extend the signaling of intent awareness end-to-end: CE site to CE 
            site across provider networks
              <list>
              <t>Provide ability for a CE to select paths through specific PEs for a 
              given intent
                <list>
                <t>Example-1: Certain intent in transport not available via specific PEs
                </t>
                <t>Example-2: Certain CE-PE connection does not support specific intent
                </t>
                <t>Example-3: Site access via certain CE does not support specific 
                intent. For instance, link connecting a specific CE to a DC hosting 
                loss-sensitive service may have better quality than a link from 
                another CE</t>
                </list>
              </t> 
              <t>
              Provide ability for a CE to send traffic indicating a specific 
              intent (via suitable encapsulation) to the PE for optimal steering.
              </t>
              </list> 
            </t>
            <t>Intent aware routing support for multiple service (VPN) 
            interworking models
              <list>
              <t>Beyond options such as iBGP or Inter-AS Option C that inherently extend 
              from PE to PE
                <list style="numbers">
                <t>Inter-AS Option A</t>
                <t>Inter-AS Option B</t>
                <t>GW based interworking(L3VPN, EVPN)</t>
                </list>
              </t>
              <t>Interworking with existing L3VPN deployments, both PEs and CEs</t>
              </list>
            </t>
            </list>
          </t>    
          <t>The network diagram below illustrates the reference network topology used 
          in this section for VPN CAR.
            <figure anchor="VPNCAR" title="VPN CAR reference topology">
              <artwork><![CDATA[
        +-------------------+           +-------------------+
        |   ....|S-RR|....  |           |  ....|S-RR|.....  |
        |   :   +----+   :  |           |  :   +----+    :  |
        |   :    :  :    :  |           |  :    :  :     :  |
        |----+   :  :   +---|   D=20    |---+   :  :   +----|
       /|PE11|   :  :   |121|-----------|211|   :  :   |PE21|\
 D=25/  |----+   :  :   +---| X       X |---+   :  :   +----|  \ D=25   
   /    |        :  :       |   X   X   |       :  :        |    \   V/24
CE1     |        :  :       |     X D=50|       :  :        |     CE2<---
   X    |        :  :       |   X   X   |       :  :        |    X  
D=15 X  |----+   :  :   +---| X       X |---+   :  :   +----|  X D=10
       X|PE12|...:  :...|212|-----------|232|...:  :...|PE22|X
        |----+          +---|   D=10    |---+          +----|
        |                   |           |                   |  
        |     AS 1          |           |     AS 2          |  
        +-------------------+           +-------------------+ 
                                                                 

              ]]></artwork>
            </figure>
            
            The following network design assumptions apply to the reference topology 
            above, as an example:
              <list>
              <t>Independent ISIS/OSPF SR instance in each AS.</t>
              <t>eBGP peering link between VPN ASBRs 121-211, 121-212, 122-211, 122-212.</t>
              <t>VPN service is running between PEs via service RRs in each AS to 
              local ASBRs. Between ASBRs, its Option-B i.e. next hop self for VPN SAFI.</t> 
              <t>CE1 is dual homed to PE11 and PE12. Similarly, CE2 is dual homed to 
              PE21 and PE22.</t>
              <t>Peering links have equal cost metric</t>
              <t>Peering links have delay configured or measured as shown by &quot;D&quot;.
              </t>
              <t>CE2 advertises prefix V/24 to CE1. It is advertised as RD:V/24 between 
              PEs, including color-awareness</t>
              </list>
          </t>
          <t>
          The following sections illustrate a few examples of intent use-cases 
          applicable to VPN (service) routes.
          </t>
          </list>
        </t>
        <section title="Use-case of minimization of a cost metric vs a latency metric">
          <t>
            <list style="symbols">
            <t>In the reference topology of <xref target="VPNCAR"/>            
              <list style="empty">
              <t>Each AS has Flex Algo 0 and 128.</t>
              <t>Flex Algo 0 is for minimum cost metric(cost optimized).</t>
              <t>Flex Algo 128 definition is for minimum delay (low latency).</t>
              </list>
            </t>  
            <t>
            Cost Optimized
              <list>
              <t>
              Color C1 - Minimum cost intent.
              </t>
              <t>
              On CE1, flows requiring cost optimized paths to V/24 are steered over 
              (C1, V/24) route.
                <list style="symbols">
                <t>
                BGP CAR for C1 sets up paths between CEs for minimum
                end-to-end cost.
                </t>
                <t>
                This advertisement needs BGP CAR between PE-CE for V/24 prefix 
                and color C1 awareness.
                </t>
                <t>It also needs BGP VPN CAR between PEs and ASBRs for RD:V/24 prefix 
                and color C1 awareness (C1, RD:V/24).</t>
                <t>Paths traverse over PE-CE links, intra-domain Flex Algo 0 in each AS 
                and peering links between ASBRs, minimizing cost for VPN.</t>
                <t>
                Example: CE1 learns (C1, V/24) CAR route through several equal cost paths:
                  <list style="numbers">
                  <t>
                  One path is through link CE1-PE11, FA0 to 121, link 121-211, FA0 to 
                  PE21 and link PE21-CE2.
                  </t>
                  <t>
                  Another such path is through CE1-PE12, FA0 to node 122, link 122-212, 
                  FA0 to PE22, link PE22-CE2.
                  </t>
                  </list>
                </t>
                </list>
              </t>
              </list>
            </t>
            <t>
            Minimize latency
              <list>
              <t>
              Color C2 - Minimum latency intent
              </t>
              <t>
              On CE1, flows requiring low latency paths to prefix V/24 are steered 
              over (C2, V/24) CAR route.
                <list style="symbols">
                <t>
                BGP CAR for C2 sets up paths between CEs for minimum
                end-to-end delay. 
                </t>
                <t>
                This advertisement needs BGP CAR between PE-CE for V/24 prefix and 
                color C2 awareness.
                </t>
                <t>It also needs BGP VPN CAR between PEs and ASBR for RD:V/24 prefix 
                and color C2 awareness (C2, RD:V/24).</t>
                <t>Paths traverse over intra-domain Flex Algo 128 in each AS and 
                accounts for inter ASBR link delays and PE-CE link delays for the VPN.</t>
                <t>
                Example: CE1 learns (C2, V/24) CAR best route through link CE1-PE12, 
                FA128 to 122, link 122-212, FA128 to PE22 and link PE22-CE2.
                </t>
                </list>
              </t>
              </list>
            </t>
            </list>
          </t>  
        </section>
        
        <section title="Use-case of exclusion/inclusion of link affinity">
          <t>
            <list style="symbols">
            <t>Color C3 - Intent to Minimize cost metric and avoid purple links</t>
            <t>In the reference topology of <xref target="VPNCAR"/>
              <list style="empty">
              <t>Each AS has Flex Algo 129 and some links have purple affinity.</t>
              <t>Flex Algo 129 definition is set to minimum cost metric and avoid 
              purple links (within AS).</t>
              <t>ASBR cross links are colored purple by policy. Bottom PE-CE links are 
              colored purple as well by policy</t>
              </list>
            </t>
            <t>On CE1, flows requiring minimum cost path avoiding purple links to V/24 
            are steered over (C3, V/24) BGP CAR route.
              <list style="symbols">
              <t>BGP CAR for C3 setup paths between CEs for minimum end-to-end cost and 
              avoiding purple link affinity.</t>
              <t>This advertisement needs BGP CAR between PE-CE for V/24 prefix and 
              color C3 awareness</t>
              <t>It also needs BGP VPN CAR between PEs and ASBRs for RD:V/24 
              prefix and color C3 awareness (C3, RD:V/24).</t>
              <t>The path avoids purple PE-CE links, traverses over intra-domain 
              Flex Algo 129 in each AS and avoids purple links between VPN ASBRs.</t>
              <t>Example: CE1 learns (C3, V/24) CAR route through link CE1-PE11, 
              FA129 to 121, link 121-211, FA129 to PE21 and link PE21-CE2.
              </t>
              </list>
            </t>
            </list>
          </t>
        </section>
        
        <section title="Use-case of virtual network function chains in local and core domains">
          <figure anchor="VPNCARNFV">
            <artwork><![CDATA[                                               
                               +-----+                  
       ........................|S-RR | <.................
       :                       +-----+ <...........     :             
       :                                           :    :
       :                                           :    :
       :  ___     ___           ___                :    :
       : /   \   /   \         /   \               :    :
       :| S1  | | S2  |       | S3  |              :    :
       : \   /   \   /         \   /               :    :
     +-:---------------+  +--------------+  +------:----:--+
     | :  |E11|  |E12| |  |    |E21|     |  |      :    :  | 
     | :  +---+  +---+ |  |    +---+     |  |      :  +----|<-(V1/24,C1)
     | :               |  |              |  |      :  |PE31|--CE2
     | V               |  |              |  |      :  +----|
     |----+          +------+            +------+  :       |    
CE1--|PE11|          | 121  |            | 231  |  :       |
     |----+          +------+            +------+  :  +----|<-(V2/24/C2)
     |                 |  |              |  |      :..|PE32|--CE3
     |                 |  |              |  |         +----|
     |                 |  |              |  |              |
     |                 |  |              |  |              |
     |    Domain 1     |  |   Domain 2   |  |   Domain 3   |
     +-----------------+  +--------------+  +--------------+
                                                                 

             ]]></artwork>
          </figure>
          <t>
            <list style="symbols">
            <t>Color intent
              <list>
              <t>C1 - Routing via NFV service chain comprising of [S1, S2] attached to 
              E11 and E12</t>
              <t>C2 - Routing via NFV service [S3] attached to E21</t>
              </list>
            </t>
            <t>CE1, CE2, CE3 are sites of VPN1.</t>
            <t>Prefix V1/24 colored with C1 from CE2, and advertised as RD:V1/24 with 
            C1 by PE31 to PE11 via S-RR</t>
            <t>Prefix V2/24 colored with C2 from CE3, and advertised as RD:V2/24 with 
            C2 by PE32 to PE11 via SS-RR</t>
            <t>From PE11: 
              <list>
              <t>[V1/24, C1] mapped packets are sent via S1, S2 and then routed 
              to PE31, CE2</t>
              <t>[V2/24, C2] mapped packets are sent via S3 and then routed to PE32, CE3</t>
              </list>
            </t>
            </list>
          </t>    
        </section>  
      </section>    
    </section>

    <section title="Deployment Requirements">

      <t>
The figure below shows a reference large-scale multi-domain network topology
for targeted deployments. E1 and E2 are PEs; the other nodes are border
routers between domains in different tiers of the network. A VPN route is
advertised via service RRs (S-RR) between an egress PE (E2) and an ingress PE
(E1). BGP must provide reachability from E1 to E2 based on various intent.
      </t>

        <figure anchor="REFERENCELARGESCALE" title="Reference large-scale multi-domain 
        network topology"><artwork><![CDATA[                                       
          +-----+                +-----+     V/v via E2   +-----+
   .......|S-RR1|<...............|S-RR2|<.................|S-RR3| <..
   :      +-----+                +-----+     Color C      +-----+   :             
   :                                                                :
   :                                                                : 
+--:----------+-------------+--------------+-------------+----------:--+
|  :          |             |              |             |          :  |
|  :          |             |              |             |          :  |
|  :        +---+         +---+          +---+         +---+        :  |
|  :        |121|         |231|          |341|         |451|        :  |
|  :        +---+         +---+          +---+         +---+        :  |
|----+        |             |              |             |        +----|    
| E1 |        |             |              |             |        | E2 |
|----+        |             |              |             |        +----|
|           +---+         +---+          +---+         +---+           |
|           |122|         |232|          |342|         |452|           |
|           +---+         +---+          +---+         +---+           |
|  Access     |   Metro     |   Core       |   Metro     |   Access    |
|  domain 1   |   domain 2  |   domain 3   |   domain 4  |   domain 5  |
+-------------+-------------+--------------+-------------+-------------+
iPE         iBRM          iBRC           eBRC           eBRM         ePE
          ]]></artwork>
        </figure>
      <t>
        The solution must support the following :
        <list style="symbols">
        <t>Co-existence, compatibility and interworking with currently deployed 
        SR-PCE based multi-domain color-aware solution</t>
        <t>Support different multi-domain deployment designs
          <list>
          <t>Multiple IGP domains within a single AS (Seamless MPLS)
            <list>
            <t>Inter-connect at node level (ABR)</t>
            </list>
          </t>
          <t>Multiple BGP AS domains
            <list>
            <t>Inter-connect via peering links (ASBR)</t>
            </list>
          </t>  
          </list>
        </t>
        <t>Support end-to-end path crossing transport domains with different technologies 
        and encapsulations
          <list>
          <t>LDP-MPLS</t>
          <t>RSVP-TE-MPLS</t>
          <t>SR-MPLS</t>
          <t>SRv6</t>
          <t>IPv4/IPv6</t>
          </list>
        </t>
        <t>Support interworking between domains with different encapsulations 
        (e.g, SR-MPLS and SRv6)</t>
        <t>Support multiple transport encapsulations within a domain for co-existence 
        and migration</t>
        <t>
        Provide a BGP-based control-plane solution for the use-case illustrated in 
        [RFC8604] together with deployment design guidelines for the leverage of 
        anycast and binding SIDs.
        </t>
        </list>
      </t>  
    </section>
    
    <section title="Scalability">
      <section title="Scale Requirements">
        <t>
          <list style="symbols">
          <t>Support for massive scaled transport network
            <list>
            <t>Number of Remote PE&apos;s: >= 300k</t>
            <t>Number of Colors C: >= 5</t>
            </list>
          </t>
          <t>Scalable MPLS dataplane solution
            <list>
            <t>With one label per (C, Remote PE), the 1M MPLS dataplane does not work.</t>
            <t>A notion of hierarchy or segment list is required.
              <list>
              <t>E.g. the SR-PCE builds the end-to-end path as a list of segments 
              such that no single node needs to support a data-plane scaling in the 
              order of (Remote PE * C)</t>
              <t>The solution is thus not a direct extension of BGP-LU</t>
              </list>
            </t>
            <t>Additionally, PE and transit nodes (ABRs) may be devices with limited 
            forwarding table space</t>
            <t>Devices may have constraints on packet processing 
            (e.g., label operations, number of labels pushed) and performance</t> 
            </list>
          </t>
          <t>Ability to abstract the topology from remote domains - for scale, stability 
          and faster convergence
            <list>
            <t>Abstracting PE and/or ABR related state and network events</t>
            </list>
          </t>
          <t>Support for an Emulated-PULL model for the BGP signaling
            <list>
            <t>The SR-PCE solution natively supports a PULL model: when PE1 installs a 
            VPN route V/v via (C, PE2), PE1 requests its serving SR-PCE to compute the 
            SR Policy to (C, PE2). I.e. PE1 does not learn unneeded SR policies.</t>
            <t>BGP Signaling is natively a PUSH model.</t>
            <t>Emulated-PULL refers to the ability for a BGP CAR node PE1 to 
            &quot;subscribe&quot; to (C, PE2) route such that only the related paths are 
            signaled to PE1.</t>
            <t>The subscription and related filtering solution must apply to any BGP CAR 
            node
              <list>
              <t>Transport CAR routes
                <list style="numbers">
                <t>Ability for a node (PE/ABR/RR) to signal interest for routes of 
                specific colors.</t>
                <t>PEs only learn routes that they need - remote VPN endpoints 
                (PEs/ASBRs) or transit nodes (ABRs, ASBRs).</t>
                <t>ABRs also only learn and propagate routes they need locally in domain</t>
                </list> 
              </t>
              <t>Service/VPN CAR routes
                <list style="numbers">
                <t>Ability for a node (PE) to signal interest for a specific 
                (Egress PE, Color) transport route</t>
                <t>CEs learn routes that they need - interested colors</t>
                <t>PEs learn routes that they need - interested VPNs, colors</t>
                </list>
              </t>  
              <t>Automation of the subscription/filter route
                <list style="numbers">
                <t>Similar to the SR-PCE solution, when an ingress PE1 installs 
                VPN V/v via (C, PE2), PE1 originates its subscription/filter route 
                for (C, PE2).</t>
                </list>
              </t>  
              <t>Efficient propagation and processing of subscription/filter routes.</t>
              <t>Ability to perform aggregation and suppression of subscription/filter 
              routes at nodes in the route propagation path to reduce explosion and 
              churn in propagation of the filter routes themselves.</t>
              <t>The solution may be optional for networks that do not have the large 
              scaling requirements</t>
              </list>
            </t>  
            </list>
          </t>
          </list>
        </t>
        </section>
        
        <section title="Scale Analysis">
        <t>It is useful to analyze the multiple scaling requirements and specifically 
        the data plane constraints in the context of a few common reference designs and 
        use-cases.</t>
        
        <t>A couple of example scenarios are listed below for reference.
          <list style="symbols">
          <t>Seamless-MPLS design, with IGP Flex-Algo in each domain
        
            <figure anchor="SeamlessMPLS">
              <artwork><![CDATA[
                                  +-----+
   .............................. |S-RR | <........................ 
   :                              +-----+                         :             
   :                                                              :
   :                                                              :
+--:-----------------+  +--------------------+  +-----------------:--+
|  :                 |  |                    |  |                 :  |
|  :                 |  |                    |  |                 :  |
|  :               +------+                +------+               :  |
|  :               | 121  |                | 231  |               :  |
|  V               +------+                +------+               :  |
|----+               |  |                    |  |               +----|    
|PE11|               |  |                    |  |               |PE31|
|----+               |  |                    |  |               +----|
|                  +------+                +------+                  |
|                  | 122  |                | 232  |                  |
|                  +------+                +------+                  |
|                    |  |                    |  |                    |
|      Domain 1      |  |      Domain 2      |  |     Domain 3       |
+--------------------+  +--------------------+  +--------------------+
                                                                 

             ]]></artwork>
            </figure>
        
          </t>
          <t>Inter-AS Option C VPN design, with IGP Flex-Algo in each domain, and 
          eBGP peering between domains
            <figure anchor="OptionC">
              <artwork><![CDATA[                                       
       +-----+                +-----+                  +-----+
   ....|S-RR1| <............. |S-RR2| <............... |S-RR3| <...
   :   +-----+                +-----+                  +-----+     :             
   :                                                               :
   :                                                               :
   :                                                               :
+--:---------------+      +------------------+      +--------------:--+
|  :               |      |                  |      |              :  |
|  :               |      |                  |      |              :  |
|  :           +---|      |---+          +---|      |---+          :  |
|  :           |121|------|211|          |231|------|321|          :  |
|  :           +---|      |---+          +---|      |---+          :  |
|----+             |      |                  |      |            +----|    
|PE11|             |      |                  |      |            |PE31|
|----+             |      |                  |      |            +----|
|              +---|      |---+          +---|      |---+             |
|              |122|------|212|          |232|------|322|             |
|              +---|      |---+          +---|      |---+             |
|                  |      |                  |      |                 |
|    Domain 1      |      |    Domain 2      |      |    Domain 3     |
+------------------+      +------------------+      +-----------------+
                                                                 

             ]]></artwork>
            </figure>

        
          </t>
          </list>
        </t>
      </section>
    </section>
        
    <section title="Network Availability">
      <t>
      <list style="symbols">
      <t>
      The BGP CAR solution should provide high network availability for
      typical deployment topologies, with minimum loss of connectivity in
      different network failure scenarios.
      </t>

      <t>
      The network failure scenarios, applicable technologies and design
      options described in <xref target="I-D.ietf-mpls-seamless-mpls"/> should be 
      used as a reference.
      </t>
      
      <t>
      In the Seamless-MPLS reference topology in previous section:
      <list>
      <t>
      Failure of intra-domain links should limit loss of connectivity (LoC) to
 &lt; 50ms. E.g., PE11 to a P node (not shown), 121 to a P node in Domain1 or Domain2)
      </t>
      <t>
    Failure of an intra-domain node (P node in any domain) should limit LoC to
    &lt; 50ms
      </t>
      <t>
    Failure of an ABR node (e.g., 121, 231) should limit LoC to &lt; 1sec
      </t>
      <t>
    Failure of a remote PE node (e.g., PE3) should limit LoC to &lt; 1sec
      </t>

      </list>
      </t>

      <t>
      In the Inter-AS Option C VPN reference topology in previous section:
      <list>
      <t>
      Failure of intra-domain links should limit LoC to &lt; 50ms. E.g., PE11 to a P node
      (not shown), 121 to a P node in Domain1 or Domain2)
      </t>
      <t>
    Failure of an intra-domain node (P node in any domain) should limit LoC to
    &lt; 50ms
      </t>
      <t>
    Failure of an ASBR node (e.g., 121, 211) should limit LoC to &lt; 1sec
      </t>
      <t>
    Failure of a remote PE node (e.g., PE3) should limit LoC to &lt; 1sec
      </t>
      <t>
    Failure of an external link (e.g., 121-211) should limit LoC to &lt; 1sec
      </t>

      </list>
      </t>
      <t>
      The solution should explore and describe additional techniques and design 
      options that are applicable to further improve handling of the failure cases 
      listed above.
      </t>
      </list>
      </t>
    </section>

    <section title="BGP Protocol Requirements">
      <t>
        <list style="symbols">
        <t>Support signaling and distribution of different Color-Aware routes to 
        reach a participating node, e.g., a PE. Intent should be indicated 
        by the notion of a Color as defined in SR Policy Architecture.
          <list>
          <t>Signal different instances of a prefix distinguished by color</t>
          <t>Signal intent associated with a given route</t>
          </list>
        </t>
        <t>Support for a flexible NLRI definition to accommodate both efficiency 
        of processing (e.g., packing) and future extensibility
          <list>
          <t>Avoid limitations associated with existing SAFI NLRI definitions. 
          For example, 24-bit label.</t> 
          </list>
        </t>
        <t>Support for validation of paths
          <list>
          <t>Reachability of next-hop in control plane</t>
          <t>Availability and programming of encapsulation in data plane</t>
          <t>Validation of intent</t>
          </list>
        </t>
        <t>Next-hop resolution for Color-Aware route
          <list>
          <t>Flexibility to use different intra-domain and inter-domain mechanisms -
          IGP-FA, SR-TE, RSVP-TE, IGP, BGP-LU etc.</t>
          <t>Recursive resolution over BGP Color-Aware routes</t>
          <t>Ability to carry end-to-end cumulative metric for a given color</t>
          <t>Support setting up an end-to-end Color-Aware path using a different/less 
          preferred or best-effort paths in domains where a particular intent is 
          not available</t>
          </list>  
        </t>
        <t>Separation of transport and VPN service semantics.
          <list>
          <t>Allow for different route distribution planes for service vs transport 
          routes.</t>
          </list>
        </t>
        <t>Support signaling of different transport encapsulations</t>
        <t>Support for signaling multiple encapsulations for co-existence and migration</t>
        <t>Generation of BGP Color-Aware routes sourced from IGP-FA, SR-TE policies 
        and BGP-LU from a domain</t>
        <t>Support signaling across domains with different color mappings for a 
        given intent.</t>
        </list>
      </t>  
    </section>

    
    
    <section anchor="FUTURE" title="Future Considerations">
        <t>
        Multicast service intent
        </t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>
      Many people contributed to this document. 
      </t>
      
      <t>
      The authors would especially like to thank Jim Uttaro for his guidance on the 
      work and feedback on many aspects of the problem statement. We would also like 
      to thank Daniel Voyer, Luay Jalil and Robert Raszuk for their review and 
      valuable suggestions. 
      </t>
      
      <t>
      We also express our appreciation to Bruno Decreane, Keyur Patel, Jim Guichard, 
      Alex Bogdanov, Dirk Steinberg, Hannes Gredler and Xiaohu Hu for discussions 
      on several topics that have helped provide input to the document. We
      also thank Huaimo Chen for his valuable review comments.
      </t>
       
      <t>
      The authors would like to thank Stephane Litkowski for his detailed
      review and for making valuable suggestions to improve the quality of the
      document. We would also like to thank Kamran Raza and Kris Michelson for
      their review and comments on the document and to Simon Spraggs, Jose
      Liste and Jiri Chaloupka for their early inputs on the problem statement.
      </t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119.xml"?>

      <?rfc include="reference.RFC.8174.xml"?>

      <?rfc include="reference.RFC.5512.xml"?>

      <?rfc include="reference.RFC.8277.xml"?>

      <?rfc include="reference.RFC.4360.xml"?>

      <?rfc include="reference.RFC.4760.xml"?>

      <?rfc include="reference.RFC.8669.xml"?>

      <?rfc include="reference.RFC.7311.xml"?>

      <?rfc include="reference.RFC.8402.xml"?>

      <?rfc include="reference.RFC.4684.xml"?>

      <?rfc include="reference.RFC.7606.xml"?>

      <?rfc include="reference.RFC.5701.xml"?>
      
      <?rfc include="reference.RFC.8664.xml"?>
            
      <?rfc include='reference.I-D.ietf-spring-segment-routing-policy'?>
      
      <?rfc include='reference.I-D.ietf-spring-sr-service-programming'?>
      
      <?rfc include='reference.I-D.ietf-lsr-flex-algo'?>
      
      <?rfc include='reference.I-D.ietf-idr-tunnel-encaps'?>
      
      <?rfc include='reference.I-D.ietf-spring-srv6-network-programming'?>
      
      <?rfc include='reference.I-D.agrawal-spring-srv6-mpls-interworking'?>
      
      <?rfc include='reference.I-D.voyer-pim-sr-p2mp-policy'?>

      <?rfc include='reference.I-D.ietf-bess-srv6-services'?>

      <?rfc include="reference.RFC.8126.xml"?>

      <?rfc include='reference.I-D.ietf-idr-bgp-ipv6-rt-constrain'?>
      
    </references>

    <references title="Informative References">
      <?rfc include='reference.I-D.filsfils-spring-sr-policy-considerations'?>
      
      <?rfc include='reference.I-D.ietf-mpls-seamless-mpls'?>

      <?rfc include='reference.I-D.ietf-idr-performance-routing'?>

      <?rfc include="reference.RFC.3906.xml"?>

      <?rfc include="reference.RFC.4364.xml"?>

      <?rfc include="reference.RFC.4272.xml"?>

      <?rfc include="reference.RFC.4271.xml"?>

      <?rfc include="reference.RFC.6952.xml"?>

      <?rfc include="reference.RFC.7911.xml"?>
    </references>
  </back>
</rfc>
