<?xml version='1.0' encoding='UTF-8'?>


<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-ietf-mpls-mldp-multi-topology-09" number="9658" ipr="trust200902" consensus="true" updates="7307" obsoletes="" submissionType="IETF" xml:lang="en" tocInclude="true" symRefs="true" sortRefs="true" version="3">

  <front>
    <title abbrev="Multi-Topology mLDP">Multipoint LDP Extensions for Multi-Topology Routing</title>

    
    
    <seriesInfo name="RFC" value="9658"/>
    <author fullname="IJsbrand Wijnands" initials="IJ." surname="Wijnands">
      <organization>Individual</organization>
      <address>
        <email>ice@braindump.be</email>
      </address>
    </author>
    <author fullname="Mankamana Mishra" initials="M." surname="Mishra" role="editor">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street>821 Alder Drive</street>
          <city>Milpitas</city>
          <code>95035</code>
          <region>CA</region>
          <country>United States of America</country>
        </postal>
        <email>mankamis@cisco.com</email>
      </address>
    </author>
    <author fullname="Kamran Raza" initials="K." surname="Raza">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street>2000 Innovation Drive</street>
          <city>Kanata</city>
          <code>K2K-3E8</code>
          <region>ON</region>
          <country>Canada</country>
        </postal>
        <email>skraza@cisco.com</email>
      </address>
    </author>
    <author initials="Z." surname="Zhang" fullname="Zhaohui Zhang">
      <organization>Juniper Networks</organization>
      <address>
        <postal>
          <street>10 Technology Park Dr.</street>
          <city>Westford</city>
          <region>MA</region>
          <code>01886</code>
          <country>United States of America</country>
        </postal>
        <email>zzhang@juniper.net</email>
      </address>
    </author>


    
    <author initials="A." surname="Gulko" fullname="Arkadiy Gulko">
      <organization abbrev="Edward Jones">Edward Jones Wealth Management</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>Arkadiy.gulko@edwardjones.com</email>
      </address>
    </author>
    <date month="October" year="2024"/>
    <area>RTG</area>
    <workgroup>mpls</workgroup>

    <keyword>MPLS</keyword>
    <keyword>mLDP</keyword>
    <keyword>Multi-topology</keyword>

    <abstract>



      
      <t>       
       Multi-Topology Routing (MTR) is a technology that enables service
   differentiation within an IP network. The Flexible Algorithm (FA) is
   another mechanism for creating a sub-topology within a topology using
   defined topology constraints and computation algorithms. In order to
   deploy Multipoint LDP (mLDP) in a network
   that supports MTR, FA, or other methods of signaling non-default
   IGP Algorithms (IPAs), mLDP is required to become topology and
   algorithm aware.  This document specifies extensions to mLDP to support the use of
MTR/IPAs such that, when building multipoint Label Switched Paths (LSPs), the LSPs can follow a
particular topology and algorithm.
 This document updates RFC 7307 by allocating 
   eight bits from a previously reserved field to be used as the "IPA" field. 
      </t>
    </abstract>
  </front>
  <middle>

    <section numbered="true" toc="default">
      <name>Introduction</name>
      <t>Multi-Topology Routing (MTR) is a technology that enables service differentiation within an IP network. IGPs (e.g., OSPF and IS-IS) and LDP have already been extended to support MTR. To support MTR, an IGP maintains distinct IP topologies referred to as "Multi-Topologies" (or "MTs"), and computes and installs routes specific to each topology. OSPF extensions (see <xref target="RFC4915" format="default"/>) and IS-IS extensions (see <xref target="RFC5120" format="default"/>) specify the MT extensions under respective IGPs.  To support IGP MT, similar LDP extensions (see <xref target="RFC7307" format="default"/>) have been specified to make LDP be MT aware and to be able to set up unicast Label Switched Paths (LSPs) along IGP MT routing paths.
      </t>
      <t>
	 A more lightweight mechanism to define constraint-based topologies is
	 the Flexible Algorithm (FA) (see <xref target="RFC9350" format="default"/>).

The FA is
   another mechanism for creating a sub-topology within a topology using
   defined topology constraints and computation algorithms.
  This can be done within an MTR topology or
   the default topology.  An instance of such a sub-topology is
   identified by a 1-octet value (Flexible Algorithm) as documented in
   <xref target="RFC9350" format="default"/>.  At the time of writing, an FA is a mechanism to create a sub-topology; in
