<?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" submissionType="IETF" docName="draft-gandhi-mpls-mna-ioam-dex-01" category="std" ipr="trust200902" consensus="true" obsoletes="" xml:lang="en" sortRefs="true" symRefs="true" tocInclude="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.0 -->
  <!-- Generated by id2xml 1.5.0 on 2020-03-09T17:12:10Z -->
    <front>
    <title abbrev="MNA for In Situ OAM and Direct Export">MPLS Network Actions for Transporting In Situ Operations, Administration, and Maintenance (IOAM) Data Fields and Direct Exporting</title>
    <seriesInfo name="Internet-Draft" value="draft-gandhi-mpls-mna-ioam-dex-01"/>
    <author fullname="Rakesh Gandhi" initials="R." role="editor" surname="Gandhi">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street>Canada</street>
        </postal>
        <email>rgandhi@cisco.com</email>
      </address>
    </author>
    <author fullname="Frank Brockners" initials="F." surname="Brockners">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street>Hansaallee 249, 3rd Floor</street>
          <street>DUESSELDORF, NORDRHEIN-WESTFALEN  40549</street>
          <street>Germany</street>
        </postal>
        <email>fbrockne@cisco.com</email>
      </address>
    </author>
    <author fullname="Bin Wen" initials="B." surname="Wen">
      <organization>Comcast</organization>
      <address>
        <email>Bin_Wen@cable.comcast.com</email>
      </address>
    </author>
    <author fullname="Bruno Decraene" initials="B." surname="Decraene">
      <organization>Orange</organization>
      <address>
        <email>bruno.decraene@orange.com</email>
      </address>
    </author>
   <author fullname="Haoyu Song" initials="H." surname="Song">
      <organization>Futurewei Technologies</organization>
      <address>
        <postal>
        <street> </street>
          <city></city>
          <country>USA</country>
        </postal>
        <email>haoyu.song@futurewei.com</email>
      </address>
    </author>
    <date year="2024"/>
    <workgroup>MPLS Working Group</workgroup>
    <abstract>
      <t>
   In Situ Operations, Administration, and Maintenance (IOAM) is used for recording and collecting 
   operational and telemetry information while the
   packet traverses a path between two points in the network.  This
   document defines MPLS Network Actions for transporting IOAM data fields as well as direct exporting them.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="sect-1" numbered="true" toc="default">
      <name>Introduction</name>
      <t>
   In Situ Operations, Administration, and Maintenance (IOAM) is used for recording and collecting 
   operational and telemetry information while the
   packet traverses a path between two points in the network. The term "in-situ"
   refers to the fact that the IOAM data fields are added to the data
   packets rather than being sent within the probe packets specifically
   dedicated to OAM. The IOAM data
   fields are defined in <xref target="RFC9197" format="default"/>.  The IOAM data fields are further
   updated in <xref target="RFC9326" format="default"/> for Direct Export (DEX) use-cases.</t>

   <t> <xref target="I-D.ietf-mpls-mna-hdr" format="default"/> defines mechanisms for carrying MNA Sub-Stack (MNAS) 
   above the Bottom of the label stack (BOS)
   and <xref target="I-D.jags-mpls-ps-mna-hdr" format="default"/> defines mechanisms for carrying Post-Stack Network Actions in MPLS
   packets after the Bottom of the label stack. 
   <xref target="I-D.ietf-mpls-mna-usecases" format="default"/> describes various MNA use cases including IOAM and IOAM DEX.
   This document defines MPLS Network Actions using MNA solutions for In-Stack and Post-Stack for transporting IOAM data fields as well as direct exporting them.</t>
    </section>

    <section anchor="sect-2" numbered="true" toc="default">
      <name>Conventions</name>
      <section anchor="sect-2.1" numbered="true" toc="default">
        <name>Requirement Language</name>

        <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" format="default"/> <xref target="RFC8174" format="default"/>
   when, and only when, they appear in all capitals, as shown here.
   </t>

      </section>
      <section anchor="sect-2.2" numbered="true" toc="default">
         <name>Abbreviations</name>
     <t>This document assumes that the reader is familiar with the terminology defined in <xref target="RFC9197" format="default"/>,
     <xref target="RFC9326" format="default"/>,
     <xref target="I-D.ietf-mpls-mna-hdr" format="default"/>, and 
        <xref target="I-D.jags-mpls-ps-mna-hdr" format="default"/>.</t>

        <t>
   Abbreviations used in this document:</t>
        <dl newline="false" spacing="normal" indent="2">
          <dt>DEX </dt>
          <dd>
            <t>
    Direct Export
            </t>
            <t/>
          </dd>

          <dt>ECMP </dt>
          <dd>
            <t>
    Equal Cost Multi-Path
            </t>
            <t/>
          </dd>

          <dt>HBH  </dt>
          <dd>
            <t>
    Hop-By-Hop
            </t>
            <t/>
          </dd>
          <dt>IHS  </dt>
          <dd>
            <t>
    Ingress-To-Egress (I2E), Hop-By-Hop (HBH) or Select Scope
            </t>
            <t/>
          </dd>
          <dt>IOAM </dt>
          <dd>
            <t>
    In Situ Operations, Administration, and Maintenance
            </t>
            <t/>
          </dd>

    <dt>MNA </dt>
          <dd>
            <t>
    MPLS Network Action
            </t>
            <t/>
          </dd>

    <dt>NAI </dt>
          <dd>
            <t>
    Network Action Indicator 
            </t>
            <t/>
          </dd>

    <dt>NASL </dt>
          <dd>
            <t>
    Network Action Sub-Stack Length
            </t>
            <t/>
          </dd>

    <dt>OAM  </dt>
          <dd>
            <t>
    Operations, Administration, and Maintenance
            </t>
            <t/>
          </dd>

   <dt>POT  </dt>
          <dd>
            <t>
    Proof-of-Transit
            </t>
            <t/>
          </dd>

   <dt>PSH  </dt>
          <dd>
            <t>
    Post-Stack Header
            </t>
            <t/>
          </dd>

        </dl>
      </section>
    </section>
    <section anchor="sect-3" numbered="true" toc="default">
      <name>MPLS Network Actions for IOAM and IOAM Direct Export</name>

    <t>
    The IOAM and IOAM DEX Option-Types and data fields are carried in Ancillary Data for the IOAM and IOAM DEX MPLS Network Actions, respectively.
    In this document, the MPLS Network Actions for IOAM and IOAM DEX Option-Types 
    are defined using Post-Stack Data (PSD) instead of In-Stack Data (ISD) due to the following reasons:
    </t>

    <t>
    o  Adding and updating IOAM data fields such as timestamp (e.g., 32-bit) and sequence number (e.g., 32-bit) 
    as ISD in the label field of an LSE can alter ECMP behavior of packets in a traffic flow when labels on the label stack are used for ECMP hashing.
    </t>

    <t>
    o  In case of DEX, IOAM data fields added by encapsulation node are typically used as metadata for direct export on intermediate nodes.
    Not all IOAM data fields added by encapsulation node (e.g. sequence number, timestamp, flow identifier, etc.) need to be in-stack (or within RLD) for direct export.
    </t>

    <t>
    o  IOAM data fields format (32-bit) does not fit well into the 32-bit LSE due to S bit required in LSE (e.g., in 31-bit Format D).
    </t>


      <section anchor="sect-3.1" numbered="true" toc="default">
        <name>Post-Stack Network Actions</name>

   <t>The Post-Stack Network Action encoding contains IOAM Post-Stack Network Action Opcode, 
   length in number of 4-octet units, and IOAM Option-Type with   
   IOAM data fields in ancillary data as shown in Figure 1.
   The IOAM data fields MUST follow the definitions corresponding to their  
   IOAM-Option-Types (e.g., see Section 4.4 of <xref target="RFC9197" format="default"/>
   and Section 3 of <xref target="RFC9326" format="default"/>). </t>

     <figure anchor="ure-ioam-network-action-in-mpls-header">
          <name>Example Post-Stack Network Actions with IOAM and IOAM Direct Export Data Fields</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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |  Label                                | TC  |1|  TTL          |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+
 |N N N N|Version| PS-HDR-LEN    | TYPE = POST-STACK-HDR-MNA = 1 |PSH
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|<-+
 |PS-NA-OPCODE |R|U|   PS-NAL    |R|R| BLOCK-NUMBER|IOAM-OPT-TYPE|  |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  I
 |                                                               |  O
 |                                                               |  A
 ~   IOAM Option and Data Space [RFC9197] [RFC9326]              ~  M
 |                                                               |  |
 |                                                               |  |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+
 .                                                               .
 .                                                               .
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+
 |PS-NA-OPCODE |R|U|   PS-NAL    |R|R| BLOCK-NUMBER|IOAM-OPT-TYPE|  |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  I
 |                                                               |  O
 |                                                               |  A
 ~   IOAM Option and Data Space [RFC9197] [RFC9326]              ~  M
 |                                                               |  |
 |                                                               |  |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+
 |                                                               |
 |                                                               |
 ~                 Optional Payload + Padding                    ~
 |                                                               |
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ]]></artwork>
        </figure>

   <t>The Post-Stack Header (PSH) is added with the following fields 
      as defined in <xref target="I-D.jags-mpls-ps-mna-hdr" format="default"/>.</t>

    <dl newline="false" spacing="normal" indent="2">
         <dt>NNNN:</dt>
         <dd>
         The first 4-bit (value TBA6) as defined in <xref target="I-D.jags-mpls-ps-mna-hdr" format="default"/>.
         </dd>
         <dt>PS-HDR-LEN (8 bits):</dt>
         <dd>
         Post-Stack Header Total Length in 4-octet units. This excludes the Post-Stack Header.
         </dd>
         <dt>TYPE:</dt>
         <dd>
         TYPE is defined for POST-STACK-HDR-MNA (value 1) in <xref target="I-D.jags-mpls-ps-mna-hdr" format="default"/>. 
         </dd>
    </dl>

    <t>
    </t>

    <t>An IOAM data fields is added in the Post-Stack Network Action containing the following fields:</t>
        <dl newline="false" spacing="normal" indent="2">

          <dt>PS-NA-OPCODE:</dt>
          <dd>
         IANA allocated value TBA3 (Post-Stack Network Action for IOAM) for IOAM Option-Type defined in <xref target="RFC9197" format="default"/>,
   and TBA4 (Post-Stack Network Action for IOAM DEX) for IOAM DEX Option-Type defined <xref target="RFC9326" format="default"/>. 
   Editor's Note: Post-Stack Network Action Opcode value TBA3 can be the same value as In-Stack Network Action Opcode value TBA1
   and opcode TBA4 can be the same value as opcode TBA2 to avoid creating a mapping table.
    </dd>

          <dt>IOAM-OPT-TYPE:</dt>
          <dd>
       7-bit field defining the IOAM Option-Type, as defined in
       the "IOAM Option-Type Registry" specified in <xref target="RFC9197" format="default"/> 
       and <xref target="RFC9326" format="default"/>).
    </dd>

          <dt>IOAM-HDR-LEN:</dt>
          <dd>
       7-bit unsigned integer. Length of the IOAM data fields in 4-octet units. This excludes the first 4-octet unit starting from PS-NA-OPCODE. 
         </dd>
          <dt>IOAM Option and Data Space:</dt>
          <dd>
       IOAM data fields as specified by the
       IOAM-OPT-Type field.  IOAM data fields are defined corresponding to
       the IOAM-Option-Type (e.g., see Section 4.4 of
       <xref target="RFC9197" format="default"/> and Section 3 of
       <xref target="RFC9326" format="default"/>.
    </dd>

          <dt>U:</dt>
          <dd>
       The Unknown Post-Stack Network Action handling including unsupported IOAM Option-Type or IOAM data fields handling.
    </dd>

          <dt>BLOCK-NUMBER:</dt>
          <dd>
       The Block Number for alternate marking method can be used to aggregate the IOAM data collected
       in data plane, e.g., to compute measurement metrics for each block of
       a data flow.  It is also used to correlate the IOAM data on different nodes.
    </dd>
        </dl>

      </section>
      <section anchor="sect-3.2" numbered="true" toc="default">
        <name>In-Stack Network Actions</name>

        <figure anchor="ure-mna-encapsulation-in-mpls-header-e2e">
          <name>Example MNA Sub-Stack with In-Stack Network Actions for IOAM and IOAM Direct Export</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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |  MNA Label (bSPL value TBA5)          | TC  |S|  TTL          |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |  Opcode     |      Data (Format B)    |R|IHS|S|U| NASL  | NAL |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |  Opcode     |      Data (Format C)          |S|U| Data  | NAL |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 .                                                               .
 .                                                               .
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                Packet as shown in Figure 1                    |
 .                                                               .
 +---------------------------------------------------------------+
]]></artwork>
        </figure>

    <t>The MNA Label is a Base Special Purpose Label (bSPL value TBA5)  
    to be allocated in <xref target="I-D.ietf-mpls-mna-hdr" format="default"/>.</t>

    <t>The IHS scope field defined in <xref target="I-D.ietf-mpls-mna-hdr" format="default"/> is used to indicate 
    that I2E or HBH or Select processing is required for the  Network Action and Ancillary Data.</t> 

     <t>
    If both edge and intermediate nodes need to process the IOAM data fields  
    then IHS scope MUST be set to "HBH, value 0x1". If only edge nodes need to process 
    the IOAM data fields then IHS scope MUST be set to "I2E, value 0x0".
    The HBH scope allows to skip the IOAM data processing on the intermediate nodes 
    i.e., avoids the need to parse all IOAM data fields to detect the HBH option type.</t>

    <t>The U Flag for Unknown Action Handling is specified in <xref target="I-D.ietf-mpls-mna-hdr" format="default"/>.</t>

    <t>The Network Action Sub-Stack Length (NASL) is set as specified in <xref target="I-D.ietf-mpls-mna-hdr" format="default"/>.</t>

    <t>Opcode (7 bits) value is TBA1 (for In-Stack Network Action with PSD for IOAM) 
    carrying IOAM Option-Type(s) defined in <xref target="RFC9197" format="default"/>.

    Opcode value is TBA2 (for In-Stack Network Action with PSD for IOAM DEX) carrying the IOAM DEX  
    Option-Type defined in <xref target="RFC9326" format="default"/>.
    The In-Stack IOAM and IOAM DEX Network Actions can be carried in Format B or Format C LSE.
    </t>

    <t>
    A packet may carry more than one In-Stack Network Actions with PSD for IOAM and IOAM DEX in an MNA Sub-Stack
    (for example, for different IOAM Option-Types). There may be
    a different In-Stack Network Actions (other than for the IOAM) in an MNA Sub-Stack.
    </t>

    <t>
    Data (10 bits, next to the Opcode field) in LSE contains the offset for PSD for this In-Stack Network Action 
    in 4-octets units after BOS LSE to the start of the Post-Stack Network Action Opcode.
    Due to the Post-Stack Header, minimum value for the offset is 1 (i.e, 4-octets).
    </t>

    <t>
    Additional IOM data fields may be added in the In-Stack NAS addtional data LSE Format D as required by
    the network action.
    </t>

    <t>Length of Network Action (NAL) is set to 0 if no additional LSE Format D is added for the network action.
    </t>

    <t>Corresponding Post-Stack Header defined in Figure 1 MUST BE added for each MNA Sub-Stack added in the label stack.
    </t>

      </section>
    </section>

    <section anchor="sect-4" numbered="true" toc="default">
      <name>Ingress-To-Egress Scope IOAM and IOAM Direct Export Network Actions</name>

        <t>The I2E IOAM data fields carry the IOAM Option-Type(s) that
    require processing on the encapsulating and decapsulating nodes only.
   </t>

   <t>
    The IOAM Option-Type carried can be IOAM Edge-To-Edge 
    Option-Type (value 3) defined in <xref target="RFC9197" format="default"/>
    as well as DEX Option-Type (value 4) defined 
    in <xref target="RFC9326" format="default"/>.
    The I2E IOAM data fields SHOULD NOT carry any IOAM Option-Type that
    require IOAM processing on the intermediate nodes as it will
    not be processed by them when IHS scope is set to "I2E, value 0x0".</t>
  
      <section anchor="sect-4.2" numbered="true" toc="default">
        <name>Procedure</name>
        <t>
    The I2E IOAM and IOAM Direct Export Network Action procedure is summarized as following:</t>
        <ul spacing="normal">
          <li>
    The encapsulating node inserts an MNA Sub-Stack with the MNA Label (bSPL value TBA5) with 
    IHS scope set to "I2E, value 0x0", one or more In-Stack Network Actions with PSD and one 
    or more IOAM data fields in the Post-Stack Network Actions in the MPLS packet.</li>
      <li>The intermediate nodes do not process the HBH IOAM data fields.</li>
          <li>The decapsulating node MAY punt the IOAM data fields from the packet with the receive timestamp  
    to the slow path for processing.  
    The receive timestamp is required by the various 
    I2E OAM use-cases, including streaming telemetry. 
    Note that the packet is not necessarily punted to the control-plane.</li>
          <li>The decapsulating node processes the IOAM data fields using the
    procedures defined in <xref target="RFC9197" format="default"/> and <xref target="RFC9326" format="default"/>.  An example of IOAM
    processing is to export the IOAM data fields for streaming telemetry.</li>
          <li>The decapsulating node MUST remove the Network Actions and IOAM data fields
    from the received packet. The decapsulated packet is forwarded 
    downstream or terminated locally similar to the regular data packets.</li>
        </ul>
      </section>
    </section>
    <section anchor="sect-5" numbered="true" toc="default">
      <name>Hop-By-Hop Scope IOAM and IOAM Direct Export Network Actions</name>

        <t>The HBH IOAM data fields carry the Option-Type(s) that require
    processing at the intermediate and/or encapsulating and decapsulating nodes.
    </t>

    <t>
    The IOAM Option-Type carried can be IOAM
    Pre-allocated Trace Option-Type (value 0), IOAM Incremental Trace Option-Type (value 1) 
    and IOAM Proof of Transit (POT) Option-Type (value 2), and Edge-To-Edge 
    Option-Type (value 3) defined in <xref target="RFC9197" format="default"/> as well as 
    DEX Option-Type (value 4) defined 
    in <xref target="RFC9326" format="default"/>.</t> 

    <t>
    Editor's note: IPv6 option is not supported for HBH IOAM Incremental Trace Option-Type (value 1).
    Similarly, MPLS network action is also not supported for HBH IOAM Incremental Trace Option-Type (value 1).
    </t>

      <section anchor="sect-5.1" numbered="true" toc="default">
        <name>Procedure </name>
        <t>
    The Hop-By-Hop IOAM and IOAM Direct Export Network Action procedure is summarized as following:</t>
        <ul spacing="normal">
          <li>
    The encapsulating node inserts an MNA Sub-Stack containing MNA Label (bSPL value TBA5), 
    with IHS scope set to "HBH, value 0x1", one or more In-Stack Network Actions for IOAM with PSD, 
    and one or more IOAM data fields in the Post-Stack Network Actions in the MPLS packet.</li>
          <li>The intermediate node enabled with HBH IOAM function
    processes the data packet including the IOAM data fields as defined in 
    <xref target="RFC9197" format="default"/> and <xref target="RFC9326" format="default"/>
    when the node recognizes the HBH scope in the MNA Sub-Stack.</li>
          <li>The intermediate node MAY punt the IOAM data fields from the packet with the receive timestamp  
    to the slow path for processing when the node recognizes the HBH scope.  
    The receive timestamp is required by the various 
    HBH OAM use-cases, including streaming telemetry. 
    Note that the packet is not necessarily punted to the control-plane.</li>
          <li>The intermediate node forwards the data packet downstream.</li>
          <li>The processing on the decapsulating node is same as I2E case.</li>
        </ul>

    <t>Both HBH and I2E Scope IOAM may be required in an MPLS packet. 
    In this case, 
    the Post-Stack Network action with HBH IOAM data fields MUST be added after the BOS 
    and before the Post-Stack Network Action with I2E IOAM data fields.
    This way, the RLD for the intermediate nodes is minimized.
    </t>
    </section>

    </section>
    <section anchor="sect-6.0" numbered="true" toc="default">
        <name>Select IOAM and IOAM Direct Export Network Actions</name>
        <t>
    The procedure for carrying the IOAM Network Actions for Select Scope is the same as HBH Scope IOAM Network Actions except 
    the IHS scope is set to "Select, value 0x2".
    In this case, 
    the Post-Stack Network action for Select node with IOAM data fields MUST be added after the BOS 
    and before the Post-Stack Network Action with I2E IOAM data fields.
    This way, the RLD for the Select nodes is minimized.
        </t>
    </section>

    <section anchor="sect-7" numbered="true" toc="default">
      <name>Considerations for IOAM and IOAM Direct Export in MPLS Networks</name>
      <section anchor="sect-7.1" numbered="true" toc="default">
        <name>Considerations for ECMP</name>
        <t>
    The encapsulating node needs to make sure the IOAM data fields do
    not start with a well-known IP Version Number (e.g. 0x4 for IPv4 and
    0x6 for IPv6) as that can alter the hashing function for ECMP that uses
    the IP header.  This is achieved by using the first nibble NNNN in the Post-Stack Header 
    with a different value (value TBA6) after the label stack as defined in <xref target="I-D.jags-mpls-ps-mna-hdr" format="default"/>.</t>

      </section>
      <section anchor="sect-7.2" numbered="true" toc="default">
        <name>Node Capability</name>
        <t>
    The decapsulating node that has to remove the IOAM data fields
    and perform the IOAM function may not be capable of
    supporting it.  The encapsulating node needs to know if the
    decapsulating node can support the IOAM function.  The signaling
    extension for this capability exchange is outside the scope of this
    document.</t>
        <t>The intermediate node that is not capable of supporting the IOAM functions
    defined in this document, can simply skip the IOAM processing.</t>
    <t>The node that does not recognize the MNA Label received at the top of the label stack will drop the packet.</t>
      </section>

      <section anchor="sect-7.3" numbered="true" toc="default">
        <name>Nested MPLS Encapsulation</name>
   <t>
   When a packet is received with MPLS Encapsulated Network Action for IOAM, the nested MPLS
   encapsulating node that needs to add different Network Action for IOAM, the node MUST add
   a new MNA Sub-Stack with the Network Action for IOAM as part of the new MPLS encapsulation.
   </t>
       </section>

     <section anchor="sect-7.4" numbered="true" toc="default">
        <name>Readable Label Depth Consideration</name>
    <t>
    The encapsulating node needs to make sure that the IOAM data fields in Post-Stack Network Action are added within the Readable Label 
    Depth (RLD) of the downstream MNA capable nodes in order for them to be able to process the IOAM.
    </t>

       </section>


    </section>
    <section anchor="sect-8" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>
    The security considerations of IOAM and IOAM DEX in general are discussed in
    <xref target="RFC9197" format="default"/> and <xref target="RFC9326" format="default"/>) and apply to the 
    procedure defined in this document.</t>
      <t>
    The usage of MPLS extensions defined in this document for IOAM is intended for 
    deployment in a single network administrative domain.
    As such, it assumes that the operator enabling the IOAM 
    operation has previously verified the integrity of the path.
    Still, operators need to properly secure the IOAM
    in the domain to avoid malicious configuration and use, which could include
    injecting malicious IOAM packets into the domain.</t>
    </section>

    <section anchor="sect-9" numbered="true" toc="default">
      <name>IANA Considerations</name>

    <section anchor="IANAFlags" numbered="true" toc="default">
      <name>In-Stack Network Action Opcodes </name>
      <t>
    The IOM and IOAM DEX Network Action Opcodes from In-Stack Network Action Opcode 
    registry (to be created by in <xref target="I-D.ietf-mpls-mna-hdr" format="default"/>) are defined 
    in this document as follows.
      </t>

      <table anchor="iana-nafif-tbl-2" align="center">
        <name>In-Stack Network Action Opcodes</name>
        <thead>
          <tr>
            <th align="left"> Opcode</th>
            <th align="left"> Description</th>
            <th align="left"> Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left"> TBA1 </td>
            <td align="left">In-Stack Network Action with PSD for IOAM</td>
            <td align="left">This document</td>
          </tr>
          <tr>
            <td align="left"> TBA2</td>
            <td align="left">In-Stack Network Action with PSD for IOAM Direct Export</td>
            <td align="left">This document</td>
          </tr>
        </tbody>
      </table>

    </section>

        <section anchor="IANAFlagsPSD" numbered="true" toc="default">
      <name>Post-Stack Network Action Opcodes </name>

    <t>
    The IOM and IOAM DEX Network Action Opcodes from Post-Stack Network Action Opcode 
    registry (to be created by in <xref target="I-D.jags-mpls-ps-mna-hdr" format="default"/>) are defined 
    in this document as follows.
    </t>

    <t>
    Editor's Note: Post-Stack Network Action Opcode value TBA3 can be the same value as In-Stack Network Action Opcode value TBA1
    and opcode TBA4 can be the same value as opcode TBA2 to avoid creating a mapping table.
    </t>

     <table anchor="iana-nh-type-tbl" align="center">
       <name>Post-Stack Network Action Opcodes</name>
        <thead>
          <tr>
            <th align="left">Value</th>
            <th align="left">Description</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>

          <tr>
        <td align="left">TBA3</td>
            <td align="left">Post-Stack Network Action for IOAM</td>
            <td align="left">This document</td>
          </tr>

          <tr>
        <td align="left">TBA4</td>
            <td align="left">Post-Stack Network Action for IOAM Direct Export</td>
            <td align="left">This document</td>
          </tr>
        </tbody>

     </table>

    </section>

    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization/>
            </author>
            <date year="1997" month="March"/>
           </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>

        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization/>
            </author>
            <date year="2017" month="May"/>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>

        <reference anchor="RFC9326" target="https://www.rfc-editor.org/info/rfc9326" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9326.xml">
          <front>
            <title>In Situ Operations, Administration, and Maintenance OAM Direct Exporting</title>
            <author fullname="Haoyu Song">
              <organization>Futurewei</organization>
            </author>
            <author fullname="Barak Gafni">
              <organization>Nvidia</organization>
            </author>
            <author fullname="Frank Brockners">
              <organization>Cisco</organization>
            </author>
            <author fullname="Shwetha Bhandari">
              <organization>Thoughtspot</organization>
            </author>
            <author fullname="Tal Mizrahi">
              <organization>Huawei</organization>
            </author>
            <date month="November" year="2022"/>
          </front>
          <seriesInfo name="RFC" value="9326"/>
        </reference>

        <reference anchor="RFC9197" target="https://www.rfc-editor.org/info/rfc9197" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9197.xml">
          <front>
            <title>Data Fields for In Situ Operations, Administration, and Maintenance</title>
            <author fullname="Frank Brockners">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Shwetha Bhandari">
              <organization>Thoughtspot</organization>
            </author>
            <author fullname="Tal Mizrahi">
              <organization>Huawei</organization>
            </author>
            <date month="May" year="2022"/>
          </front>
          <seriesInfo name="RFC" value="9197"/>
        </reference>

    <reference anchor="I-D.ietf-mpls-mna-hdr" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-mpls-mna-hdr.xml" target="https://www.ietf.org/archive/id/draft-ietf-mpls-mna-hdr-07.txt">
          <front>
            <title>MPLS Network Action Sub-Stack Solution</title>
            <author fullname="Jaganbabu Rajamanickam" role="editor" >
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Rakesh Gandhi" role="editor">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Royi Zigler">
              <organization>Broadcom</organization>
            </author>
            <author fullname="Haoyu Song">
              <organization>Futurewei Technologies</organization>
            </author>
           <author fullname="Kireeti Kompella">
             <organization>Juniper Networks</organization>
           </author>
            <date month="June" year="2024"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-mpls-mna-hdr-07"/>
        </reference>

    <reference anchor="I-D.jags-mpls-ps-mna-hdr" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.jags-mpls-ps-mna-hdr.xml" target="https://www.ietf.org/archive/id/draft-jags-mpls-ps-mna-hdr-03.txt">
          <front>
            <title>Post-Stack MPLS Network Action (MNA) Solution</title>
            <author fullname="Jaganbabu Rajamanickam" role="editor" >
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Rakesh Gandhi" role="editor">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Royi Zigler" >
              <organization>Broadcom</organization>
            </author>
            <author fullname="Tony Li">
              <organization>Juniper Networks</organization>
            </author>
           <author fullname="Jie Dong">
             <organization>Juawei Technologies</organization>
           </author>
            <date month="June" year="2024"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-jags-mpls-ps-mna-hdr-03"/>
        </reference>

      </references>

      <references>
        <name>Informative References</name>


    <reference anchor="I-D.ietf-mpls-mna-usecases" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-mpls-mna-usecases.xml" target="https://www.ietf.org/archive/id/draft-ietf-mpls-mna-usecases-10.txt">
          <front>
            <title>Use Cases for MPLS Network Action Indicators and MPLS Ancillary Data</title>
            <author fullname="Tarek Saad" >
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Kiran Makhijani">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Haoyu Song" >
              <organization>Huawei</organization>
            </author>
           <author fullname="Greg Mirsky">
             <organization>Ericsson</organization>
           </author>
            <date month="June" year="2024"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-mpls-mna-usecases-10"/>
        </reference>

      </references>

    </references>

    <section numbered="false" toc="default">
      <name>Acknowledgements</name>
      <t>
    The authors would like to thank Patrick Khordoc, Sagar Soni, Shwetha Bhandari, Clarence Filsfils, and Vengada Prasad
    Govindan for the discussions on IOAM.  The authors would also like to
    thank Tarek Saad, Loa Andersson, Greg Mirsky, Stewart Bryant, Xiao Min, Jaganbabu Rajamanickam, and Cheng Li for providing many
    useful comments. The authors would also like to thank Mach Chen, 
    Andrew Malis, Matthew Bocci, and Nick Delregno for the MPLS-RT reviews of the early version of this document.</t>
    </section>

    <section numbered="false" title="Contributors">
      <t>The following people have substantially contributed to this document:</t>

        <artwork><![CDATA[Zafar Ali
Cisco Systems, Inc.
Email: zali@cisco.com

Voitek Kozak
Comcast
Email: Voitek_Kozak@comcast.com

Loa Andersson
Huawei Technologies
Email: loa@pi.nu

]]></artwork>
    </section>
  </back>
</rfc>
