<?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="std" docName="draft-sa-idr-bgp-srv6-mpls-transport-iw-02"
     ipr="trust200902">
  <front>
    <title>BGP extensions for SRv6/MPLS Transport Interworking</title>

    <author fullname="Swadesh Agrawal" initials="S." role="editor" surname="Agrawal">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <code/>

          <country/>
        </postal>

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

    <author fullname="Clarence Filsfils" initials="C." surname="Filsfils">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <code/>

          <country/>
        </postal>

        <email>cfilsfil@cisco.com</email>
      </address>
    </author>
    
    <author fullname="Dhananjaya Rao" initials="D." surname="Rao">
      <organization>Cisco Systems</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <code/>

          <country/>
        </postal>

        <email>dhrao@cisco.com</email>
      </address>
    </author>
    
    <author fullname="Jie Dong" initials="J." surname="Dong">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <code/>

          <country/>
        </postal>

        <email>jie.dong@huawei.com</email>
      </address>
    </author>
    
    <author fullname="Rajesh Manur" initials="R." surname="Manur">
      <organization>HPE</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <code/>

          <country/>
        </postal>

        <email>rajesh.manur@hpe.com</email>
      </address>
    </author>
    
    

    <date year=""/>

    <area>Routing</area>

    <workgroup>IDR WorkGroup</workgroup>

    <abstract>
      <t>This document defines the BGP extensions required to provide transport 
      interworking between SRv6 and MPLS in SRv6 deployment. 
      </t>
    </abstract>
  </front>
  
  

  <middle>
    <section title="Introduction">
    
      <t>The deployment of SRv6 into existing transport network require SRv6 to interwork
       with MPLS. <xref target="I-D.ietf-spring-srv6-mpls-interworking"/> 
      describes SRv6 and MPLS interworking architecture in multi domain network where
      each domain run SRv6 or MPLS data plane independently. To accomplish it, 
      section 7.1.2 of <xref target="I-D.ietf-spring-srv6-mpls-interworking"/> details 
      BGP inter-domain routing procedure in which domain border router set next hop to 
      self when propagating transport routes (for example, locator or loopback prefix 
      of a PE) across domains. Setting next hop to self results in allocation of 
      label or SRv6 SID depending on dataplane type of the domain where route is 
      propagated. Signaling of label is already specified in <xref target="RFC8277"/>.
      This document specifies method to signal SRv6 SID behaviors End.DTM and End.DTM46 
      specified in <xref target="I-D.ietf-spring-srv6-mpls-interworking"/> needed 
      for SRv6 and MPLS interworking with BGP Labeled Unicast (BGP-LU) routes 
      (SAFI value 4 routes as specified in <xref target="RFC8277"/>).
      </t>
      
      <section anchor="REQ" title="Requirements Language">
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
        "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
        "OPTIONAL" in this document are to be interpreted as described in BCP
        14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only
        when, they appear in all capitals, as shown here.</t>
      </section>
    </section>
    
    <section title="Signal SRv6 SID for BGP transport route">
      <t>The Prefix-SID attribute is an optional, transitive path attribute defined 
        in <xref target="RFC8669"/> to announce information about BGP Segment identifiers 
        as list of TLVs. <xref target="RFC8669"/> defined TLV type 1 to encode
        label index and TLV type 3 to encode Originator SRGB to be attached to prefixes 
        of BGP-LU SAFI(<xref target="RFC8277"/>). <xref target="RFC9252"/> extended 
        Prefix-SID attribute to carry SRv6 Segment Identifier that is encoded 
        in SRv6 Service TLV and attached to BGP service routes.
        </t>
        
      <section anchor="SRv6TransportTLV" title="SRv6 Transport TLV">
        <t>This document defines a new TLV called "SRv6 Transport TLV" of the 
        BGP Prefix-SID Attribute to announce SRv6 SID with prefixes of 
        BGP-LU SAFI. SRv6 SID is encoded in "SRv6 Transport TLV" exactly 
        like SRv6 Service SID TLV <xref target="RFC9252"/>. This document uses 
        the TLV to signal End.DTM and End.DTM46. The usage of this TLV for other 
        SRv6 SID behaviors and SAFI's is out of scope of this document and may be 
        extended in future documents. Extension in this document lead to signaling 
        of label in MPLS label field and SRv6 SID in SRv6 Transport TLV for BGP-LU route.
        Below section describes usage of both the information based on behavior of 
        the SRv6 SID.</t>
      </section>
        
      <section anchor="SRv6LRT" title="SRv6 encapsulation for MPLS transport"> 
        <t>SRv6 SID is used to encapsulate the MPLS packet whose top label is the label 
        value in MPLS field of the NLRI of the BGP-LU route. 
        Draft <xref target="I-D.ietf-spring-srv6-mpls-interworking"/> defines End.DTM 
        and End.DTM46 pseudo-code for this purpose.</t>
        
        <t>Domain border router that set next hop to self, allocates label bound to
        each prefix of BGP-LU route. Label is encoded in MPLS label field as specified 
        in <xref target="RFC8277"/>. SRv6 SID is encoded in "SRv6 Transport TLV" 
        without transposition i.e. transposition length MUST be set to 0 
        in SRv6 SID Structure Sub-Sub-TLV. Behavior field MUST be set with SRv6 Endpoint 
        Behavior codepoint value of End.DTM or End.DTM46. This behavior signals "AND" 
        semantics i.e. push label signaled in NLRI and perform H.Encaps.M 
        <xref target="I-D.ietf-spring-srv6-mpls-interworking"/> with 
        DA as SRv6 SID signaled in the TLV.  Same SRv6 SID can be attached 
        to multiple BGP-LU routes by domain border router that sets next hop to self.
        </t>
        
        <t>Section 7.1.2.2 of <xref target="I-D.ietf-spring-srv6-mpls-interworking"/>
        describe control and dataplane state using SRv6 Transport TLV.</t>
      </section>
      
      <section title="Propagation of transport routes with SRv6 SID">
        <t>A BGP speaker that receive Prefix-SID attribute with 
        SRv6 Transport TLV with transport route observe following rules when 
        advertising the route to other peers:
          <list style="symbols">
            <t>If the nexthop is unchanged, the TLVs, including any unrecognized Types of 
            Sub-TLV and Sub-Sub-TLV, SHOULD be propagated further. In addition, all Reserved 
            fields in the TLV or Sub-TLV or Sub-Sub-TLV MUST be propagated unchanged.</t>

            <t>If the nexthop is modified, the TLV and associated sub-TLVs/Sub-Sub-TLVs 
            SHOULD be updated based on local policy. For example, if upstream is MPLS domain, 
            then TLVs carrying SRv6 SID should be removed and local MPLS label bound to 
            address in NLRI is propagated further.</t>
          </list>
        </t>  
      </section>
    </section>
    
    <section anchor="EH" title="Error Handling">
    <t>SRv6 SID is encoded in "SRv6 Transport TLV" exactly like SRv6 Service SID TLV 
    <xref target="RFC9252"/>. Hence, <xref target="RFC9252"/> error handling is applicable
    for "SRv6 Transport TLV" processing.
    
    Behavior codepoint other than End.DTM and End.DTM46 is out of the scope of this 
    document. The path having such Prefix-SID attribute without any valid SRv6 SID 
    behavior MUST be considered ineligible during the selection of the best path 
    for the corresponding route.
    </t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <section title="BGP Prefix-SID TLV Types registry">
        <t>This document introduce a new TLV Type of the BGP Prefix-SID attribute. 
        IANA is requested to assign Type value in the registry 
        "BGP Prefix-SID TLV Types" as follows<figure>
            <artwork><![CDATA[    Value     Type                             Reference
    ----------------------------------------------------------
    TBD       SRv6 Transport TLV     <this document>]]></artwork>
          </figure>
        </t>
      </section>
    </section>

    <section anchor="Security" title="Security Considerations">
    <t>This document defines new TLV of Prefix-SID attribute attached to transport route. 
    Tranport route is signaled among the nodes under the single administrative domain 
    and security considerations of the attribute described in <xref target="RFC8669"/> 
    continues to apply.</t>
    </section>
    
    <section anchor="Contributors">
    <name> Contributors </name>
      <figure>
        <artwork><![CDATA[Zafar Ali
Cisco Systems
Email: zali@cisco.com
        ]]></artwork>
      </figure>

      <figure>
        <artwork><![CDATA[Daniel Voyer
Cisco Systems
Email: davoyer@cisco.com
        ]]></artwork>
      </figure>
      <figure>
      <artwork><![CDATA[Shraddha Hegde
HPE
Email:shraddha.hegde@hpe.com
        ]]></artwork>
      </figure>

    </section>


    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>The authors would like to acknowledge Stephane Litkowski and Ketan Talaulikar
      for review and comments.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
       <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?>
       
       <?rfc include='reference.RFC.8174.xml'?>
       
       <?rfc include='reference.RFC.4271.xml'?>
       
       <?rfc include='reference.RFC.4760.xml'?>
       
       <?rfc include='reference.RFC.4364.xml'?>
       
       <?rfc include='reference.RFC.7432.xml'?>
       
       <?rfc include='reference.RFC.3032.xml'?>
       
       <?rfc include='reference.RFC.4023.xml'?>
       
       <?rfc include='reference.RFC.8664.xml'?>
       
       <?rfc include='reference.RFC.8402.xml'?>
       
       <?rfc include='reference.RFC.8277.xml'?>
       
       <?rfc include='reference.RFC.9252.xml'?>
       
       <?rfc include='reference.RFC.8669.xml'?>
       
       <?rfc include='reference.RFC.9256.xml'?>
       
       <?rfc include='reference.I-D.ietf-spring-srv6-mpls-interworking.xml'?>
              
       <?rfc include='reference.RFC.8986.xml'?>
    </references>
    <references title="Informative References">        
        <?rfc include='reference.I-D.ietf-mpls-seamless-mpls.xml'?>
    </references>
  </back>
</rfc>