the future, different algorithms might be defined for this purpose.  Therefore, in the remainder of this
   document, we'll refer to this as the "IGP Algorithm" or "IPA". The "IPA"
   field (see Sections <xref target="MT_IP_AFI" format="counter"/> and <xref target="Typed_Wildcard_Fec" format="counter"/>) is an 8-bit identifier for the algorithm.
   The permissible values are tracked in the "IGP Algorithm Types"
   registry <xref target="IANA-IGP" format="default"/>.
      </t>
      <t> 
   Throughout this document, the term "Flexible Algorithm" (or "FA") shall denote the process of generating a sub-topology and signaling it through the IGP. However, it is essential to note that the procedures outlined in this document are not exclusively applicable to the FA: they are extendable to any non-default algorithm as well.
</t>
<t>
"Multipoint LDP" (or "mLDP") refers to extensions in LDP to set up multipoint LSPs (i.e., point-to-multipoint (P2MP) or multipoint-to-multipoint (MP2MP) LSPs) by means of a set of extensions and procedures defined in <xref target="RFC6388" format="default"/>. In order to deploy mLDP in a network that supports MTR and the FA, mLDP is required to become topology and algorithm aware. This document specifies extensions to mLDP to support the use of
MTR/IPAs such that, when building multipoint LSPs, it can follow a
particular topology and algorithm.  Therefore, the identifier for the particular topology to be used by mLDP has to become a 2-tuple {MTR Topology Id, IPA}.
      </t>
    </section>
    <section numbered="true" toc="default">
            
      <name>Terminology</name>
    <section numbered="true" toc="default">
      <name>Abbreviations</name>
      <dl>
         <dt>FA:</dt><dd>Flexible Algorithm</dd>
         <dt>FEC:</dt><dd>Forwarding Equivalence Class</dd>
         <dt>IGP:</dt><dd>Interior Gateway Protocol</dd>
         <dt>IPA:</dt><dd>IGP Algorithm</dd>
         <dt>LDP:</dt><dd>Label Distribution Protocol</dd>
         <dt>LSP:</dt><dd>Label Switched Path</dd>
         <dt>mLDP:</dt><dd>Multipoint LDP</dd>
         <dt>MP:</dt><dd>Multipoint</dd>
         <dt>MP2MP:</dt><dd>Multipoint-to-Multipoint</dd>
         <dt>MT:</dt><dd>Multi-Topology</dd>
         <dt>MT-ID:</dt><dd>Multi-Topology Identifier</dd>
         <dt>MTR:</dt><dd>Multi-Topology Routing</dd>
         <dt>MVPN:</dt><dd>Multicast VPN in <xref target="RFC6513" sectionFormat="of" section="2.3"/></dd>
         <dt>P2MP:</dt><dd>Point-to-Multipoint</dd>
         <dt>PMSI:</dt><dd>Provider Multicast Service Interfaces <xref target="RFC6513" format="default"/></dd>
      </dl>
    </section>    
    
    <section numbered="true" toc="default">
      <name>Specification of Requirements</name>
        <t>
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
    "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>",
    "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
    "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be
    interpreted as described in BCP&nbsp;14 <xref target="RFC2119"/> <xref
    target="RFC8174"/> when, and only when, they appear in all capitals, as
    shown here.
        </t>
    </section>
    </section>
    <section numbered="true" toc="default">
      <name>MT-Scoped mLDP FECs</name>
      <t>As defined in <xref target="RFC7307" format="default"/>, an MPLS Multi-Topology Identifier (MT-ID) is used to associate an LSP with a certain MTR topology. In the context of MP LSPs, this identifier is part of the mLDP FEC encoding; this is so that LDP peers are able to set up an MP LSP via their own defined MTR policy.  In order to avoid conflicting MTR policies for the same mLDP FEC, the
