<?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 RFC9251 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9251.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-08" 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>HPE</organization>
      <address>
        <email>zhaohui.zhang@hpe.com</email>
      </address>
    </author>
    <author initials="J." surname="Haas" fullname="Jeff Haas">
      <organization>HPE</organization>
      <address>
        <email>jeffrey.haas@hpe.com</email>
      </address>
    </author>
    <author initials="K." surname="Patel" fullname="Keyur Patel">
      <organization>Arrcus</organization>
      <address>
        <email>keyur@arrcus.com</email>
      </address>
    </author>

    <date year="2026" month="April" day="17"/>

    <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 an 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, with a new sub-type
assigned specifically for this purpose (<xref target="iana"/>).</t>

</section>
<section anchor="specification"><name>Specification</name>

<t>While in the above example, an RT-derived EC is used for the purpose of importing
routes to a VRF configured with the corresponding Route Target, 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"/>), as detailed in <xref target="iana"/>.</t>

<t>RT-derived ECs are not used inherently to control the propagation of routes
that carry them.</t>

<t>Any AFI/SAFI or BGP-based protocol/feature that can take advantage of the convenience
of generic derivation may use them, or not use them at its own discretion.
How they are used is outside the scope of this document, but should be specified
in documents for the specific use cases.</t>

</section>
<section anchor="iana"><name>IANA Considerations</name>

<t>IANA has assigned 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>This document additionally requests IANA to assign a new sub-type
"RT-derived-EC" with value 0x15 in the following registries:</t>

<t><list style="symbols">
  <t>Transitive Transport Class Extended Community Sub-Types</t>
  <t>Non-Transitive Transport Class Extended Community Sub-Types</t>
</list></t>

</section>
<section anchor="a-note-on-route-target-typesub-type-conventions"><name>A Note on 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, IANA has only registered Route Targets
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 0x43 (Non-Transitive Opaque Extended 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 (which can be interpreted as with a sub-type 0x11) 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>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,
preferably with the same value 0x15. However, there is no guarantee of that
either.</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="RFC9251"/>
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, an 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="RFC9251"/>, 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 translation 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. Additionally, in general one should pay attention to stripping
unintended received ECs from external peers.</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;


    </references>

    <references title='Informative References'>

&RFC9251;
&I-D.ietf-bess-bgp-multicast-controller;
&I-D.ietf-idr-legacy-rtc;


    </references>



  </back>

<!-- ##markdown-source:
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
bms5DsQsAAA=

-->

</rfc>

