<?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-01" 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="January" 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 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 <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),
and this document will further request another Type TBD
(say, 0x0016) to derive from the UUID-based Route Target.</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 is defined and registered, it is desired to
proactively register sub-type 0x02 and 0x15 at the very beginning for
Route Target and Route Target Derivation purposes, should the review
process catch it.</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-evi-rt-extended-community"><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="leaf-discovery-with-controller-signaled-bgp-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 [I-D.ietf-idr-legacy-rtc]</name>

<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"><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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
4G9c1V9rZHWEgOKMoP4JW3mxI60pAAA=

-->

</rfc>

