<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" ipr="trust200902" docName="draft-mb-mpls-ioam-dex-01" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="3" symRefs="true" sortRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.6.0 -->
  <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<front>
    <title abbrev="IOAM-DEX Over MNA">Supporting In-Situ OAM Direct Export Using MPLS Network Actions</title>
    <seriesInfo name="Internet-Draft" value="draft-mb-mpls-ioam-dex-01"/>
    
    <author initials="G." surname="Mirsky" fullname="Greg Mirsky">
      <organization>Ericsson</organization>
      <address>
        <email>gregimirsky@gmail.com</email>
      </address>
    </author>
    
          <author fullname="Mohamed Boucadair" initials="M." surname="Boucadair">
      <organization>Orange</organization>
      <address>
        <postal>
          <street>35000 Rennes</street>
    <city/>
          <code/>
          <country>France</country>
        </postal>
        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>
    
    <date year="2022"/>
    <area>Routing</area>
    <workgroup>MPLS Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <keyword>IOAM</keyword>
    <keyword>MPLS Network Action</keyword>
    <abstract>
      <t>
In-Situ Operations, Administration, and Maintenance  (IOAM), defined in RFC 9197,
is an on-path telemetry method to collect and transport the operational state
and telemetry information that can be used in calculating various performance metrics.
IOAM Direct Export (IOAM-DEX) is one 
of the IOAM Option types, in which the operational state and telemetry
   information are collected according to the specified profile and exported
   in a manner and format defined by a local policy.
MPLS Network Actions (MNA) techniques are meant to indicate actions to be performed on any combination of
Label Switched Paths (LSPs), MPLS packets, and the node itself, and also to transfer data needed for these actions.
This document explores how MNA can be used for collecting on-path operational state
and telemetry information using IOAM-DEX Option.
      </t>
    </abstract>
  </front>
  <middle>
    <section anchor="intro" numbered="true" toc="default">
      <name>Introduction</name>
      <t>
In-Situ OAM (IOAM) <xref target="RFC9197"/> is an on-path telemetry method to collect and transport the operational state
and telemetry information that can be used in calculating various performance metrics.
Several IOAM Option types (e.g., Pre-allocated and Incremental) use the user packet themselves to collect the operational state
and telemetry information. Such a mechanism transports the collected information to an IOAM decapsulating
node (typically, located at the edge of the IOAM domain within the data packet).
IOAM Direct Export (IOAM-DEX) <xref target="I-D.ietf-ippm-ioam-direct-export"/> is
an IOAM Option type. In IOAM-DEX, the operational state and telemetry
   information are collected according to the specified profile and exported
   in a manner and format defined by a local policy.
MPLS Network Actions (MNA) techniques <xref target="I-D.ietf-mpls-mna-fwk"/>
indicate actions to be performed on any combination of
Label Switched Paths (LSPs), MPLS packets, the node itself,
and also allow for the transfer of data needed for these actions.
</t>
<t>
This document describes how MNA can be used for collecting on-path operational state
and telemetry information using IOAM-DEX Option.
Specifying the mechanism of exporting collected information is outside the scope of this document.  
</t>

      </section>
      
      <section numbered="true" toc="default">
        <name>Conventions Used in this Document</name>
    
         <section title="Acronyms">

          <t>IOAM:          In-Situ OAM</t>
          <t>IOAM-DEX:          IOAM Direct Export</t>
          <t>ISD:                 In-Stack Data</t>
          <t>LSP:               Label Switched Path</t>
           <t>MPLS:          Multiprotocol Label Switching</t>
            <t>MNA:          MPLS Network Actions</t>
          <t>PSD:                 Post-Stack Data</t>
         </section>    
         
        <section numbered="true" toc="default">
          <name>Requirements 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>
    
    <section anchor="ioam-trace-option-application" numbered="true" toc="default">
      <name>Applicability of IOAM Option Types in an MPLS Network</name>
      <t>
Pre-allocated, Incremental, and Edge-to-Edge IOAM Option types <xref target="RFC9197"/> use user packets to collect and transport
the operational state and telemetry information. In some environments, for example, data center networks, this technique
is useful as the available bandwidth, and the use of jumbo frames can accommodate the increase of the packet payload. But for
other use cases in which network resources are closely controlled, the use of in-band channels for collecting and transporting
the telemetry information may noticeably decrease the cost-efficiency of network operations. Although the operational state and
telemetry information are essential for network automation (Section 4 of <xref target="RFC8969"/>),
its delivery is not as critical as user packets. As such,
collecting and transporting the operational state and telemetry information out-of-band using the management plane
is a viable option for some environments. IOAM-DEX <xref target="I-D.ietf-ippm-ioam-direct-export"/> is used to collect IOAM data
defined in <xref target="RFC9197"/>. The processing and transport of the collected information are controlled by a local policy which
is outside the scope of this specification.
</t>

