<?xml version="1.0" encoding="iso-8859-1"?>
<?rfc toc="yes"?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>

<rfc category="std" ipr="trust200902" docName="draft-ietf-mpls-lsp-ping-ioam-conf-state-01" consensus="true" submissionType="IETF">

<front>
  <title abbrev="LSP Ping for IOAM Capabilities"> LSP Ping/Traceroute for Enabled In-situ OAM Capabilities </title>

  <author fullname="Xiao Min" initials="X" surname="Min">
      <organization>ZTE Corp.</organization>
     <address>
       <postal>
         <street></street>

         <!-- Reorder these if your country does things differently -->

         <city>Nanjing</city>

         <region></region>

         <code></code>

         <country>China</country>
       </postal>

       <phone>+86 18061680168</phone>

       <email>xiao.min2@zte.com.cn</email>

       <!-- uri and facsimile elements may also be added -->
     </address>
    </author>

  <author fullname="Greg Mirsky" initials="G" surname="Mirsky">
      <organization>Ericsson</organization>
     <address>
       <postal>
         <street></street>

         <!-- Reorder these if your country does things differently -->

         <city></city>

         <region></region>

         <code></code>

         <country>United States of America</country>
       </postal>

       <phone></phone>

       <email>gregimirsky@gmail.com</email>

       <!-- uri and facsimile elements may also be added -->
     </address>
    </author>

  <author fullname="Loa Andersson" initials="L" surname="Andersson">
      <organization>Bronze Dragon Consulting</organization>
     <address>
       <postal>
         <street></street>

         <!-- Reorder these if your country does things differently -->

         <city></city>

         <region></region>

         <code></code>

         <country>Sweden</country>
       </postal>

       <phone></phone>

       <email>loa@pi.nu</email>

       <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
	
    <date year="2026"/>
	
    <area>Internet</area>
    <workgroup>MPLS Working Group</workgroup>

    <keyword>Request for Comments</keyword>
    <keyword>RFC</keyword>
    <keyword>Internet Draft</keyword>
    <keyword>I-D</keyword>

    <abstract>
	
  <t> This document describes the application of the mechanism of discovering In-situ OAM (IOAM) capabilities, described in RFC 9359 
  "Echo Request/Reply for Enabled In Situ OAM (IOAM) Capabilities", in MPLS networks. The MPLS Node IOAM Information Query functionality 
  uses the MPLS echo request/reply messages, allowing the IOAM encapsulating node to discover the enabled IOAM capabilities of each IOAM 
  transit and IOAM decapsulating node.</t>
  
    </abstract>
    
</front>
  
<middle>

  <section title="Introduction">
  
  <t> MPLS encapsulation for In-situ OAM (IOAM) data is defined in <xref target="I-D.ietf-mpls-mna-ioam"/>, which utilizes MPLS 
  Network Actions (MNA) techniques (<xref target="RFC9789"/>) to carry IOAM data fields (<xref target="RFC9197"/>, <xref target="RFC9326"/>) 
  in MPLS packets.</t>

  <t> As specified in <xref target="RFC9359"/>, the echo request/reply can be used by the IOAM encapsulating node to discover the 
  enabled IOAM capabilities at IOAM transit and decapsulating nodes.</t>
  
  <t> <xref target="RFC8029"/> defines a probe message called "MPLS echo request", and a response message called "MPLS echo reply" 
  for returning the result of the probe.</t>
  
  <t> This document describes the MPLS Node IOAM Information Query functionality, which uses the MPLS echo request/reply messages, 
  allowing the IOAM encapsulating node to discover the enabled IOAM capabilities of each IOAM transit and IOAM decapsulating node.</t>
  
  <t> <xref target="RFC8029"/> specifies "ping" and "traceroute" modes. In "ping" mode, the ingress LSR sends a single MPLS echo 
  request with the TTL in the outermost label stack entry set to 255. The MPLS echo request is intended to reach the end of the path 
  and only the egress LSR is expected to respond with the MPLS echo reply. In "traceroute" mode, the ingress LSR transmits a sequence 
  of MPLS echo requests with the TTL value being set in successive probe packets to 1, 2, and so on. Using TTL expiration as the exception 
  mechanism, each LSR is expected to respond by transmitting an MPLS echo reply.</t>
  
  <t> In an MPLS network, the ingress LSR may also act as the IOAM encapsulating node. In such a case, a transit LSR acts as the IOAM 
  transit node, and the egress LSR acts as the IOAM decapsulating node. Usually, the trace option of IOAM data is needed, the IOAM 
  encapsulating node requires to query the enabled IOAM capabilities of each IOAM transit and decapsulating node, then the "traceroute" 
  mode can be used. In case that only the edge to edge option of IOAM data is needed, the IOAM encapsulating node requires to query the 
  enabled IOAM Capabilities of only the IOAM decapsulating node, then the "ping" mode can be used.</t>
  
  <t> The mechanism specified in this document applies to both point-to-point (P2P) MPLS LSP and point-to-multipoint (P2MP) MPLS LSP.</t>
       
  </section>
  
   <section title="Conventions Used in This Document">

	<t> The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", 
	"RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as 
	described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear 
	in all capitals, as shown here.</t>
	
   </section>

  <section title="IOAM Capabilities Query TLV">

	<t> The IOAM Capabilities Query TLV presented in Figure 1 is carried 
	as a TLV of the MPLS Echo Request message:</t>
	 
     <figure anchor="Figure_1" title="IOAM Capabilities Query TLV">
     <artwork align="center"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  IOAM Capa. Query Type (TBA1) |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
