<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. --> encoding="UTF-8"?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
     There has to be one entity for each item to be referenced.
     An alternate method (rfc include) is described in the references. -->
<!ENTITY RFC2119 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8174 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC7799 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7799.xml">
<!ENTITY RFC8126 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml">
<!ENTITY RFC5475 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5475.xml">
<!ENTITY RFC7014 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7014.xml">
  <!ENTITY RFC6291 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6291.xml"> nbsp    "&#160;">
  <!ENTITY RFC9197 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9197.xml"> zwsp   "&#8203;">
  <!ENTITY I-D.spiegel-ippm-ioam-rawexport SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.spiegel-ippm-ioam-rawexport.xml"> nbhy   "&#8209;">
  <!ENTITY I-D.ietf-sfc-ioam-nsh SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-sfc-ioam-nsh.xml">
<!ENTITY I-D.ietf-ippm-ioam-ipv6-options SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-ippm-ioam-ipv6-options.xml">
<!ENTITY I-D.ietf-ippm-ioam-data-integrity SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-ippm-ioam-data-integrity.xml">
<!ENTITY I-D.song-ippm-postcard-based-telemetry SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.song-ippm-postcard-based-telemetry.xml">
<!ENTITY I-D.ietf-ippm-ioam-flags SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-ippm-ioam-flags.xml">
<!ENTITY AFI SYSTEM "http://www.iana.org/assignments/address-family-numbers/address-family-numbers.xml"> wj     "&#8288;">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" category="std" consensus="true" docName="draft-ietf-ippm-ioam-direct-export-11"
     ipr="trust200902"> number="9326" ipr="trust200902" obsoletes="" updates="" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3">

  <!-- xml2rfc v2v3 conversion 3.15.0 -->
  <front>
    <title abbrev="IOAM Direct Exporting">In-situ OAM Exporting">In Situ Operations, Administration, and Maintenance (IOAM) Direct Exporting</title>

    <seriesInfo name="RFC" value="9326"/>
    <author fullname="Haoyu Song" initials="H." surname="Song">
      <organization abbrev="">Futurewei</organization>
      <address>
        <postal>
          <street>2330 Central Expressway</street>
          <city>Santa Clara</city>
          <code>95050</code>

          <country>USA</country>
          <country>United States of America</country>
        </postal>
        <email>haoyu.song@futurewei.com</email>
      </address>
    </author>
    <author fullname="Barak Gafni" initials="B." surname="Gafni">
      <organization abbrev="">Nvidia</organization>
      <address>
        <postal>
	  <extaddr>Suite 100</extaddr>
          <street>350 Oakmead Parkway, Suite 100</street>

          <city>Sunnyvale, CA</city> Parkway</street>
          <city>Sunnyvale</city>
          <region>CA</region>
          <code>94085</code>

          <country>U.S.A.</country>
          <country>United States of America</country>
        </postal>
        <email>gbarak@nvidia.com</email>
      </address>
    </author>
    <author fullname="Frank Brockners" initials="F." surname="Brockners">
      <organization abbrev="Cisco">Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street>Hansaallee 249, 3rd Floor</street>

          <!-- Reorder these if your country does things differently -->

          <city>DUESSELDORF</city>

          <region>NORDRHEIN-WESTFALEN</region> 249</street>
          <city>Duesseldorf</city>
          <code>40549</code>
          <country>Germany</country>
        </postal>
        <email>fbrockne@cisco.com</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>
    <author fullname="Shwetha Bhandari" initials="S." surname="Bhandari">
      <organization abbrev="Thoughtspot">Thoughtspot</organization>
      <address>
        <postal>
          <street>3rd
	  <extaddr>3rd Floor, Indiqube Orion, 24th Main Rd, Garden Layout, HSR
          Layout</street>

          <city>Bangalore, KARNATAKA 560 102</city> Layout</extaddr>
          <street>24th Main Rd</street>
          <city>Bangalore</city>
	  <region>Karnataka</region>
	  <code>560 102</code>
          <country>India</country>
        </postal>
        <email>shwetha.bhandari@thoughtspot.com</email>
      </address>
    </author>
    <author fullname="Tal Mizrahi" initials="T." surname="Mizrahi">
      <organization abbrev="">Huawei</organization>
      <address>
        <postal>
          <street>8-2 Matam</street>
          <city>Haifa</city>
          <code>3190501</code>
          <country>Israel</country>
        </postal>
        <email>tal.mizrahi.phd@gmail.com</email>
      </address>
    </author>
    <date year="2022"/>

    <area>TSV</area>

    <workgroup>IPPM</workgroup>

    <!-- WG name at the upperleft corner of the doc,
         IETF is fine for individual submissions.
	 If this element is not present, the default is "Network Working Group",
         which is used by the RFC Editor as a nod to the history of the IETF. --> year="2022" month="October" />
    <area>tsv</area>
    <workgroup>ippm</workgroup>

    <keyword>IOAM</keyword>
    <keyword>Telemetry</keyword>

    <!-- Keywords will be incorporated into HTML output
         files in a meta tag but they have no effect on text or nroff
         output. If you submit your draft to the RFC Editor, the
         keywords will be used for the search engine. -->

    <abstract>
      <t>In-situ
      <t>In situ Operations, Administration, and Maintenance (IOAM) is used
      for recording and collecting operational and telemetry information.
      Specifically, IOAM allows telemetry data to be pushed into data packets
      while they traverse the network. This document introduces a new IOAM
      option type (denoted IOAM-Option-Type) called the "IOAM Direct Export (DEX)
      Option-Type, which Option-Type". This Option-Type is used as a trigger for IOAM data to be directly
      exported or locally aggregated without being pushed into in-flight data
      packets. The exporting method and format are outside the scope of this
      document.</t>
    </abstract>

  </front>
  <middle>
    <section title="Introduction" toc="default"> toc="default" numbered="true">
      <name>Introduction</name>
      <t>IOAM <xref target="RFC9197"/> target="RFC9197" format="default"/> is used for monitoring traffic in the
      network,
      network and for incorporating IOAM data fields (denoted
      IOAM-Data-Fields) into in-flight data packets.</t>
      <t>IOAM makes use of four possible IOAM-Option-Types, defined in <xref
      target="RFC9197"/>: target="RFC9197" format="default"/>: Pre-allocated Trace Option-Type, Trace, Incremental Trace
      Option-Type, Trace, Proof of Transit (POT) Option-Type, (POT), and Edge-to-Edge
      Option-Type.</t> Edge-to-Edge.</t>
      <t>This document defines a new IOAM-Option-Type called the "IOAM Direct Export (DEX) Option-Type.
      Option-Type". This Option-Type is used as a trigger for IOAM nodes
      to locally aggregate and process IOAM data, data and/or to export it to a
      receiving entity (or entities). Throughout the document document, this
      functionality is referred to as collection "collection" and/or exporting. A "exporting". In this context, a
      "receiving entity" in this context is an entity
      that resides within the IOAM domain such as a collector, analyzer,
	  controller, decapsulating node, or a software module in one of the IOAM nodes.</t>
      <t>Note that even though the IOAM-Option-Type is called "Direct Export",
      it depends on the deployment whether the receipt of a packet with a DEX
      Option-Type leads to the creation of another packet. Some deployments
      might simply use the packet with the DEX Option-Type to trigger local
      processing of OAM Operations, Administration, and Maintenance (OAM) data. The functionality of this local processing is
      not within the scope of this document.</t>
    </section>
    <section anchor="Conventions" title="Conventions"> numbered="true" toc="default">
      <name>Conventions</name>
      <section title="Requirement Language">
        <t>The 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", "<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
        "OPTIONAL" "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
    described in BCP
        14 BCP&nbsp;14 <xref target="RFC2119"/> <xref target="RFC8174"/>
    when, and only when, they appear in all capitals, as shown here.</t> here.
        </t>
      </section>
      <section title="Terminology"> numbered="true" toc="default">
        <name>Terminology</name>
        <t>Abbreviations used in this document:</t>

        <t><list hangIndent="11" style="hanging">
            <t hangText="IOAM:">In-situ
        <dl newline="false" spacing="normal" indent="8">
          <dt>IOAM:</dt>
          <dd>In situ Operations, Administration, and
            Maintenance</t>

            <t hangText="OAM:">Operations,
            Maintenance</dd>
          <dt>OAM:</dt>
          <dd>Operations, Administration, and Maintenance
          <xref target="RFC6291"/></t>

            <t hangText="DEX:">Direct EXporting</t>
          </list></t> target="RFC6291" format="default"/></dd>
          <dt>DEX:</dt>
          <dd>Direct Exporting</dd>
        </dl>
      </section>
    </section>
    <section anchor="OptionTypeSec"
             title="The numbered="true" toc="default">
      <name>The Direct Exporting (DEX) IOAM-Option-Type"> IOAM-Option-Type</name>
      <section title="Overview"> numbered="true" toc="default">
        <name>Overview</name>
        <t>The DEX Option-Type is used as a trigger for collecting IOAM data
        locally or for exporting it to a receiving entity (or entities).
        Specifically, the DEX Option-Type can be used as a trigger for
        collecting IOAM data by an IOAM node and locally aggregating it; thus,
        this aggregated data can be periodically pushed to a receiving entity, entity
        or pulled by a receiving entity on-demand.</t>
        <t>This Option-Type is incorporated into data packets by an IOAM
        encapsulating node, node and removed by an IOAM decapsulating node, as
        illustrated in <xref target="DEXArch"/>. target="DEXArch" format="default"/>. The Option-Type can be read read,
        but not modified modified, by transit nodes. Note: Note that the terms IOAM encapsulating, "IOAM encapsulating node",
        "IOAM decapsulating node", and "IOAM transit nodes node" are as defined in <xref
        target="RFC9197"/>.</t> target="RFC9197" format="default"/>.</t>
        <figure align="center" anchor="DEXArch" title="DEX Architecture"> anchor="DEXArch">
          <name>DEX Architecture</name>
          <artwork align="left"><![CDATA[ align="left" name="" type="" alt=""><![CDATA[
                                    ^
                                    |Exported IOAM data
                                    |
                                    |
                                    |
              +--------------+------+-------+--------------+
              |              |              |              |
              |              |              |              |
User      +---+----+     +---+----+     +---+----+     +---+----+
packets   |Encapsu-|     | Transit|     | Transit|     |Decapsu-|
--------->|lating  |====>| Node   |====>| Node   |====>|lating  |---->
          |Node    |     | A      |     | B      |     |Node    |
          +--------+     +--------+     +--------+     +--------+
          Insert DEX       Export         Export       Remove DEX
          option and      IOAM data      IOAM data     option and
          export data                                  export data

           ]]></artwork> data]]></artwork>
        </figure>
        <t>The DEX Option-Type is used as a trigger to collect and/or export
        IOAM data. The trigger applies to transit nodes, the decapsulating
        node, and the encapsulating node:</t>

        <t><list style="symbols">
            <t>An

        <ul spacing="normal">
          <li> An IOAM encapsulating node configured to incorporate the DEX
