<?xml version="1.0" encoding="US-ASCII"?>

<?xml-model href="rfc7991bis.rnc"?>

<!-- <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> --> 
<!-- This third-party XSLT can be enabled for direct transformations in XML processors, including most browsers -->


<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
  <!ENTITY I-D.ietf-bess-evpn-l2gw-proto SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-bess-evpn-l2gw-proto.xml">
  <!ENTITY I-D.ietf-bess-evpn-mh-pa SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-bess-evpn-mh-pa.xml">
  <!ENTITY I-D.draft-ietf-bess-rfc7432bis SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-bess-rfc7432bis.xml">


]>
<!-- If further character entities are required then they should be added to the DOCTYPE above.
     Use of an external entity file is not recommended. -->

<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->

<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->

<rfc category="std"
    xmlns:xi="http://www.w3.org/2001/XInclude"
    docName="draft-kriswamy-idr-route-type-capability-00"
    updates=""
    consensus="true"
    submissionType="IETF"
    ipr="trust200902"
    tocInclude="true"
    tocDepth="4"
    symRefs="true"
    sortRefs="true">

 <!-- ***** FRONT MATTER ***** -->

 <front>
   <!-- The abbreviated title is used in the page header - it is only necessary if the 
        full title is longer than 39 characters -->
    <title abbrev="BGP Route Type Capability">BGP Route Type Capability</title>
    <seriesInfo name="Internet-Draft" value="draft-kriswamy-idr-route-type-capability-00"/>

    <author fullname="Krishnaswamy Ananthamurthy" initials="K." surname="Ananthamurthy">
     <organization>Cisco</organization>
     <address>
	    <postal>
          <street>170 W. Tasman Drive</street>
          <street/>
          <city>San Jose</city>
          <code>95134</code>
          <region>CA</region>
          <country>USA</country>
        </postal>
       <email>kriswamy@cisco.com</email>
     </address>
   </author>

  <author fullname="Mankamana Mishra" initials="M." surname="Mishra">
     <organization>Cisco</organization>
     <address>
	    <postal>
          <street>170 W. Tasman Drive</street>
          <street/>
          <city>San Jose</city>
          <code>95134</code>
          <region>CA</region>
          <country>USA</country>
        </postal>
       <email>mankamis@cisco.com</email>
     </address>
   </author>
  
  <author fullname="Lukas Krattiger" initials="L." surname="Krattiger">
     <organization>Cisco</organization>
     <address>
	    <postal>
          <street>170 W. Tasman Drive</street>
          <street/>
          <city>San Jose</city>
          <code>95134</code>
          <region>CA</region>
          <country>USA</country>
        </postal>
       <email>lkrattig@cisco.com</email>
     </address>
   </author>




   <author fullname="Keyur Patel" initials="K." surname="Patel">
     <organization>Arrcus</organization>
     <address>
       <email>keyur@arrcus.com</email>
     </address>
   </author>
   
   <date year="2024" />

   <!-- Meta-data Declarations -->
   <area>Routing</area>
   <workgroup>Inter-Domain Routing</workgroup>

   <!-- WG name at the upperleft corner of the doc,
        IETF is fine for individual submissions. 
	 If this element is not present, the default is "Network Working Group",
        which is used by the RFC Editor as a nod to the history of the IETF. -->

   <keyword>BGP</keyword>

   <abstract>
	<t> BGP supports different route types, which defines the encoding of Network Layer Reachability Information (NLRI)
		for a some of the Address Family Identifier (AFI)/Subsequent Address Family Identifier (SAFI) like 
		Ethernet VPN (EVPN), Multicast VPN(MVPN) and so on. BGP speaker will reset the BGP session if a given route type is not supported. 
		This document defines an Optional Capabilities to exchange the route types supported for a given AFI/SAFI such that session are not reset. </t>
   </abstract>


   <note 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>
   </note>

 </front>

 <middle>
	 
	<section anchor="intro" title="Introduction">

	<t> BGP Ethernet VPN (EVPN), Multicast VPN(MVPN), and other address families support multiple route types.
		Different route types will have different key lengths consisting of multiple fields which are used as a BGP Route Key. 
		If a particular route type is not supported on a BGP speaker then the session will be reset as there is 
		no way to determine the key. </t>
		
	<t> When a new Route-type is added to EVPN, MVPN and any other address families that support route types, 
		then all routers in the network to be updated to make sure that there is no session reset. 
		Resetting a BGP session is expensive as we have seen from deployments that multiple AFI/SAFI 
		are negotiated between the BGP neighbors and resetting a session will impact the network adversely. </t>
		
	<t> This document defines an optional capability exchange of route types per AFI/SAFI such that 
		BGP speakers negotiate the route types and only if the neighbor has advertised a particular 
		route-type capability support then only advertise the given route-type in MP_REACH_NLRI. </t>

	</section>

	<section 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&nbsp;14 <xref target="RFC2119"/> <xref target="RFC8174"/> when,
      and only when, they appear in all capitals, as shown here. 
     </t>
	</section>

	
	<section title="Route Type Capability" anchor="RTC">

	<t> The Rout type capability is a new BGP capability [<xref target="RFC5492"/> that can be used by 
		BGP speaker to indicate the route types of a given AF/SAFI supported.</t>
		
	<t> This capability is defined as follows: </t>
		<t>              
		<list style="symbols">

			<t> Capability code: To be assigned by IANA </t>
			<t> Capability length: variable</t>
			<t> Capability value: Consists of 0 to 63 of the tuples "AFI, SAFI, Route-Type length and Route-type values for address family"</t>
		</list>
		</t>

            <figure><artwork><![CDATA[
 
         +----------------------------------------------------------+
         | Address Family Identifier (2 octets)                     |
         +----------------------------------------------------------+
         | Subsequent Address Family Identifier (1 octet)           |
         +----------------------------------------------------------+
         | Route-Type length (1 cotet)                              |
         +----------------------------------------------------------+
         | Route-Types (variable length)                            |
         +----------------------------------------------------------+
           ]]>
            </artwork></figure>
		
	
	<t>              
	<list style="symbols">
		<t>
		The AFI and SAFI, taken in combination, indicate that Route-types
         supported for routes that are advertised with the
         same AFI and SAFI.  Route-types may be explicitly associated with a
         AFI and SAFI using the encoding of [BGP-MP]
		</t> 
		
		<t> 
		Route-Type length: 
		This field specifies the total length in octets, of Route-Types field. </t> 
		
		<t> 
		Route-Type: 
		This field specifies the Route-Types. </t> 
	
	</list>
	</t>
		<t>
		A speaker that supports multiple "AFI, SAFI" tuples that requires route-type capability exchanges 
		includes them as multiple Capabilities in the Capabilities Optional Parameter.</t> 
	
	<t>
	If route type capabilities are exchanged between BGP speakers for a specific AFI/SAFI, and 
	the BGP peer does not support a particular route type, that route should not be advertised to the peer.</t> 
	
	</section>
	
	<section anchor="Error Handling" title="Error Handling">
	<t>
	TBD
	</t>
	
	</section>
		<section title="Security Considerations">
			<t> TBD </t>
		</section>

		<section anchor="iana" title="IANA Considerations">
		<t>
			<t> This document defines a new optional route type capability dnd request
				the  BGP optional capability registry:</t>
		</t>
		</section>


</middle>

 <!--  *****BACK MATTER ***** -->

<back>
    <!-- References split into informative and normative -->
    <references title="Normative References">
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5492.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4271.xml"/>
        <xi:include href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.4760.xml"/>


    </references> 

	
	<section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
		<name slugifiedName="name-contributors">Contributors</name>
	<t indent="0">
		In addition to the authors listed on the front page, the following
		coauthors have also contributed to this document:</t>
				<t indent="0"> <contact fullname="Satya Mohanty"/></t>
	</section>



</back>
</rfc>

