<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.17 (Ruby 3.1.2) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

<!ENTITY RFC4360 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4360.xml">
<!ENTITY RFC5701 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5701.xml">
<!ENTITY RFC7153 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7153.xml">
<!ENTITY RFC7432 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7432.xml">
<!ENTITY I-D.ietf-bess-evpn-igmp-mld-proxy SYSTEM "https://bib.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://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-bess-bgp-multicast-controller.xml">
<!ENTITY I-D.ietf-idr-legacy-rtc SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-idr-legacy-rtc.xml">
]>

<?rfc toc, sortrefs, symrefs, comments="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-idr-rt-derived-community-03" 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="2024" month="November" day="13"/>

    <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"><name>Introduction</name>

<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 into their corresponding VRF. 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 into their VRF. The route could be of any SAFI/type (it may not need to be a
VPN prefix), but it needs to be associated with the VPN on those 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. Some examples of
the association are given in <xref target="evpn"/> and <xref target="mvpn"/>.</t>

<t>To control the propagation to 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 used for route importation into 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 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 <xref target="RFC5701"/>). 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="route-target-typesub-type-conventions"><name>Route Target Type/sub-type Conventions</name>

<t>It may be expected by some people that Route Targets are Extended
Communities with sub-type 0x02 (or with Type 0x0002 in case of IPv6 Address
Specific Extended Community). However, the only official specification are in
<xref target="RFC7153"/> <xref target="RFC7432"/> and are only for the following types:</t>

<t><list style="symbols">
  <t>Type 0x00 (Transitive Two-Octet AS-Specific EC)</t>
  <t>Type 0x01 (Transitive IPv4-Address-Specific EC)</t>
  <t>Type 0x02 (Transitive Four-Octet AS-Specific EC)</t>
  <t>Type 0x06 (EVPN AS-Specific EC)</t>
  <t>Type 0x0002 (Transitive IPv6-Address-Specific Route Target)</t>
  <t>Type 0x0011 (Transitive IPv6-Address-Specific EC, UUID-based Route Target))</t>
</list></t>

<t>While it may be desired to follow the unwritten convention and assign sub-type
0x02 for future Route Targets of future types of ECs, there is no guarantee
of that. For example, Type 0x0011 is assigned for UUID-based Route Target
that imposes as an IPv6 Address Specific EC (even though UUID is not an
IPv6 address).</t>

<t>IANA has assigned sub-type 0x15 (or Type 0x0015 in case of IPv6 Address
Specific EC) to indicate an EC is derived from a Route Target that has
sub-type 0x02 (or type 0x0002 in case of IPv6 Address Specific EC).</t>

<t>All those can only be registered with the known types listed above. When
a new type is defined and registered, the corresponding 0x02 sub-type
may be registered for Route Target purpose or for something else, and
there is no guarantee that the 0x15 sub-type will not be registered for
something else as well (than for RT derivation). As a result,
the mapping between sub-type 0x02 and 0x15, type 0x0002 and 0x0015,
type 0x0011 and TBD are only defined for the known types listed above.</t>

<t>Of course, when a new type of extended community is defined and registered,
and a sub-type under this new type is registered for Route Target purposes,
it is suggested to also register a sub-type for derivation purposes.</t>


</section>
<section anchor="use-cases"><name>Use Cases</name>

<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"><name>EVPN EVI-RT Extended Community</name>

<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="mvpn"><name>Leaf Discovery with Controller Signaled BGP-MVPN</name>

<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"><name>Translated Route-target Extended Communities in <xref target="I-D.ietf-idr-legacy-rtc"/></name>

<t>Section 3.1 of <xref target="I-D.ietf-idr-legacy-rtc"/> uses the derivation
as quoted below:</t>

<figure><artwork><![CDATA[
"Using the TRTS translated from 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 translaation from 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 low-order
octet of the Type field for the IRT (as specified in
[I-D.ietf-idr-rt-derived-community])."
]]></artwork></figure>

</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<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"><name>IANA Assignments</name>

<t>This document requests IANA to assign a new Type value (0x0016
suggested) for "UUID-RT-derived-EC".</t>

<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>
<section anchor="acknowledgements"><name>Acknowledgements</name>

<t>The authors thank Robert Raszuk for his valuable comments and suggestions.</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>

&RFC4360;
&RFC5701;
&RFC7153;
&RFC7432;


    </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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

-->

</rfc>

