<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.5.25 (Ruby 2.7.5) -->


<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [

<!ENTITY RFC4360 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4360.xml">
<!ENTITY I-D.ietf-bess-evpn-igmp-mld-proxy SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-bess-evpn-igmp-mld-proxy.xml">
<!ENTITY I-D.ietf-bess-bgp-multicast-controller SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-bess-bgp-multicast-controller.xml">
<!ENTITY I-D.ietf-idr-legacy-rtc SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-idr-legacy-rtc.xml">
]>

<?rfc toc, sortrefs, symrefs, comments="yes"?>

<rfc ipr="trust200902" docName="draft-zzhang-idr-rt-derived-community-02" category="std" consensus="true">
  <front>
    <title abbrev="RT-derived ECs">Extended Communities Derived from Route Targets</title>

    <author initials="Z." surname="Zhang" fullname="Zhaohui Zhang">
      <organization>Juniper Networks</organization>
      <address>
        <email>zzhang@juniper.net</email>
      </address>
    </author>
    <author initials="J." surname="Haas" fullname="Jeff Haas">
      <organization>Juniper Networks</organization>
      <address>
        <email>jhaas@juniper.net</email>
      </address>
    </author>
    <author initials="K." surname="Patel" fullname="Keyur Patel">
      <organization>Arrcus</organization>
      <address>
        <email>keyur@arrcus.com</email>
      </address>
    </author>

    <date year="2022" month="March" day="04"/>

    <area>Internet</area>
    <workgroup>idr</workgroup>
    

    <abstract>


<t>This document specifies a way to derive an Extended Community from
a Route Target and describes some example use cases.</t>



    </abstract>



  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>Consider a VPN with 10 PEs. A Route Target (say RT1) <xref target="RFC4360"/> is configured
for the VPN and all PEs will import VPN routes with RT1 attached. The RT
is an Extended Community (say EC1), with its sub-type being 0x02. While RT1
and EC1 have the same encoding, typically when we mention a Route Target,
its property of being able to control the route propagation and importation
is implied. When we just mention an Extended Community, that property is not
implied.</t>

<t>Now consider that another BGP route needs to be imported by some but not all
those PEs. The route could be of any SAFI/type (does not need to be a
VPN prefix), but it needs to be associated with the VPN on those importing PEs.
The exact meaning of “association” here does not matter, but the key is that
those PEs need to know that the route is related to that VPN.</t>

<t>To control the propagation to and importation by those PEs, a different
Route Target (say RT3) is attached to the route. For those PE to associate the
route with the VPN, an Extended Community (say EC2) is attached. Even though
RT1/EC1 is already associated with the VPN, EC2 needs to be different from RT1/EC1,
because if EC1 was used, the route would be propagated to and imported by all
the 10 PEs. EC2 cannot be the same as RT3 either, because there could be other
routes to be propagated to and imported by those same set of PEs yet those
other routes are not related to the VPN.</t>

<t>While EC2 can be any Extended Community (that is not a RT) configured on the
originating and receiving PEs to map it to the VPN, it is convenient if EC2
is derived from the RT1/EC1, e.g. the sub-type of RT1/EC1 is changed to a
new known value while everything else remains the same. We call this a
Route Target derived Extended Community, or RT-derived EC. A new sub-type is
assigned specifically for this purpose (see IANA considerations).</t>

<t>This document only specifies a way to derive an Extended Community from a
Route Target Extended Community using IANA-assigned Extended Community
sub-types (or Extended Community Type in case of IPv6-Address-Specific
Extended Community). Any protocol/feature that can take
advantages of the convenience of generic derivation may use them,
or not use them at its own discretion, and how they are used is outside
the scope of this document.</t>

</section>
<section anchor="use-cases" title="Use Cases">

<t>The following are a few examples of use cases. To reiterate, these are example
scenarios where generic RT-derived ECs could be used (when the routes to which
they are attached provide enough context). It is not the intention of this
document to mandate that it must be used.</t>

<section anchor="evpn-evi-rt-extended-community" title="EVPN EVI-RT Extended Community">