<t>
<xref target="I-D.ietf-ippm-ioam-direct-export"/> defines the IOAM-DEX Option-Type format
as shown in <xref target="ioam-dex-fig" format="default"/>. 
</t>
 <figure anchor="ioam-dex-fig">
   <name>IOAM Direct Export Option Type 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        Namespace-ID           |     Flags     |Extension-Flags|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               IOAM-Trace-Type                 |   Reserved    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Flow ID (Optional)                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Sequence Number  (Optional)               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

]]></artwork>
</figure>
<t>
<xref target="ext-flag-fig"/> displays the detailed format of the Extension-Flags field that indicates presence of
the optional Flow ID and/or Sequence Number fields in the IOAM-DEX header.
</t>
<figure anchor="ext-flag-fig">
   <name>Extension-Flags Field Format</name>
  <artwork name="" type="" align="left" alt=""><![CDATA[    
0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|F|S|U|U|U|U|U|U|
+-+-+-+-+-+-+-+-+
]]></artwork>
</figure>
<t>Where elements are defined as follows:</t>
<ul spacing="normal">
<li>F - one-bit flag. When the flag is set to 1, it indicates the presence of the Flow ID field in the IOAM-DEX header.</li>
<li>S - one-bit flag. When the flag is set to 1, it indicates the presence of the Sequence Number field in the IOAM-DEX header.</li>
<li>U - unassigned one-bit flag. It MUST be zeroed on transmission and the value MUST be ignored upon receipt.</li>
</ul>

<section anchor="ioam-mpls-isd-sec" numbered="true" toc="default">
<name>Realization of IOAM-DEX as an MPLS Network Action</name>
<t>
<xref target="I-D.ietf-mpls-mna-usecases"/> recognizes the importance of IOAM in MPLS networks
and lists it as one of the use cases that might be supported using MNA techniques.
<xref target="I-D.ietf-mpls-mna-fwk"/> defines the architectural elements that compose MNA.
<xref target="mna-tech-fig"/> displays an example of MNA elements encapsulated in an MPLS packet.
The exact format will be defined in future MNA solution document(s).
</t>
 <figure anchor="mna-tech-fig">
   <name>An Example of MPLS Network Action</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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---
|  Network Action Sub-Stack Indicator   |  U  |S|       U       | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ NAS
~           MNA  Indicators                   |S|               ~ 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---
~         In-Stack Data Block                 |S|               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---
|                                             |1|               | BoS
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ---
~                     Post-Stack Data Block                     ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                         Packet Payload                        ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
</figure>
<t>Where the enclosed elements are defined as follows:</t>
<ul spacing="normal">
<li>Network Action Sub-Stack Indicator (NSI) is a Base Special Purpose Label assigned by IANA.</li>
<li>U - unassigned fields in a Label Stack Element.</li>
<li>S - Bottom-of-Stack field.</li>
<li>MNA Indicators is a field listing requested MNAs.</li>
<li>In-Stack Data (ISD) Block includes ancillary data elements in support of MNAs as defined in <xref target="I-D.ietf-mpls-mna-fwk"/>.</li>
<li>Post-Stack Data (PSD) Block includes data elements in support of MNAs as defined in <xref target="I-D.ietf-mpls-mna-fwk"/>.</li>
      </ul>
      
      <t>
      In order to support direct export of the operational state and telemetry information,
      the IOAM-DEX blob (binary large object) <xref target="ioam-dex-fig"/>
      can be placed as part of the ISD block in an MPLS label stack. In doing so,
      the IOAM-DEX can be used for hop-by-hop and edge-to-edge collection
      of the operational state and telemetry information. 
      The length of the enclosed IOAM-DEX is determined as a function of the flag setting  (<xref target="ext-flag-fig"/>).
      Policies controlling the processing
      of the collected information and its transport are outside the scope of this document.
      </t>
      <t>
      The performance considerations discussed in Section of 5 of <xref target="I-D.ietf-ippm-ioam-direct-export"/> are applicable here. 
      </t>
      
</section>
    </section>
    
        <section anchor="iana-consider" numbered="true" toc="default">
      <name>IANA Considerations</name>
<t>IANA is requested to assign an IOAM-DEX Network Action Indicator from its X registry.</t>
    </section>
    
    <section anchor="security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>
 Security considerations discussed in <xref target="RFC9197"/>, <xref target="I-D.ietf-ippm-ioam-direct-export"/>, and
 <xref target="I-D.ietf-mpls-mna-fwk"/> apply to this document. 
      </t>
    </section>
    
        <section numbered="true" toc="default">
      <name>Acknowledgments</name>
      <t>
 TBD
      </t>
    </section>
    
  </middle>
  <back>
  <references>
  <name>References</name>
  <references>
        <name>Normative References</name>
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
      <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9197.xml"/>
      

<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-mpls-mna-fwk.xml"/>

<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-ippm-ioam-direct-export.xml"/>

    </references>
    
    <references>
    <name>Informational References</name>
<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-mpls-mna-usecases.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8969.xml"/>
          </references>
    
    </references>

  </back>
</rfc>