Option-Type encapsulates (possibly the packets (or possibly a subset of) of the packets
packets) it forwards with the DEX Option-Type, Option-Type and MAY <bcp14>MAY</bcp14> export and/or collect
            the requested IOAM data immediately. Only IOAM encapsulating nodes
            are allowed to add the DEX Option-Type to a packet. An IOAM
            encapsulating node can generate probe packets that incorporate the
            DEX Option-Type. These probe packets can be generated periodically
            or on-demand (for example example, triggered by the management plane). The
            specification of such probe packets is outside the scope of this
            document.</t>

            <t>A
            document.</li>
          <li>A transit node that processes a packet with the DEX Option-Type
            MAY
            <bcp14>MAY</bcp14> export and/or collect the requested IOAM data.</t>

            <t>An data.</li>
          <li>An IOAM decapsulating node that processes a packet with the DEX
            Option-Type MAY <bcp14>MAY</bcp14> export and/or collect the requested IOAM data, data and
            MUST
            <bcp14>MUST</bcp14> decapsulate the IOAM header.</t>
          </list></t> header.</li>
        </ul>
        <t>As in <xref target="RFC9197"/>, target="RFC9197" format="default"/>, the DEX Option-Type can be
        incorporated into all or a subset of the traffic that is forwarded by
        the encapsulating node, as further discussed in <xref
        target="SelectionSec"/> below. target="SelectionSec" format="default"/>. Moreover, IOAM nodes respond to the DEX
        trigger by exporting and/or collecting IOAM data either for all
        traversing packets that carry the DEX Option-Type, Option-Type or selectively only
        for a subset of these packets, as further discussed in <xref
        target="ExportSec"/> below.</t> target="ExportSec" format="default"/>.</t>
        <section anchor="SelectionSec" title="DEX numbered="true" toc="default">
          <name>DEX Packet Selection"> Selection</name>
          <t>If an IOAM encapsulating node incorporates the DEX Option-Type
          into all the traffic it forwards forwards, it may lead to an excessive amount
          of exported data, which may overload the network and the receiving
          entity.  Therefore, an IOAM encapsulating node that supports the DEX