<t>Section 9.5 “EVI-RT Extended Community” of
<xref target="I-D.ietf-bess-evpn-igmp-mld-proxy"/>
describes a situation similar to the above. As a solution, four EVPN specific
EVI-RT ECs are defined, each mapping to a type of Route Target for the
corresponding EVPN instance.</t>

<t>As a theoretical alternative, a RT-derived EC described in this
document could be used instead - just derive a generic EC from the EVI RT.
Note that this document does not attempt to change
the existing procedures in <xref target="I-D.ietf-bess-evpn-igmp-mld-proxy"/>, but merely
use it for illustration purposes.</t>

</section>
<section anchor="leaf-discovery-with-controller-signaled-bgp-mvpn" title="Leaf Discovery with Controller Signaled BGP-MVPN">

<t>In Section 2 “Alternative to BGP-MVPN” of
<xref target="I-D.ietf-bess-bgp-multicast-controller"/>, BGP MCAST-TREE SAFI signaling
can be used for a controller to program multicast forwarding state in VRFs
of ingress/egress PEs, instead of relying on distributed BGP-MVPN signaling.
For the controller to learn egress PEs of a VPN customer multicast tree
(so that it can build/find a corresponding provider tunnel), egress PEs
signal leaf information to the controller via Leaf Auto-Discovery routes.
The routes carry a Route Target for the controller (so that only the controller
receives them), and an EC derived from the VPN’s Route Target (so that the
controller knows which VPN they are for).</t>

</section>
<section anchor="translated-route-target-extended-communities-in-i-dietf-idr-legacy-rtc" title="Translated Route-target Extended Communities in [I-D.ietf-idr-legacy-rtc]">

<t>In Section 3.1 of <xref target="I-D.ietf-idr-legacy-rtc"/>, a similar mechanism is described,
as quoted below:</t>

<figure><artwork><![CDATA[
  "The translation of the IRTs is necessary in order to refrain from
  importing "route-filter" VRF routes into VPN VRFs that would
  import the same route-targets.  The translation of the IRTS is
  done as follows.  For a given IRT, the equivalent translated RT
  (TRT) is constructed by means of swapping the value of the high-
  order octet of the Type field for the IRT (as defined in
  [RFC4360])."
]]></artwork></figure>

</section>
</section>
<section anchor="security-considerations" title="Security Considerations">

<t>This document specifies a way to derive an Extended Community from
a Route Target Extended Community and does not specify how
derived Extended Communities are used. As a result, this document
does not need security considerations. Any potential security
concerns need be addressed by documents that specify the actual
usage.</t>

</section>
<section anchor="iana-assignments" title="IANA Assignments">

<t>IANA has assign a new sub-type “RT-derived-EC” with value 0x15
in the following registries:</t>

<t><list style="symbols">
  <t>Transitive Two-Octet AS-Specific Extended Community Sub-Types</t>
  <t>Transitive Four-Octet AS-Specific Extended Community Sub-Types</t>
  <t>Transitive IPv4-Address-Specific Extended Community Sub-Types</t>
  <t>Non-Transitive Opaque Extended Community Sub-Types</t>
  <t>EVPN Extended Community Sub-Types</t>
</list></t>

<t>IANA has also assigned a new type “RT-derived-EC” with value 0x0015
in the following registry:</t>

<t><list style="symbols">
  <t>Transitive IPv6-Address-Specific Extended Community Types</t>
</list></t>

<t>If and when additional Extended Community types are defined with a
Route Target sub-type, the “RT-derived-EC” sub-type may also be
registered for those new types, preferably with the same value.</t>


</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC4360;


    </references>

    <references title='Informative References'>

&I-D.ietf-bess-evpn-igmp-mld-proxy;
&I-D.ietf-bess-bgp-multicast-controller;
&I-D.ietf-idr-legacy-rtc;


    </references>



  </back>

<!-- ##markdown-source:
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
A8PiqxXugrFo4ea0dfNvyubKmlcZAAA=

-->

</rfc>