.                                                               .
.                  List of IOAM Namespace-IDs                   .
.                                                               .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     ]]></artwork>
     </figure>

    <t>Type: Indicates the IOAM Capabilities Query TLV. The value is TBA1.</t>

    <t>Length: The length of the TLV's Value field in octets.</t>

    <t>The Value field is a List of IOAM Namespace-IDs, which is also 
	called IOAM Capabilities Query Container Payload in Section 3.1 
	of <xref target="RFC9359"/>.</t>
	
	<section title="Examples of the IOAM Capabilities Query">
        
     <t> The format of an IOAM Capabilities Query can vary from deployment to deployment.</t> 
	 
     <t> In a deployment where only the default Namespace-ID is used, the IOAM Capabilities Query 
	 is depicted as the following:</t> 
	 
     <figure anchor="Figure_2" title="IOAM Capabilities Query of the Default IOAM Namespace">
     <artwork align="center"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  IOAM Capa. Query Type (TBA1) |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Namespace-ID          |          Zero-padded          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     ]]></artwork>
     </figure>
	 
     <t> In a deployment where two Namespace-IDs (Namespace-ID1 and Namespace-ID2) are used, the 
	 IOAM Capabilities Query is depicted as the following:</t> 
	 
     <figure anchor="Figure_3" title="IOAM Capabilities Query of the Two IOAM Namespaces">
     <artwork align="center"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  IOAM Capa. Query Type (TBA1) |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Namespace-ID1         |         Namespace-ID2         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     ]]></artwork>
     </figure>
	
    </section> 	 
	 
  </section> 
   
  <section title="IOAM Capabilities Response TLV">

	<t> The IOAM Capabilities Response TLV presented in Figure 4 is carried 
	as a TLV of the MPLS Echo Reply message:</t>
	 
     <figure anchor="Figure_4" title="IOAM Capabilities Response TLV">
     <artwork align="center"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|IOAM Capa. Response Type (TBA2)|            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
.                                                               .
.               List of IOAM Capabilities Sub-TLVs              .
.                                                               .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     ]]></artwork>
     </figure>

    <t>Type: Indicates the IOAM Capabilities Response TLV. The value is TBA2.</t>

    <t>Length: The length of the TLV's Value field in octets.</t>

    <t>The Value field is a List of IOAM Capabilities Objects, which is 
	also called IOAM Capabilities Response Container Payload in Section 3.2 
	of <xref target="RFC9359"/>. Each IOAM Capabilities Object is encoded in 
	a sub-TLV format.</t>
	 
	<section title="IOAM Capabilities Sub-TLVs">

	<t> All IOAM Capabilities sub-TLVs (aka Objects) are encapsulated in an IOAM Capabilities Response TLV of 
	an MPLS Echo Reply message.</t>
	
	<t> Each IOAM Capabilities sub-TLV has the following format:</t>
	 
     <figure anchor="Figure_5" title="IOAM Capabilities Sub-TLV">
     <artwork align="center"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      IOAM Capa. Sub-type      |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