Option-Type MUST <bcp14>MUST</bcp14> support the ability to incorporate the DEX
Option-Type selectively into a subset of the packets that are
forwarded by it.</t> the IOAM encapsulating node.</t>
          <t>Various methods of packet selection and sampling have been
          previously defined, such as <xref target="RFC7014"/> target="RFC7014" format="default"/> and <xref
          target="RFC5475"/>. target="RFC5475" format="default"/>. Similar techniques can be applied by an IOAM
          encapsulating node to apply DEX to a subset of the forwarded
          traffic.</t>
          <t>The subset of traffic that is forwarded or transmitted with a DEX
          Option-Type SHOULD NOT <bcp14>SHOULD NOT</bcp14> exceed 1/N of the interface capacity on any
          of the IOAM encapsulating node's interfaces. It is noted that this
          requirement applies to the total traffic that incorporates a DEX
          Option-Type, including traffic that is forwarded by the IOAM
          encapsulating node and probe packets that are generated by the IOAM
          encapsulating node. In this context context, N is a parameter that can be
          configurable by network operators. If there is an upper bound, M, on
          the number of IOAM transit nodes in any path in the network, then it
          is RECOMMENDED <bcp14>RECOMMENDED</bcp14> to use an N such that N &gt;&gt; M (i.e., N is much greater
		  than M). The rationale is
          that a packet that includes a DEX Option-Type may trigger an
          exported packet from each IOAM transit node along the path for a
          total of M exported packets. Thus, if N &gt;&gt; M M, then the number
          of exported packets is significantly lower than the number of data
          packets forwarded by the IOAM encapsulating node. If there is no
          prior knowledge about the network topology or size, it is
          RECOMMENDED
          <bcp14>RECOMMENDED</bcp14> to use N&gt;100.</t>
        </section>
        <section anchor="ExportSec" title="Responding numbered="true" toc="default">
          <name>Responding to the DEX Trigger"> Trigger</name>
          <t>The DEX Option-Type specifies which IOAM-Data-Fields should be
          exported and/or collected, as specified in <xref
          target="OptionSec"/>. target="OptionSec" format="default"/>.  As mentioned above, the data can be locally collected, and optionally can be aggregated and aggregated, and/or
