<?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-07" 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="January" day="27"/>

    <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 Assignments</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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
Tan/A7JhbLvBLAAA

-->

</rfc>