.                                                               .
.                IOAM Capabilities Object Payload               .
.                                                               .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     ]]></artwork>
     </figure>

    <t>Sub-type: Indicates the IOAM Capabilities sub-TLVs. The values are listed as the following:</t>
		
     <figure>
       <artwork><![CDATA[
   Value         Sub-type Name
   -----         -----------
   1             IOAM Pre-allocated Tracing Capabilities Object
   2             IOAM Proof of Transit Capabilities Object
   3             IOAM Edge-to-Edge Capabilities Object
   4             IOAM DEX Capabilities Object
   5             IOAM End-of-Domain Object   
     ]]></artwork>
     </figure>
		
    <t>Length: The length of the sub-TLV's Value field in octets.</t>

    <t>The Value field of the IOAM Capabilities sub-TLV is the IOAM Capabilities Object Payload, which 
	is defined in Sections 3.2.1, 3.2.3, 3.2.4, 3.2.5, and 3.2.6 of <xref target="RFC9359"/>.</t>
	
    </section> 
	 
	<section title="Examples of IOAM Capabilities Response TLV">
        
     <t> The format of an IOAM Capabilities Response can vary from deployment to deployment.</t> 
	 
     <t> In a deployment where only the default Namespace-ID is used, the IOAM Pre-allocated Tracing 
	 Capabilities and IOAM Proof of Transit Capabilities are enabled at an IOAM transit node, if that IOAM 
	 transit node received an MPLS echo request containing IOAM Capabilities Query TLV, then the IOAM Capabilities 
	 Response TLV contained in an MPLS echo reply is depicted as the following:</t> 
	 
     <figure anchor="Figure_6" title="Example 1 of IOAM Capabilities Response TLV">
     <artwork align="center"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|IOAM Capa. Response Type (TBA2)|            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    IOAM Capa. Sub-type (1)    |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               IOAM-Trace-Type                 |  Reserved   |W|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Namespace-ID          |          Ingress_MTU          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Ingress_if_id (short or wide format)         ......          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    IOAM Capa. Sub-type (2)    |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Namespace-ID          | IOAM-POT-Type |SoP| Reserved  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     ]]></artwork>
     </figure>
	 
     <t> In a deployment where two Namespace-IDs (Namespace-ID1 and Namespace-ID2) are used, for both 
	 Namespace-ID1 and Namespace-ID2 the IOAM Pre-allocated Tracing Capabilities and IOAM Proof of Transit 
	 Capabilities are enabled at an IOAM transit node, if that IOAM transit node received an MPLS echo request 
	 containing IOAM Capabilities Query TLV, then the IOAM Capabilities Response TLV contained in an MPLS echo 
	 reply is depicted as the following:</t> 
	 
     <figure anchor="Figure_7" title="Example 2 of IOAM Capabilities Response TLV">
     <artwork align="center"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|IOAM Capa. Response Type (TBA2)|            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    IOAM Capa. Sub-type (1)    |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               IOAM-Trace-Type                 |  Reserved   |W|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Namespace-ID1         |          Ingress_MTU          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Ingress_if_id (short or wide format)         ......          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    IOAM Capa. Sub-type (2)    |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Namespace-ID1         | IOAM-POT-Type |SoP| Reserved  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    IOAM Capa. Sub-type (1)    |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               IOAM-Trace-Type                 |  Reserved   |W|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Namespace-ID2         |          Ingress_MTU          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Ingress_if_id (short or wide format)         ......          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    IOAM Capa. Sub-type (2)    |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Namespace-ID2         | IOAM-POT-Type |SoP| Reserved  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     ]]></artwork>
     </figure>
	 
     <t> Note that multiple sub-TLVs with the same sub-type may be present in an IOAM Capabilities Response TLV, as 
	 long as the Namespace-IDs in these sub-TLVs are all different.</t> 
	 
     <t> In a deployment where only the default Namespace-ID is used, the IOAM Pre-allocated Tracing Capabilities, 
	 IOAM Proof of Transit Capabilities and IOAM Edge-to-Edge Capabilities are enabled at the IOAM decapsulating 
	 node, if that IOAM decapsulating node received an MPLS echo request containing IOAM Capabilities Query TLV, then 
	 the IOAM Capabilities Response TLV contained in an MPLS echo reply is depicted as the following:</t> 
	 
     <figure anchor="Figure_8" title="Example 3 of IOAM Capabilities Response TLV">
     <artwork align="center"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|IOAM Capa. Response Type (TBA2)|            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    IOAM Capa. Sub-type (1)    |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               IOAM-Trace-Type                 |  Reserved   |W|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Namespace-ID          |          Ingress_MTU          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Ingress_if_id (short or wide format)         ......          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    IOAM Capa. Sub-type (2)    |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Namespace-ID          | IOAM-POT-Type |SoP| Reserved  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    IOAM Capa. Sub-type (3)    |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Namespace-ID          |         IOAM-E2E-Type         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|TSF|         Reserved          |           Reserved            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     ]]></artwork>
     </figure>
	
    </section> 
  </section> 
   
  <section title="Return Code Field Processing">

     <t>The Return Code field in the MPLS echo reply MUST be set to (TBA3) No Matched Namespace-ID if any of the
     following conditions apply:<list style="symbols">
         <t>The IOAM Capabilities Query TLV does not include any Namespace-ID.</t>

         <t>None of the contained list of IOAM Namespace-IDs is recognized.</t>

         <t>None of the contained list of IOAM Namespace-IDs is enabled.</t>
       </list></t>

  </section> 
  
  <section title="Operational Considerations">

  <t>Section 4 of <xref target="RFC9359"/> provides an operational guide on how to use echo request/reply 
  for discovering enabled IOAM capabilities at network nodes, which applies to this document as well. 
  Specifically, if only the IOAM Edge-to-Edge Option-Type is enabled for an MPLS LSP, then LSP Ping in 
  "ping" mode would be operated, which means the LSP ingress node would send a single MPLS echo 
  request to the LSP egress node for discovering its IOAM Edge-to-Edge Capabilities; if other IOAM Option-Type 
  than the Edge-to-Edge Option-Type is enabled for an MPLS LSP, e.g., the IOAM Pre-allocated Trace Option-Type 
  is enabled for an MPLS LSP, then LSP Ping in "traceroute" mode would be operated, which means the LSP 
  ingress node would send a sequence of MPLS echo requests with TTL equal to 1, 2, 3, and so on, until the 
  LSP ingress node receives an MPLS echo reply sent by the LSP egress node. </t>
  
  <t>Considering the IOAM function is resource-consuming, in an MPLS network with high number LSPs, usually 
  not all the LSPs are IOAM enabled, in that case, the LSP Ping mechanism for IOAM capabilities discovery would 
  be executed only with the IOAM-enabled LSPs. </t>

  </section> 

  <section anchor="IANA" title="IANA Considerations">

  <t>This document does request that IANA assigns two new TLVs, and new sub-TLV registry for one 
  of the new TLVs, 5 sub-TLVs to initially populate this registry and a new return code (TBA3).</t>
  
   <section title="TLV assigments">
   
   <t>IANA is requested to assign two new TLVs (TBA1 and TBA2) from the "TLV" registry in the 
   "Multiprotocol Label Switching (MPLS) Label Switched Paths (LSPs) Ping Parameters" registry group. 
   The TLVs' values should be assigned from the range of TLVs that require an error message if the 
   TLV is not recognized. If possible the two lowest free values should be used for these TLVs.</t>
   
   <texttable title="New TLVs">
    <ttcol align='left'>Type</ttcol>
    <ttcol align='left'>TLV Name</ttcol>
    <ttcol align='left'>Reference</ttcol>
    <ttcol align='left'>Sub-TLV Registry</ttcol>
    <c>TBA1</c><c>IOAM Capabilities Query</c><c>This document</c><c>No Sub-TLVs</c>
    <c>TBA2</c><c>IOAM Capabilities Response</c><c>This document</c><c><xref target="iana-allocation-table3"/></c>
   </texttable>

   </section> 
  
   <section title="New Sub-TLV registry">
   
   <t>A new sub-TLV registry should be created for the TLV TBA2 created in Section 6.1.</t>
   
   <t>The registration procedures for this sub-TLV registry shall be:</t>
   
   <texttable title="Sub-TLV Registration Procedures">
    <ttcol align='left'>Range</ttcol>
    <ttcol align='left'>Registration Procedure</ttcol>
    <ttcol align='left'>Note</ttcol>
    <c>0-16383</c><c>Standards Action</c><c>This range is for TLVs that require an error message if not recognized. (<xref target="RFC9041"/>, Section 3.1)</c>
    <c>16384-31739</c><c>RFC Required</c><c>This range is for TLVs that require an error message if not recognized. (<xref target="RFC9041"/>, Section 3.1)</c>
    <c>31740-31743</c><c>Experimental Use</c><c>Reserved, not to be assigned. This range is for TLVs that require an error message if not recognized. (<xref target="RFC9041"/>, Section 3.1)</c>
    <c>31744-32767</c><c>First Come First Served</c><c>This range is for TLVs that require an error message if not recognized. (<xref target="RFC9041"/>, Section 3.1)</c>
    <c>32768-49161</c><c>Standards Action</c><c>This range is for TLVs that can be silently dropped if not recognized.</c>
    <c>49162-64507</c><c>RFC Required</c><c>This range is for TLVs that can be silently dropped if not recognized.</c>
    <c>64508-64511</c><c>Experimental Use</c><c>Reserved, not to be assigned. This range is for TLVs that can be silently dropped if not recognized.</c>
    <c>64512-65535</c><c>First Come First Served</c><c>This range is for TLVs that can be silently dropped if not recognized.</c>
	</texttable>
   
   <t>This sub-TLV registry should initially be populated with the following values.</t>
   
   <texttable anchor="iana-allocation-table3" title="New Sub-TLV Registry for TLV TBA2">
    <ttcol align='left'>Sub-Type</ttcol>
    <ttcol align='left'>Sub-TLV name</ttcol>
    <ttcol align='left'>Reference</ttcol>
    <ttcol align='left'>Comment</ttcol>
    <c>0</c><c>Reserved</c><c>This document</c><c></c>
    <c>1</c><c>IOAM Pre-allocated Tracing Capabilities Object</c><c>This document</c><c></c>
    <c>2</c><c>IOAM Proof of Transit Capabilities Object</c><c>This document</c><c></c>
    <c>3</c><c>IOAM Edge-to-Edge Capabilities Object</c><c>This document</c><c></c>
    <c>4</c><c>IOAM DEX Capabilities Object</c><c>This document</c><c></c>
    <c>5</c><c>IOAM End-of-Domain Object</c><c>This document</c><c></c>
	</texttable>

   </section> 

   <section title="Return Code assignment">
  
   <t>IANA is requested to assign a new Return Code from the "Return Code" registry in the "Multiprotocol 
   Label Switching (MPLS) Label Switched Paths (LSPs) Ping Parameters" registry group as follows:</t>
   
   <texttable title="New Return Code">
    <ttcol align='left'>Value</ttcol>
    <ttcol align='left'>Meaning</ttcol>
    <ttcol align='left'>Reference</ttcol>
    <c>TBA3</c>
    <c>No Matched Namespace-ID</c>
    <c>This document</c>
   </texttable>
   
   </section>		

  </section>
  
  <section title="Security Considerations">
  
  <t> Security issues discussed in <xref target="RFC8029"/> and <xref target="RFC9359"/> apply to this document.</t>
  
  <t> This document recommends that the network operators establish policies that restrict access to MPLS Node IOAM 
  Information Query functionality. In order to enforce these policies, nodes that support MPLS Node IOAM Information 
  Query functionality are RECOMMENDED to support the following configuration options:</t>

  <t><list style="symbols">
      <t>Enable/disable MPLS Node IOAM Information Query functionality. By default, MPLS Node IOAM Information Query 
	  functionality is disabled.</t>

      <t>Define enabled Namespace-IDs. By default, all Namespace-IDs except the default one (i.e., Namespace-ID 
	  0x0000) are disabled.</t>
  </list></t>
  
  <t> While applying the MPLS Node IOAM Information Query to P2MP MPLS LSP, since a single MPLS echo request may trigger 
  multiple echo replies, there are scaling concerns and some mitigation measures, e.g., containing the Echo Jitter TLV 
  in the MPLS echo request, as being specified in <xref target="RFC6425"/>, MAY be applied.</t>
  
  </section>
  
  <section title="Acknowledgements">
  
  <t> The authors would like to acknowledge Tarek Saad for his comments on the idea of using LSP Ping for MPLS IOAM 
  Capabilities Discovery.</t>
  
  <t> The authors would like to acknowledge Adrian Farrel for his insightful review and comments.</t>
  
  </section>  
  
</middle>
  
<back>

    <references title="Normative References">
     <?rfc include="reference.RFC.2119"?>
     <?rfc include="reference.RFC.8174"?>
     <?rfc include="reference.RFC.8029"?>
     <?rfc include="reference.RFC.9359"?>
     <?rfc include="reference.RFC.6425"?>
     <?rfc include="reference.RFC.9041"?>
     <?rfc include="reference.I-D.ietf-mpls-mna-ioam"?>
    </references>
	
    <references title="Informative References">
     <?rfc include="reference.RFC.9197"?>
     <?rfc include="reference.RFC.9326"?>
     <?rfc include="reference.RFC.9789"?>
    </references>
	
</back>
</rfc>