exported to a receiving entity, either entity proactively or on-demand. If IOAM data is
          exported, the format and encapsulation of the packet that contains
          the exported data is not within the scope of the current document.
          For example, the export format can be based on <xref
          target="I-D.spiegel-ippm-ioam-rawexport"/>.</t> target="I-D.spiegel-ippm-ioam-rawexport" format="default"/>.</t>
          <t>An IOAM node that performs DEX-triggered exporting MUST <bcp14>MUST</bcp14> support
          the ability to limit the rate of the exported packets. The rate of
          exported packets SHOULD <bcp14>SHOULD</bcp14> be limited so that the number of exported
          packets is significantly lower than the number of packets that are
          forwarded by the device. The exported data rate SHOULD NOT <bcp14>SHOULD NOT</bcp14> exceed
          1/N of the interface capacity on any of the IOAM node's interfaces.
          It is RECOMMENDED <bcp14>RECOMMENDED</bcp14> to use N&gt;100. Depending on the IOAM node's
          architecture considerations, the export rate may be limited to a
          lower number in order to avoid loading the IOAM node. An IOAM node
          MAY
          <bcp14>MAY</bcp14> maintain a counter or a set of counters that count the events in
          which the IOAM node receives a packet with the DEX Option-Type and
          does not collect and/or export data due to the rate limits.</t>
          <t>IOAM nodes SHOULD NOT <bcp14>SHOULD NOT</bcp14> be configured to export packets
		  over a path or a tunnel
          that is subject to IOAM direct exporting. Furthermore, IOAM
          encapsulating nodes that can identify a packet as an IOAM exported
          packet MUST NOT <bcp14>MUST NOT</bcp14> push a DEX Option-Type into such a packet. This
          requirement is intended to prevent nested exporting and/or exporting
          loops.</t>
          <t>A transit or decapsulating IOAM node that receives an unknown
          IOAM-Option-Type ignores it (as defined in <xref
          target="RFC9197"/>), and specifically target="RFC9197" format="default"/>); specifically, nodes that do not support the
          DEX Option-Type ignore it. Note that as As per <xref target="RFC9197"/> target="RFC9197" format="default"/>, note that
          a decapsulating node removes the IOAM encapsulation and all its
          IOAM-Option-Types. Specifically, this applies to the case where one of these
          options is a (possibly unknown) DEX Option-Type. The ability to skip
          over a (possibly unknown) DEX Option-Type in the parsing or in the
          decapsulation procedure is dependent on the specific encapsulation,
          which is outside the scope of this document. For example, when IOAM
          is encapsulated in IPv6 <xref
          target="I-D.ietf-ippm-ioam-ipv6-options"/> target="I-D.ietf-ippm-ioam-ipv6-options" format="default"/>, the DEX Option-Type is
          incorporated either in a Hop-by-Hop options header or in a
          Destination options header, and thus header; thus, it can be skipped using the length
          field in the options header.</t>
        </section>
      </section>
      <section anchor="OptionSec" title="The numbered="true" toc="default">
        <name>The DEX Option-Type Format"> Format</name>
        <t>The format of the DEX Option-Type is depicted in <xref
        target="OptionFormat"/>. target="OptionFormat" format="default"/>. The length of the DEX Option-Type is at least
        8 octets. The DEX Option-Type MAY <bcp14>MAY</bcp14> include one or more optional fields.
        The existence of the optional fields is indicated by the corresponding
        flags in the Extension-Flags field. Two optional fields are defined in
        this document, document: the Flow ID and the Sequence Number fields. Every
        optional field MUST <bcp14>MUST</bcp14> be exactly 4 octets long. Thus, the
        Extension-Flags field explicitly indicates the length of the DEX
        Option-Type. Defining a new optional field requires an allocation of a
        corresponding flag in the Extension-Flags field, as specified in <xref
        target="IANAflags"/>.</t> target="IANAflags" format="default"/>.</t>
        <figure align="center" anchor="OptionFormat"
                title="DEX anchor="OptionFormat">
          <name>DEX Option-Type Format"> Format</name>
          <artwork align="left"><![CDATA[ align="left" name="" type="" 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) (Optional)                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Sequence Number  (Optional)               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           ]]></artwork>
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
        </figure>

        <t><list hangIndent="16" style="hanging">
            <t hangText="Namespace-ID">A

        <dl newline="true" spacing="normal">
          <dt>Namespace-ID:</dt>
          <dd>A 16-bit identifier of the IOAM
            namespace, as defined in <xref target="RFC9197"/>.</t>

            <t hangText="Flags">An target="RFC9197" format="default"/>.</dd>
          <dt>Flags:</dt>
          <dd>An 8-bit field, comprised of 8 one-bit 1-bit
            subfields. Flags are allocated by IANA, as defined in <xref
            target="IANAflags"/>.</t>

            <t hangText="Extension-Flags">An target="IANAflags" format="default"/>.</dd>
          <dt>Extension-Flags:</dt>
          <dd>An 8-bit field, comprised of 8
            one-bit
            1-bit subfields. Extension-Flags are allocated by IANA, as
            defined in <xref target="IANAExtensionflags"/>. target="IANAExtensionflags" format="default"/>. Every bit in the
            Extension-Flag field that is set to 1 indicates the existence of a
            corresponding optional 4-octet field. An IOAM node that receives a
            DEX Option-Type with an unknown flag set to 1 MUST <bcp14>MUST</bcp14> ignore the
            corresponding optional field.</t>

            <t hangText="IOAM-Trace-Type">A field.</dd>
          <dt>IOAM-Trace-Type:</dt>
          <dd>A 24-bit identifier which that specifies
            which IOAM-Data-Fields should be exported. The format of this
            field is as defined in <xref target="RFC9197"/>. target="RFC9197" format="default"/>. Specifically, the
            bit that corresponds to the Checksum Complement IOAM-Data-Field
            SHOULD
            <bcp14>SHOULD</bcp14> be assigned to be zero by the IOAM encapsulating node, node and
            ignored by transit and decapsulating nodes. The reason for this is
            that the Checksum Complement is intended for in-flight packet
            modifications and is not relevant for direct exporting.</t>

            <t hangText="Reserved">This exporting.</dd>
          <dt>Reserved:</dt>
          <dd>This field MUST <bcp14>MUST</bcp14> be ignored by the
            receiver.</t>

            <t hangText="Optional fields">The
            receiver.</dd>
          <dt>Optional fields:</dt>
          <dd><t>The optional fields, if present,
            reside after the Reserved field. The order of the optional fields
            is according to the order of the respective bits, starting from
			the most significant bit, that are enabled in the
			Extension-Flags field. Each optional field is 4 octets long.</t>

            <t hangText="Flow ID">An
			  <dl spacing="normal" newline="true">
          <dt>Flow ID:</dt>
          <dd>An optional 32-bit field representing the
            flow identifier. If the actual Flow ID is shorter than 32 bits, it
            is zero padded in its most significant bits. The field is set at
            the encapsulating node. The Flow ID can be used to correlate the
            exported data of the same flow from multiple nodes and from
            multiple packets. Flow ID values are expected to be allocated in a
            way that avoids collisions. For example, random assignment of Flow
            ID values can be subject to collisions, while
            centralized allocation can avoid this problem. The specification
            of the Flow ID allocation method is not within the scope of this
            document.</t>

            <t hangText="Sequence Number">An
            document.</dd>
          <dt>Sequence Number:</dt>
          <dd>An optional 32-bit sequence number
            starting from 0 and incremented by 1 for each
            packet from the same flow at the encapsulating node that includes
			the DEX option. The Sequence
            Number, when combined with the Flow ID, provides a convenient
            approach to correlate the exported data from the same user
            packet.</t>
          </list></t>
            packet.</dd>
			  </dl>
	  </dd>
	</dl>
      </section>
    </section>
    <section anchor="IANA" title="IANA Considerations"> numbered="true" toc="default">
      <name>IANA Considerations</name>
      <section anchor="IANAtype" title="IOAM Type"> numbered="true" toc="default">
        <name>IOAM Type</name>
        <t>The "IOAM Option-Type Registry" was Option-Type" registry is defined in Section 7.1 of <xref
        target="RFC9197"/>. target="RFC9197" sectionFormat="of" section="7.1"/>. IANA is requested to allocate has allocated the following code
        point from the "IOAM Option-Type Registry" Option-Type" registry as follows:</t>

        <t><list hangIndent="11" style="hanging">
            <t hangText="TBD-type">IOAM
        <dl newline="false" spacing="normal">
          <dt>Code Point:</dt><dd>4</dd>
          <dt>Name</dt><dd>IOAM Direct Export (DEX) Option-Type</t>
          </list></t>

        <t>If possible, IANA is requested to allocate code point 4
        (TBD-type). The "Description" for the new option should be
		"Direct exporting" and the "Reference" should be the current document.
		</t> Option-Type</dd>
	  <dt>Description:</dt><dd>Direct exporting</dd>
	  <dt>Reference:</dt><dd>This document</dd>
        </dl>
      </section>
      <section anchor="IANAflags" title="IOAM numbered="true" toc="default">
        <name>IOAM DEX Flags"> Flags</name>
        <t>IANA is requested to define an has created the "IOAM DEX Flags" registry. This
        registry includes 8 flag bits. Allocation is based on the "IETF
        Review" procedure, as procedure defined in <xref target="RFC8126"/>.</t> target="RFC8126" format="default"/>.</t>
        <t>New registration requests MUST <bcp14>MUST</bcp14> use the following template:</t>

        <t><list style="hanging">
            <t hangText="Bit:">Desired
        <dl newline="false" spacing="normal">
          <dt>Bit:</dt>
          <dd>Desired bit to be allocated in the 8 bit 8-bit Flags
            field of the DEX Option-Type.</t>

            <t hangText="Description:">Brief Option-Type.</dd>
          <dt>Description:</dt>
          <dd>Brief description of the newly
            registered bit.</t>

            <t hangText="Reference:">Reference bit.</dd>
          <dt>Reference:</dt>
          <dd>Reference to the document that defines
            the new bit.</t>
          </list></t> bit.</dd>
        </dl>
      </section>
      <section anchor="IANAExtensionflags" title="IOAM numbered="true" toc="default">
        <name>IOAM DEX Extension-Flags"> Extension-Flags</name>
        <t>IANA is requested to define an has created the "IOAM DEX Extension-Flags" registry.
        This registry includes 8 flag bits. Bit 0 (the most significant bit)
        and bit 1 in the registry are allocated by this document, document and
        described in <xref target="OptionSec"/>. target="OptionSec" format="default"/>. Allocation of the other bits
        should be performed based on the "IETF Review" procedure, as procedure defined
        in <xref target="RFC8126"/>.</t>

        <t><list style="hanging">
            <t hangText="Bit 0">"Flow target="RFC8126" format="default"/>.</t>
        <dl newline="false" spacing="normal">
          <dt>Bit 0:</dt>
          <dd>"Flow ID [RFC XXXX] [RFC Editor: please
            replace with the RFC number of the current document]"</t>

            <t hangText="Bit 1">"Sequence [RFC9326]"</dd>
          <dt>Bit 1:</dt>
          <dd>"Sequence Number [RFC XXXX] [RFC Editor:
            please replace with the RFC number of the current document]"</t>
          </list></t> [RFC9326]"</dd>
        </dl>
        <t>New registration requests MUST <bcp14>MUST</bcp14> use the following template:</t>

        <t><list style="hanging">
            <t hangText="Bit:">Desired
        <dl newline="false" spacing="normal">
          <dt>Bit:</dt>
          <dd>Desired bit to be allocated in the 8 bit 8-bit
            Extension-Flags field of the DEX Option-Type.</t>

            <t hangText="Description:">Brief Option-Type.</dd>
          <dt>Description:</dt>
          <dd>Brief description of the newly
            registered bit.</t>

            <t hangText="Reference:">Reference bit.</dd>
          <dt>Reference:</dt>
          <dd>Reference to the document that defines
            the new bit.</t>
          </list></t> bit.</dd>
        </dl>
      </section>
    </section>
    <section anchor="Performance" title="Performance Considerations"> numbered="true" toc="default">
      <name>Performance Considerations</name>
      <t>The DEX Option-Type triggers IOAM data to be collected and/or
      exported packets to be exported to a receiving entity (or entities). In
      some cases cases, this may impact the receiving entity's performance, performance or the
      performance along the paths leading to it.</t>
      <t>Therefore, the performance impact of these exported packets is
      limited by taking two measures: at the encapsulating nodes, nodes by selective
      DEX encapsulation (<xref target="SelectionSec"/>), target="SelectionSec" format="default"/>) and at the transit
      nodes,
      nodes by limiting exporting rate (<xref target="ExportSec"/>). target="ExportSec" format="default"/>). These
      two measures ensure that direct exporting is used at a rate that does
      not significantly affect the network bandwidth, bandwidth and does not overload
      the receiving entity. Moreover, it is possible to load balance the
      exported data among multiple receiving entities, although the exporting
      method is not within the scope of this document.</t>
      <t>It should be noted that that, in some networks networks, DEX data may be exported
      over an out-of-band network, network in which a large volume of exported traffic
      does not compromise user traffic. In this case case, an operator may choose to
      disable the exporting rate limiting.</t>
    </section>
    <section anchor="Security" title="Security Considerations"> numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>The security considerations of IOAM in general are discussed in <xref
      target="RFC9197"/>. target="RFC9197" format="default"/>. Specifically, an attacker may try to use the
      functionality that is defined in this document to attack the
      network.</t>
      <t>An attacker may attempt to overload network devices by injecting
      synthetic packets that include the DEX Option-Type. Similarly, an
      on-path attacker may maliciously incorporate the DEX Option-Type into
      transit packets, packets or maliciously remove it from packets in which it is
      incorporated.</t>
      <t>Forcing DEX, either in synthetic packets or in transit packets packets, may
      overload the IOAM nodes and/or the receiving entity (or entities). Since
      this mechanism affects multiple devices along the network path, it
      potentially amplifies the effect on the network bandwidth, on the
      storage of the devices that collect the data, and on the receiving
      entity's load.</t>
      <t>The amplification effect of DEX may be worse in wide area networks in
      which there are multiple IOAM domains. IOAM-Domains. For example, if DEX is used in
      IOAM domain
      IOAM-Domain 1 for exporting IOAM data to a receiving entity, then the
      exported packets of domain IOAM-Domain 1 can be forwarded through IOAM domain IOAM-Domain 2, in
      which they are subject to DEX. The In turn, the exported packets of domain IOAM-Domain 2 may in
      turn be forwarded through another IOAM domain (or through domain 1), and
      theoretically IOAM-Domain 1);
      theoretically, this recursive amplification may continue infinitely.</t>
      <t>In order to mitigate the attacks described above, the following
      requirements (<xref target="OptionTypeSec"/>) target="OptionTypeSec" format="default"/>) have been defined:</t>

      <t><list style="symbols">
          <t>Selective
      <ul spacing="normal">
        <li>Selective DEX (<xref target="SelectionSec"/>) target="SelectionSec" format="default"/>) is applied by IOAM
          encapsulating nodes in order to limit the potential impact of DEX
          attacks to a small fraction of the traffic.</t>

          <t>Rate traffic.</li>
        <li>Rate limiting of exported traffic (<xref target="ExportSec"/>) target="ExportSec" format="default"/>) is
          applied by IOAM nodes in order to prevent overloading attacks and in
          order
          to significantly limit the scale of amplification attacks.</t>

          <t>IOAM attacks.</li>
        <li>IOAM encapsulating nodes are required to avoid pushing the DEX
          Option-Type into IOAM exported packets (<xref target="ExportSec"/>), target="ExportSec" format="default"/>),
          thus preventing some of the amplification and export loop
          scenarios.</t>
        </list></t>
          scenarios.</li>
      </ul>
      <t>Although the exporting method is not within the scope of this
      document, any exporting method MUST <bcp14>MUST</bcp14> secure the exported data from the
      IOAM node to the receiving entity, entity in order to protect the
	  confidentiality and guarantee the integrity of the exported data.
	  Specifically, an IOAM node that
      performs DEX exporting MUST <bcp14>MUST</bcp14> send the exported data to a pre-configured
      trusted receiving entity that is in the same IOAM domain IOAM-Domain as the exporting
	  IOAM node.
	  Furthermore, an IOAM node MUST <bcp14>MUST</bcp14> gain explicit
      consent to export data to a receiving entity before starting to send
      exported data.</t>
      <t>An attacker may keep track of the information sent in DEX headers as
      a means of reconnaissance. This form of recon can be mitigated to some
      extent by careful allocation of the Flow ID and Sequence Number space, space
      in a way that does not compromise privacy aspects aspects, such as customer
      identities.</t>
      <t>The integrity of the DEX Option-Type can be protected through a
      mechanism of the encapsulating protocol. While <xref
      target="I-D.ietf-ippm-ioam-data-integrity"/> target="I-D.ietf-ippm-ioam-data-integrity" format="default"/> introduces an integrity
      protection mechanism that protects the integrity of IOAM-Data-Fields,
      the DEX Option-Type does not include IOAM-Data-Fields, and therefore IOAM-Data-Fields; therefore,
      these integrity protection mechanisms are not applicable to the DEX
      Option-Type. As discussed in the threat analysis of <xref
      target="I-D.ietf-ippm-ioam-data-integrity"/>, target="I-D.ietf-ippm-ioam-data-integrity" format="default"/>, injection or modification
      of IOAM-Option-Type headers are threats that are not addressed in
      IOAM.</t>
      <t>IOAM is assumed to be deployed in a restricted administrative domain,
      thus limiting the scope of the threats above and their affect. effect. This is a
      fundamental assumption with respect to the security aspects of IOAM, as
      further discussed in <xref target="RFC9197"/>.</t>
    </section>

    <section anchor="Acknowledgments" title="Acknowledgments">
      <t>The authors thank Martin Duke, Tommy Pauly, Meral Shirazipour, Colin
      Perkins, Stephen Farrell, Linda Dunbar, Justin Iurman, Greg Mirsky, and
      other members of the IPPM working group for many helpful comments.</t> target="RFC9197" format="default"/>.</t>
    </section>
  </middle>
  <back>
    <references title="Normative References">
      &RFC2119;

      &RFC8174;

      &RFC9197;