MT-ID needs to be a part of the FEC.  This ensures that different MT-ID values
will result in unique MP-LSP FEC elements.
      </t>
      <t>
	The same applies to the IPA. The IPA needs to be encoded as part of the mLDP FEC to create unique MP LSPs. The IPA is also used to signal to the mLDP (hop-by-hop) which algorithm needs to be used to create the MP LSP.
      </t>
      <t>
	Since the MT-ID and IPA are part of the FEC, they apply to all the LDP messages that potentially include an mLDP FEC element.
      </t>
      <section anchor="mp-fec-ext-mt" numbered="true" toc="default">
        <name>MP FEC Extensions for MT</name>
        <t>
	  The following subsections define the extensions to bind an mLDP FEC to
	  a topology. These mLDP MT extensions reuse some of the extensions
	  specified in <xref target="RFC7307" format="default"/>.
        </t>
        <section numbered="true" toc="default">
          <name>MP FEC Element</name>
          <t>
	    The base mLDP specification (<xref target="RFC6388" format="default"/>) defines the MP FEC element as follows:
          </t>
	  
	  
          <figure anchor="mp-fec">
            <name>MP FEC Element Format</name>
            <artwork name="" type="" align="left" alt=""><![CDATA[
    0                   1                   2                   3     
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1    
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   
   | MP FEC type   |       Address Family          |    AF Length  |  
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                Root Node Address                              | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |    Opaque Length              |       Opaque Value            | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               + 
   ~                                                               ~ 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
]]></artwork>
          </figure>
          <t>
	    Where the "Root Node Address" field encoding is defined according to the given "Address
Family" field with its length (in octets) specified by the "AF Length" field.

          </t>
          <t>

	    To extend MP FEC elements for MT, the {MT-ID, IPA} tuple is relevant in the
context of the root address of the MP LSP. This tuple determines the
(sub-)topology in which the root address needs to be resolved. As the {MT-ID,
IPA} tuple should be considered part of the mLDP FEC, it is most naturally
encoded as part of the root address. 

          </t>
        </section>
        <section anchor="MT_IP_AFI" numbered="true" toc="default">
          <name>MT IP Address Families</name>
          <t>
	    <xref target="RFC7307" format="default"/> specifies new address families, named "MT IP" and "MT IPv6," to