<displayreference target="I-D.spiegel-ippm-ioam-rawexport" to="IOAM-RAWEXPORT"/>
<displayreference target="I-D.song-ippm-postcard-based-telemetry" to="POSTCARD-BASED-TELEMETRY"/>
<displayreference target="I-D.ietf-ippm-ioam-data-integrity" to="IOAM-DATA-INTEGRITY"/>
<displayreference target="I-D.ietf-ippm-ioam-ipv6-options" to="IOAM-IPV6-OPTIONS"/>

    <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.8174.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9197.xml"/>
      </references>
      <references>
        <name>Informative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6291.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5475.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7014.xml"/>

<!-- [I-D.spiegel-ippm-ioam-rawexport] IESG state Expired -->

        <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.spiegel-ippm-ioam-rawexport.xml"/>

<!-- [I-D.song-ippm-postcard-based-telemetry] IESG state I-D Exists -->

        <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.song-ippm-postcard-based-telemetry.xml"/>

<!-- [I-D.ietf-ippm-ioam-flags] in AUTH48 state as of 09/30/22 as RFC 9322; confirm publication -->

<reference anchor='RFC9322' target='https://www.rfc-editor.org/info/rfc9322'>
<front>
<title>In Situ Operations, Administration, and Maintanence (IOAM) Loopback and
Active Flags</title>
<author initials='T' surname='Mizrahi' fullname='Tal Mizrahi'>
<organization />
</author>
<author initials='F' surname='Brockners' fullname='Frank Brockners'>
<organization />
</author>
<author initials='S' surname='Bhandari' fullname='Shwetha Bhandari'>
<organization />
</author>
<author initials='B' surname='Gafni' fullname='Barak Gafni'>
<organization />
</author>
<author initials='M' surname='Spiegel' fullname='Mickey Spiegel'>
<organization />
</author>
<date year='2022' month='November'/>
</front>
<seriesInfo name="RFC" value="9322"/>
<seriesInfo name="DOI" value="10.17487/RFC9322"/>
</reference>