allow for the specification of an IP prefix within a topology scope. In addition
to using these address families for mLDP, 8 bits of the 16-bit "Reserved" field that was described in RFC 7307
are utilized to encode the IPA. The resulting format
of the data associated with these new address families is as follows:

          </t>
	  

	  
          <figure anchor="mt-afi">
            <name>Modified Format for MT IP Address Families</name>
            <artwork name="" type="" align="left" alt=""><![CDATA[
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     IPv4 Address                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Reserved   |      IPA      |        MT-ID                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     IPv6 Address                              |
   |                                                               |
   |                                                               |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Reserved   |      IPA      |        MT-ID                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>

          <t>Where:</t>
          <dl>
	    <dt>IPv4 Address and IPv6 Address:</dt>
	    <dd>An IP address corresponding to the "MT IP" and "MT IPv6" address families, respectively.</dd>

            <dt>IPA:</dt>
	    <dd>The IGP Algorithm.</dd>

            <dt>Reserved:</dt>
	    <dd>This 8-bit field <bcp14>MUST</bcp14> be zero on transmission and <bcp14>MUST</bcp14> be ignored on receipt.</dd>
          </dl>
        </section>
        <section numbered="true" toc="default">
	  
          <name>MT MP FEC Element</name>
          <t>
	    When using the extended "MT IP" address family, the resulting MT-Scoped MP
	    FEC element should be encoded as follows:
          </t>
	  
          <figure anchor="mt-mp-fec">
            <name>Format for an IP MT-Scoped MP FEC Element</name>
            <artwork name="" type="" align="left" alt=""><![CDATA[
    0                   1                   2                   3     
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1    
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
   | MP FEC type   |  AF (MT IP/ MT IPv6)          |    AF Length  |  
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |                       Root Node Address                       | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Reserved   |      IPA      |        MT-ID                  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |    Opaque Length              |       Opaque Value            | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               + 
   ~                                                               ~ 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
]]></artwork>
          </figure>
          <t>
	    In the context of this document, the applicable LDP FECs for MT mLDP (<xref target="RFC6388" format="default"/>)
	    include:
          </t>
          <ul spacing="normal">
            <li>
              <t>MP FEC elements:
              </t>
              <ul spacing="normal">
                <li>
                  <t>P2MP (type 0x6)</t>
                </li>
                <li>
                  <t>MP2MP-up (type 0x7)</t>
                </li>
                <li>
                  <t>MP2MP-down (type 0x8)</t>
                </li>
              </ul>
            </li>
            <li>
              <t>Typed Wildcard FEC Element (type 0x5 defined in <xref target="RFC5918" format="default"/>)</t>
            </li>
          </ul>
          <t>
	    In the case of the Typed Wildcard FEC Element, the FEC element type
	    <bcp14>MUST</bcp14> be one of the MP FECs listed above. 
          </t>
          <t>
	    This specification allows the use of topology-scoped mLDP FECs in
	    LDP labels and notification messages, as applicable.  
          </t>
          <t>	  
	    <xref target="RFC6514" format="default"/> defines the PMSI tunnel
	    attribute for MVPN and specifies that:</t>
	    <ul>
	      <li>when the Tunnel Type is set
	    to mLDP P2MP LSP, the Tunnel Identifier is a P2MP FEC element, and</li>
	    <li>when the Tunnel Type is set to mLDP MP2MP LSP, the Tunnel Identifier is an MP2MP FEC element.</li></ul> <t> When
	    the extension defined in this specification is in use, the IP
	    MT-Scoped MP FEC element form of the respective FEC
	    elements <bcp14>MUST</bcp14> be used in these two cases.
          </t>
        </section>
      </section>
      <section numbered="true" toc="default">
        <name>Topology IDs</name>
        <t>
	  This document assumes the same definitions and procedures associated
	  with MPLS MT-ID as specified in <xref target="RFC7307" format="default"/>. 
        </t>
      </section>
    </section>
    <section numbered="true" toc="default">
      <name>MT Multipoint Capability</name>
      <t>
	The "MT Multipoint" capability is a new LDP capability, defined in
	accordance with the LDP capability definition guidelines outlined in
	<xref target="RFC5561" format="default"/>. An mLDP speaker advertises
	this capability to its peers to announce its support for MTR and the
	procedures specified in this document. This capability
	<bcp14>MAY</bcp14> be sent either in an Initialization message at
	session establishment or dynamically during the session's lifetime via
	a Capability message, provided that the "Dynamic Announcement"
	capability from <xref target="RFC5561" format="default"/> has been
	successfully negotiated with the peer.
      </t>
      <t>
	The format of this capability is as follows:
      </t>
      <figure anchor="mt-mp-cap">
        <name>Format for the MT Multipoint Capability TLV</name>
        <artwork name="" type="" align="left" alt=""><![CDATA[
    0                   1                   2                   3     
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1    
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    
   |U|F|  MT Multipoint Capability |            Length             |    
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+    
   |S| Reserved    |     
   +-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>
      
      <t>Where:</t>
      <dl>
        <dt>U and F bits:</dt>
	<dd><bcp14>MUST</bcp14> be 1 and 0, respectively, as per <xref
	target="RFC5561" sectionFormat="of" section="3"/>.</dd>

        <dt>MT Multipoint Capability:</dt>
	<dd>The TLV type.</dd>


	<dt>Length:</dt><dd>This field specifies the length of the TLV in
	octets. The value of this field <bcp14>MUST</bcp14> be 1, as there
	is no capability-specific data <xref target="RFC5561"
	format="default"/> following the TLV.</dd>

        <dt>S bit:</dt>
	<dd>Set to 1 to announce and 0 to withdraw the capability (as per
	<xref target="RFC5561" format="default"/>).</dd>
      </dl>

      <t>
	An mLDP speaker that has successfully advertised and negotiated the "MT
	Multipoint" capability <bcp14>MUST</bcp14> support the following:
      </t>
      <ol spacing="normal" type="1">
	<li>
          <t>Topology-scoped mLDP FECs in LDP messages (<xref target="mp-fec-ext-mt" format="default"/>)</t>
        </li>
        <li>
          <t>Topology-scoped mLDP forwarding setup (<xref target="mt-fwd" format="default"/>)</t>
        </li>
      </ol>
    </section>
    <section numbered="true" toc="default">
      <name>MT Applicability on FEC-Based Features</name>
      <section anchor="Typed_Wildcard_Fec" numbered="true" toc="default">
        <name>Typed Wildcard MP FEC Elements</name>
        <t>
	  <xref target="RFC5918" format="default"/> extends the base LDP and defines the Typed Wildcard FEC Element
	  framework. A Typed Wildcard FEC Element can be used in any LDP message
	  to specify a wildcard operation for a given type of FEC.
        </t>

        <t>
	 The MT extensions defined in this document do not require any
	 extension to procedures for support of the Typed Wildcard FEC Element <xref
	 target="RFC5918" format="default"/>, and these procedures apply as is
	 to Multipoint MT FEC wildcarding. Similar to the Typed Wildcard MT Prefix
	 FEC element, as defined in <xref target="RFC7307" format="default"/>,
	 the MT extensions allow the use of "MT IP" or "MT IPv6" in the
         "Address Family" field of the Typed Wildcard MP FEC Element. This is
	 done in order to use wildcard operations for MP FECs in the context
	 of a given (sub-)topology as identified by the "MT-ID" and "IPA" fields.
	</t>
        <t>
	  This document defines the following format and encoding for a Typed
	  Wildcard MP FEC Element:
        </t>
        <figure anchor="mt-mp-wc-fec">
          <name>Format for the Typed Wildcard MT MP FEC Element</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[	    
    0                   1                   2                   3      
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1   
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   
   |Typed Wcard (5)| Type = MP FEC |   Len = 6     |  AF = MT IP ..|   
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   
   |... or MT IPv6 |    Reserved   |      IPA      |     MT-ID     | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
   |MT-ID (cont.)  | 
   +-+-+-+-+-+-+-+-+ 
]]></artwork>
        </figure>
        <t>Where:</t>
        <dl>
           <dt>Type:</dt><dd>One of the MP FEC element types (P2MP, MP2MP-up, or MP2MP-down)</dd>
           <dt>MT-ID:</dt><dd>MPLS MT-ID</dd>
           <dt>IPA:</dt><dd>The IGP Algorithm</dd>
        </dl>
        <t>
	  The defined format allows a Label Switching Router (LSR) to perform wildcard MP FEC
	  operations under the scope of a (sub-)topology.  
        </t>
      </section>
      <section numbered="true" toc="default">
        <name>End-of-LIB</name>
        <t>  
	  <xref target="RFC5919" format="default"/> specifies extensions and
	  procedures that allow an LDP speaker to signal its End-of-LIB (Label Information Base) for a
	  given FEC type to a peer. By leveraging the End-of-LIB message, LDP
	  ensures that label distribution remains consistent and reliable,
	  even during network disruptions or maintenance activities. The MT
	  extensions for MP FEC do not require any modifications to these
	  procedures and apply as they are to MT MP FEC elements. Consequently, an
	  MT mLDP speaker <bcp14>MAY</bcp14> signal its convergence per
	  (sub-)topology using the MT Typed Wildcard MP FEC Element.
        </t>
      </section>
    </section>
    <section anchor="mt-fwd" numbered="true" toc="default">
      <name>Topology-Scoped Signaling and Forwarding</name>
      <t>
	Since the {MT-ID, IPA} tuple is part of an mLDP FEC, there is no need to support
	the concept of multiple (sub-)topology forwarding tables in mLDP. Each MP LSP will be
	unique due to the tuple being part of the FEC. There is also no need
	to have specific label forwarding tables per topology, and each MP
	LSP will have its own unique local label in the table. However, in
	order to implement MTR in an mLDP network, the selection procedures
	for an upstream LSR and a downstream forwarding interface need to be
	changed.
      </t>
      <section numbered="true" toc="default">
        <name>Upstream LSR Selection</name>
        <t>
	  The procedures described in <xref section="2.4.1.1" sectionFormat="of" target="RFC6388"/> depend on
	  the best path to reach the root. When the {MT-ID, IPA} tuple is signaled as part
	  of the FEC, the tuple is also used to select the (sub-)topology that must be
	  used to find the best path to the root address. Using the next-hop
	  from this best path, an LDP peer is selected following the procedures
	  defined in <xref target="RFC6388" format="default"/>.
        </t>
      </section>
      <section numbered="true" toc="default">
        <name>Downstream Forwarding Interface Selection</name>
        <t>
	  <xref target="RFC6388" sectionFormat="of" section="2.4.1.2"/> describes the procedures for how
	  a downstream forwarding interface is selected. In these procedures,
	  any interface leading to the downstream LDP neighbor can be
	  considered to be a candidate forwarding interface. When the {MT-ID, IPA} tuple is part
	  of the FEC, this is no longer true. An interface must only be
	  selected if it is part of the same (sub-)topology that was signaled in the
	  mLDP FEC element. Besides this restriction, the other procedures in
	  <xref target="RFC6388" format="default"/> apply.
        </t>
      </section>
    </section>
    <section numbered="true" toc="default">
      <name>LSP Ping Extensions</name>
      <t>
	<xref target="RFC6425" format="default"/> defines procedures to detect data plane failures in
	multipoint MPLS LSPs. <xref target="RFC6425" sectionFormat="of" section="3.1.2"/> defines new sub-types and sub-TLVs for Multipoint LDP FECs to be sent in the "Target FEC
	Stack" TLV of an MPLS Echo Request message <xref target="RFC8029" format="default"/>.
      </t>
      <t>
	To support LSP ping for MT MP LSPs, this document uses
	existing sub-types "P2MP LDP FEC Stack" and "MP2MP LDP FEC Stack"
	defined in <xref target="RFC6425" format="default"/>. The LSP ping extension is to specify "MT IP"
	or "MT IPv6" in the "Address Family" field, set the "Address Length"
	field to 8 (for MT IP) or 20 (for MT IPv6), and encode the sub-TLV
	with additional {MT-ID, IPA} information as an extension to the "Root LSR
	Address" field. The resultant format of sub-TLV is as follows:
      </t>


      <figure anchor="mt-fec-lspv">
        <name>Multipoint LDP FEC Stack Sub-TLV Format for MT</name>
        <artwork name="" type="" align="left" alt=""><![CDATA[
 0                   1                   2                   3 
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
|Address Family (MT IP/MT IPv6) | Address Length|               | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               | 
~                   Root LSR Address (Cont.)                    ~ 
|                                                               | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Reserved   |      IPA      |        MT-ID                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        Opaque Length          |         Opaque Value ...      | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               + 
~                                                               ~ 
|                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
|                               | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
]]></artwork>
      </figure>
      <t>
	The rules and procedures of using this new sub-TLV in an MPLS Echo
	Request message are the same as defined for the P2MP/MP2MP LDP FEC Stack
	sub-TLV in <xref target="RFC6425" format="default"/>. The only
	difference is that the "Root LSR Address" field is now (sub-)topology scoped.
      </t>
    </section>

    <section numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>
	This extension to mLDP does not introduce any new security
	considerations beyond what is already applied to the base LDP
	specification <xref target="RFC5036" format="default"/>, the LDP
	extensions for Multi-Topology specification <xref target="RFC7307"
	format="default"/>, the base mLDP specification <xref target="RFC6388"
	format="default"/>, and the MPLS security framework specification <xref target="RFC5920"
	format="default"/>.
      </t>
    </section>
    <section numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>
	This document defines a new LDP capability parameter TLV called the "MT Multipoint Capability".  IANA has assigned the value 0x0510 from the
	"TLV Type Name Space" registry in the "Label Distribution Protocol (LDP)
	Parameters" group as the new code point.
      </t>

<table anchor="iana">
  <name>MT Multipoint Capability</name>
  <thead>
    <tr>
      <th>Value</th>
      <th>Description</th>
      <th>Reference</th>
      <th>Notes/Registration Date</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>0x0510</td>
      <td>MT Multipoint Capability</td>
      <td>RFC 9658</td>
      <td></td>
    </tr>
  </tbody>
</table>
</section>
  </middle>

  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4915.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5120.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7307.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6388.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8029.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6425.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9350.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6514.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6513.xml"/>
      </references>
      <references>
        <name>Informative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5036.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5918.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5919.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5920.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5561.xml"/>

        <reference anchor="IANA-IGP" target="https://www.iana.org/assignments/igp-parameters">
          <front>
            <title>IGP Algorithm Types</title>
            <author>
	      <organization>IANA</organization>
	    </author>
           </front>
        </reference>

      </references>
    </references>

        <section numbered="false" toc="default">
	  <name>Contributors</name>
	  <contact fullname="Anuj Budhiraja">
	    <organization>Cisco Systems</organization></contact>
    </section>

    <section numbered="false" toc="default">
      <name>Acknowledgments</name>
      <t>
	The authors would like to acknowledge <contact fullname="Eric Rosen"/> for his input on
	this specification.
      </t>
    </section>
  </back>
</rfc>