<!-- [I-D.ietf-ippm-ioam-data-integrity] IESG state I-D Exists -->

        <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.ietf-ippm-ioam-data-integrity.xml"/>

<!-- [I-D.ietf-ippm-ioam-ipv6-options] IESG state Waiting for AD Go-Ahead::Revised I-D Needed -->

        <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.ietf-ippm-ioam-ipv6-options.xml"/>
      </references>

    <references title="Informative References">
      &RFC6291;

      &RFC8126;

      &RFC5475;

      &RFC7014;

      &I-D.spiegel-ippm-ioam-rawexport;

      &I-D.song-ippm-postcard-based-telemetry;

      &I-D.ietf-ippm-ioam-flags;

      &I-D.ietf-ippm-ioam-data-integrity;

      &I-D.ietf-ippm-ioam-ipv6-options;
    </references>
    <section anchor="appendix" title="Notes About numbered="true" toc="default">
      <name>Notes about the History of this Document"> This Document</name>
      <t>This document evolved from combining some of the concepts of PBT-I
      from <xref target="I-D.song-ippm-postcard-based-telemetry"/> target="I-D.song-ippm-postcard-based-telemetry" format="default"/> with
      immediate exporting from early versions of
	  <xref target="I-D.ietf-ippm-ioam-flags"/>.</t> target="RFC9322" format="default"/>.</t>
      <t>In order to help correlate and order the exported packets, it is
      possible to include the Hop_Lim/Node_ID IOAM-Data-Field in exported
      packets; if
      packets. If the IOAM-Trace-Type <xref target="RFC9197"/> target="RFC9197" format="default"/> has the
      Hop_Lim/Node_ID bit set, then exported packets include the
      Hop_Lim/Node_ID IOAM-Data-Field, which contains the TTL/Hop Limit value
      from a lower layer protocol.
      An alternative approach was considered during the design of this
      document, according to which a 1-octet Hop Count field would be included
      in the DEX header (presumably by claiming some space from the Flags
      field). The Hop Limit would starts start from 0 at the encapsulating node and
      be incremented by each IOAM transit node that supports the DEX
      Option-Type. In this approach approach, the Hop Count field value would also be
      included in the exported packet.</t>
    </section>
        <section anchor="Acknowledgments" numbered="false" toc="default">
      <name>Acknowledgments</name>
      <t>The authors thank <contact fullname="Martin Duke"/>, <contact
      fullname="Tommy Pauly"/>, <contact fullname="Meral Shirazipour"/>,
      <contact fullname="Colin Perkin"/>s, <contact fullname="Stephen
      Farrell"/>, <contact fullname="Linda Dunbar"/>, <contact
      fullname="Justin Iurman"/>, <contact fullname="Greg Mirsky"/>, and other members of the IPPM
      working group for many helpful comments.</t>
    </section>

    <section numbered="false" title="Contributors" toc="default">
      <name>Contributors</name>
      <t>The Editors would like to recognize the contributions of the
      following individuals to this document.</t>

      <t>
        <figure>
          <artwork><![CDATA[
   Tianran Zhou
   Huawei
   156
<contact fullname="Tianran Zhou">
        <organization>Huawei</organization>
        <address>
          <postal>
            <street>156 Beiqing Rd.
   Beijing  100095
   China

   Email: zhoutianran@huawei.com

   Zhenbin Li
   Huawei
   156 Rd.</street>
            <city>Beijing</city>
            <region></region><code>100095</code>
            <country>China</country>
          </postal>
          <email>zhoutianran@huawei.com</email>
        </address>
      </contact>

<contact fullname="Zhenbin Li">
        <organization>Huawei</organization>
        <address>
          <postal>
            <street>156 Beiqing Rd.
   Beijing  100095
   China

   Email: lizhenbin@huawei.com

   Ramesh Sivakolundu
   Cisco Rd.</street>
            <city>Beijing</city>
            <region></region><code>100095</code>
            <country>China</country>
          </postal>
          <email>lizhenbin@huawei.com</email>
        </address>
      </contact>

<contact fullname="Ramesh Sivakolundu">
        <organization>Cisco Systems, Inc.
   170 Inc.</organization>
        <address>
          <postal>
            <street>170 West Tasman Dr.
   SAN JOSE, CA 95134
   U.S.A.

   Email: sramesh@cisco.com

]]></artwork>
        </figure>
      </t> Dr.</street>
            <city>San Jose</city>
            <region>CA</region><code>95134</code>
            <country>United States of America</country>
          </postal>
          <email>sramesh@cisco.com</email>
        </address>
      </contact>
    </section>
  </back>
</rfc>