<?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 RFC8799 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8799.xml">
<!ENTITY RFC9326 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9326.xml">
<!ENTITY RFC2784 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2784.xml">
<!ENTITY RFC8279 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8279.xml">
<!ENTITY RFC9322 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9322.xml">
<!ENTITY RFC9197 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9197.xml">
<!ENTITY RFC8926 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8926.xml">
<!ENTITY RFC7665 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7665.xml">
<!ENTITY RFC2119 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC7799 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7799.xml">
<!ENTITY RFC6830 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6830.xml">
<!ENTITY RFC7276 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7276.xml">
<!ENTITY RFC7112 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7112.xml">
<!ENTITY RFC6833 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6833.xml">
<!ENTITY RFC2460 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2460.xml">
<!ENTITY RFC791 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.0791.xml">
<!ENTITY RFC6564 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6564.xml">
<!ENTITY RFC7820 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7820.xml">
<!ENTITY RFC7821 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7821.xml">
<!ENTITY RFC8126 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml">
<!ENTITY RFC5905 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5905.xml">
  <!ENTITY RFC7384 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7384.xml"> nbsp    "&#160;">
  <!ENTITY RFC8915 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8915.xml"> zwsp   "&#8203;">
  <!ENTITY RFC5905 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5905.xml"> nbhy   "&#8209;">
  <!ENTITY RFC8039 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8039.xml">
<!ENTITY RFC8300 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8300.xml">
<!ENTITY RFC8174 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.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.ietf-sfc-proof-of-transit SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-sfc-proof-of-transit.xml">
<!ENTITY I-D.ietf-spring-segment-routing SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-spring-segment-routing.xml">
<!ENTITY I-D.previdi-isis-segment-routing-extensions SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.previdi-isis-segment-routing-extensions.xml">
<!ENTITY I-D.ietf-ippm-6man-pdm-option SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-ippm-6man-pdm-option.xml">
<!ENTITY I-D.gont-v6ops-ipv6-ehs-in-real-world SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.gont-v6ops-ipv6-ehs-in-real-world.xml">
<!ENTITY I-D.brockners-lisp-sr SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.brockners-lisp-sr.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-6man-segment-routing-header SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-6man-segment-routing-header.xml">
<!ENTITY I-D.ietf-nvo3-vxlan-gpe SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-nvo3-vxlan-gpe.xml">
<!ENTITY I-D.ietf-ippm-ioam-conf-state SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-ippm-ioam-conf-state.xml">
<!ENTITY I-D.lapukhov-dataplane-probe SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.lapukhov-dataplane-probe.xml">
<!ENTITY I-D.ietf-ntp-packet-timestamps SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-ntp-packet-timestamps.xml">
<!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">
<!ENTITY I-D.zhou-ippm-ioam-yang SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.zhou-ippm-ioam-yang.xml">
<!ENTITY I-D.mizrahi-ippm-ioam-profile SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.mizrahi-ippm-ioam-profile.xml">
<!ENTITY I-D.weis-ippm-ioam-eth SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.weis-ippm-ioam-eth.xml">
<!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.xzlnp-bier-ioam SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.xzlnp-bier-ioam.xml">
<!ENTITY I-D.brockners-ippm-ioam-geneve SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.brockners-ippm-ioam-geneve.xml">
<!ENTITY I-D.gandhi-spring-ioam-sr-mpls SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.gandhi-spring-ioam-sr-mpls.xml">
<!ENTITY I-D.ali-spring-ioam-srv6 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ali-spring-ioam-srv6.xml">
<!ENTITY I-D.brockners-ippm-ioam-vxlan-gpe SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.brockners-ippm-ioam-vxlan-gpe.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' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs),
     please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
     (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space
     (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" category="info" consensus="true" docName="draft-ietf-ippm-ioam-deployment-05" ipr="trust200902">
  <!-- ipr="full3978"-->

  <!-- category values: std, bcp, info, exp, and historic
     ipr values: full3667, noModification3667, noDerivatives3667
     you can add the attributes updates="NNNN" and obsoletes="NNNN"
     they will automatically be output with "(if approved)" -->

  <!-- ***** FRONT MATTER ***** --> number="9378" ipr="trust200902" obsoletes="" updates="" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3">

  <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the
         full title is longer than 39 characters -->
    <title abbrev="In-situ OAM Deployment">In-situ OAM abbrev="IOAM Deployment">In Situ Operations, Administration, and Maintenance (IOAM) Deployment</title>

    <!-- add 'role="editor"' below for the editors if appropriate -->

    <!-- Another author who claims to be an editor -->
    <seriesInfo name="RFC" value="9378"/>

    <author fullname="Frank Brockners" initials="F." surname="Brockners" role="editor">
      <organization abbrev="Cisco">Cisco Systems, Inc.</organization>
      <address>
        <postal>
	  <extaddr>3rd Floor</extaddr>
	  <street>Hansaallee 249, 3rd Floor</street>

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

          <city>DUESSELDORF</city>

          <region>NORDRHEIN-WESTFALEN</region>
          <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" role="editor">
      <organization abbrev="Thoughtspot">Thoughtspot</organization>
      <address>
        <postal>
          <street>3rd
	  <extaddr>3rd Floor, Indiqube Orion, 24th Main Rd, Garden Orion</extaddr>
	  <extaddr>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="Daniel Bernier" initials="D." surname="Bernier">
      <organization abbrev="">Bell Canada</organization>
      <address>
        <postal>
          <street/>
          <city/>
          <code/>
          <country>Canada</country>
        </postal>
        <email>daniel.bernier@bell.ca</email>
      </address>
    </author>
    <author fullname="Tal Mizrahi" initials="T." surname="Mizrahi" role="editor">
      <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 day="4" month="January" month="April" year="2023"/>

    <!-- If the month and year are both specified and are the current ones, xml2rfc will fill
         in the current day for you. If only the current year is specified, xml2rfc will fill
	 in the current day and month for you. If the year is not the current one, it is
	 necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the
	 purpose of calculating the expiry date).  With drafts it is normally sufficient to
	 specify just the year. -->

    <!-- Meta-data Declarations -->

    <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. -->

    <keyword>Telemetry, Tracing,</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. -->

    <keyword>Telemetry</keyword>
    <keyword>Tracing</keyword>

    <abstract>
      <t>In-situ
      <t>In situ Operations, Administration, and Maintenance (IOAM) collects
      operational and telemetry information in the packet while the packet
      traverses a path between two points in the network. This document
      provides a framework for IOAM deployment and provides IOAM deployment
      considerations and guidance.</t>
    </abstract>
  </front>
  <middle>
    <section title="Introduction" toc="default">
      <t>"In-situ" toc="default" numbered="true">
      <name>Introduction</name>
      <t>In situ Operations, Administration, and Maintenance (IOAM) collects
      OAM information within the packet while the packet traverses a
      particular network domain. The term "in-situ" "in situ" refers to the fact that
      the OAM data is added to the data packets rather than is being sent within
      packets specifically dedicated to OAM. IOAM is to complement complements mechanisms such
      as Ping, Traceroute, or other active probing mechanisms.  In terms of
      "active" or "passive" OAM, "in-situ" OAM IOAM can be considered a hybrid OAM type. "In-situ" In
      situ mechanisms do not require extra packets to be sent. IOAM adds
      information to the already available data packets and
      therefore and, therefore, cannot
      be considered passive. In terms of the classification given in <xref target="RFC7799"/>
      target="RFC7799" format="default"/>, IOAM could be portrayed as Hybrid
      Type I. IOAM mechanisms can be leveraged where mechanisms using using, e.g.,
      ICMP do not apply or do not offer the desired results, such as proving results. These situations
      could include:</t>
          <ul spacing="normal">
	    <li>proving that a certain traffic flow takes a pre-defined path, SLA predefined
	    path,</li>
	    <li>verifying the Service Level Agreement (SLA) verification for
	    the live data traffic, traffic,</li>
	    <li>providing detailed statistics on traffic distribution paths in
	    networks that distribute traffic across multiple paths, or or</li>
	    <li>providing scenarios in which probe traffic is potentially
	    handled differently from regular data traffic by the network devices.</t>
	    devices.</li>
	  </ul>
    </section>
    <section anchor="Conventions" title="Conventions"> numbered="true" toc="default">
      <name>Conventions</name>
      <t>Abbreviations used in this document:</t>

      <t><list hangIndent="11" style="hanging">
          <t hangText="BIER:">Bit
      <dl newline="false" spacing="normal" indent="11">
        <dt>BIER:</dt>
        <dd>Bit Index Explicit Replication
	  <xref target="RFC8279"/></t>

          <t hangText="Geneve:">Generic target="RFC8279" format="default"/></dd>
        <dt>Geneve:</dt>
        <dd>Generic Network Virtualization Encapsulation
          <xref target="RFC8926"/></t>

          <t hangText="GRE:">Generic target="RFC8926" format="default"/></dd>
        <dt>GRE:</dt>
        <dd>Generic Routing Encapsulation
          <xref target="RFC2784"/></t>

          <t hangText="IOAM:">In-situ target="RFC2784" format="default"/></dd>
        <dt>IOAM:</dt>
        <dd>In situ Operations, Administration, and
          Maintenance</t>

          <t hangText="MTU:">Maximum Transmit Unit</t>

          <t hangText="NSH:">Network
          Maintenance</dd>
        <dt>MTU:</dt>
        <dd>Maximum Transmission Unit</dd>
        <dt>NSH:</dt>
        <dd>Network Service Header <xref
          target="RFC8300"/></t>

          <t hangText="OAM:">Operations, target="RFC8300" format="default"/></dd>
        <dt>OAM:</dt>
        <dd>Operations, Administration, and Maintenance</t>

          <t hangText="POT:">Proof of Transit</t>

          <t hangText="VXLAN-GPE:">Virtual Maintenance</dd>
        <dt>POT:</dt>
        <dd>Proof of Transit</dd>
        <dt>VXLAN-GPE:</dt>
        <dd>Virtual eXtensible Local Area Network, Network -
          Generic Protocol Extension <xref
          target="I-D.ietf-nvo3-vxlan-gpe"/></t>
        </list></t> target="I-D.ietf-nvo3-vxlan-gpe" format="default"/></dd>
      </dl>
    </section>
    <section title="IOAM numbered="true" toc="default">
      <name>IOAM Deployment: Domains And Nodes"> and Nodes</name>
      <t><xref target="RFC9197" format="default"/> defines the scope of IOAM
      as well as the different types of IOAM nodes. For improved readability,
      this section provides a brief overview of where IOAM applies, along with
      explaining the main roles of nodes that employ IOAM.  Please refer to
      <xref target="RFC9197" format="default"/> for further details.</t>
      <t>IOAM is focused on "limited domains" domains", as defined in <xref
      target="RFC8799" format="default"/>.  IOAM is not targeted for a
      deployment on the global Internet. The part of the network which that employs
      IOAM is referred to as the "IOAM-Domain". For example, an IOAM-domain IOAM-Domain
      can include an enterprise campus using physical connections between
      devices or an overlay network using virtual connections / or tunnels for
      connectivity between said devices. An IOAM-domain IOAM-Domain is defined by its
      perimeter or edge. The operator of an IOAM-domain IOAM-Domain is expected to put
      provisions in place to ensure that packets which that contain IOAM data fields
      do not leak beyond the edge of an IOAM domain, IOAM-Domain, e.g., using for example packet
      filtering methods. The operator should consider the potential
      operational impact of IOAM to on mechanisms such as ECMP load-balancing
      schemes (e.g., load-balancing schemes based on packet length could be
      impacted by the increased packet size due to IOAM), path MTU (i.e.,
      ensure that the MTU of all links within a domain is sufficiently large
      enough to support the increased packet size due to IOAM) IOAM), and ICMP
      message handling.</t>

      <t>An IOAM-Domain consists of "IOAM encapsulating nodes", "IOAM
      decapsulating nodes" nodes", and "IOAM transit nodes". The role of a node (i.e.,
      encapsulating, transit, decapsulating) is defined within an
      IOAM-Namespace (see below). A node can have different roles in different
      IOAM-Namespaces.</t>
      <t>An "IOAM IOAM encapsulating node" node incorporates one or more
      IOAM-Option-Types
      IOAM Option-Types into packets that IOAM is enabled for. If IOAM is
      enabled for a selected subset of the traffic, the IOAM encapsulating
      node is responsible for applying the IOAM functionality to the selected
      subset.</t>
      <t>An "IOAM IOAM transit node" node updates one or more of the IOAM-Data-Fields.
      If both the Pre-allocated and the Incremental Trace Option-Types are
      present in the packet, each IOAM transit node will update at most one of
      these Option-Types.
      Note that in case both Trace Option-Types are present in a packet, it
      is up to the IOAM data processing systems (see <xref target="export"/>) target="export" format="default"/>)
      to integrate the data from the two Trace Option-Types to form
      a view of the entire journey of the packet.
      A transit node does not add new IOAM-Option-Types IOAM Option-Types to
      a packet, packet and does not change the IOAM-Data-Fields of an IOAM
      Edge-to-Edge (E2E) Option-Type.
      </t>
      <t>An "IOAM IOAM decapsulating node" node removes IOAM-Option-Type(s) any IOAM Option-Types from
      packets.</t>
      <t>The role of an IOAM-encapsulating, IOAM-transit IOAM encapsulating, IOAM transit, or IOAM-decapsulating IOAM decapsulating
      node is always performed within a specific IOAM-Namespace. This means
      that an IOAM node which is that is, e.g., an IOAM-decapsulating IOAM decapsulating node for
      IOAM-Namespace "A" but not for IOAM-Namespace "B" will only remove the
      IOAM-Option-Types
      IOAM Option-Types for IOAM-Namespace "A" from the packet. An IOAM
      decapsulating node situated at the edge of an IOAM domain IOAM-Domain removes all
      IOAM-Option-Types
      IOAM Option-Types and associated encapsulation headers for all
      IOAM-Namespaces from the packet.</t>
      <t>IOAM-Namespaces allow for a namespace-specific definition and
      interpretation of IOAM-Data-Fields. Please refer to <xref
      target="ioam_namespaces"/> target="ioam_namespaces" format="default"/> for a discussion of IOAM-Namespaces.</t>

      <figure align="center" anchor="IOAM-roles" title="Roles anchor="IOAM-roles">
        <name>Roles of IOAM nodes"> Nodes</name>
        <artwork align="left"><![CDATA[ align="left" name="" type="" alt=""><![CDATA[
         Export of      Export of      Export of     Export of
         IOAM data      IOAM data      IOAM data     IOAM data
         (optional)     (optional)     (optional)     (optional)
             ^              ^              ^              ^
             |              |              |              |
             |              |              |              |
User     +---+----+     +---+----+     +---+----+     +---+----+
packets  |Encapsu-|     | Transit|     | Transit|     |Decapsu-|
-------->|lating  |====>| Node   |====>| Node   |====>|lating  |-->
         |Node    |     | A      |     | B      |     |Node    |
         +--------+     +--------+     +--------+     +--------+
]]></artwork>
      </figure>

      <t>IOAM nodes which that add or remove the IOAM-Data-Fields can also update
      the IOAM-Data-Fields at the same time. Or Or, in other words, IOAM
      encapsulating or decapsulating nodes can also serve as IOAM transit
      nodes at the same time. Note that not every node in an IOAM domain IOAM-Domain needs
      to be an IOAM transit node. For example, a deployment might require that
      packets traverse a set of firewalls which that support IOAM. In that case,
      only the set of firewall nodes would be IOAM transit nodes rather than
      all nodes.</t>
    </section>
    <section title="Types numbered="true" toc="default">
      <name>Types of IOAM"> IOAM</name>
      <t>IOAM supports different modes of operation, which operation. These modes are
      differentiated by the type of IOAM data fields that are being carried in
      the packet, the data being collected, the type of nodes which that
      collect or update data as well
      as whether data, and if and how nodes export IOAM
      information. <list style="symbols">
          <t>Per-hop tracing: OAM </t>
      <dl spacing="normal" newline="false">
          <dt>Per-hop tracing:</dt>
	  <dd><t>OAM information about each IOAM node a packet
          traverses is collected and stored within the user data packet as the
          packet progresses through the IOAM domain. IOAM-Domain. Potential uses of IOAM
          per-hop tracing include:<list style="symbols">
		  <t>
		  Understand include:</t>
          <ul spacing="normal">
            <li>Understanding the different paths that different packets
            traverse between an IOAM encapsulating node and an IOAM
            decapsulating node in a network that uses load balancing balancing, such as
            Equal Cost Multi-Path (ECMP).  This information could be used to
            tune the algorithm for ECMP for optimized network resource usage.</t>

	  <t>Operations/Troubleshooting:
		  Understand
            usage.</li>
            <li>With regard to operations and troubleshooting, understanding
            which path a particular packet or set of packets take as well as
            what amount of jitter and delay different IOAM nodes in the path
            contribute to the overall delay and jitter between the IOAM
            encapsulating node and the IOAM decapsulating node.</t>
            </list></t>

          <t>Proof-of-transit: Information node.</li>
          </ul></dd>
        <dt>Proof of Transit:</dt>
	<dd>Information that a verifier node can use to verify whether a
	packet has traversed all nodes that it is supposed to traverse is
	stored within the user data packet. Proof-of-transit For example, Proof of Transit
	could for example be used to verify that a packet indeed passes through all
	services of a service function chain (e.g., verify whether a packet
	indeed traversed the set of firewalls that it is expected to traverse), traverse)
	or whether a packet indeed took the expected
          path.</t>

          <t>Edge-to-edge: OAM path.</dd>
        <dt>Edge-to-Edge (E2E):</dt>
	<dd>OAM information which that is specific to the edges of an IOAM domain IOAM-Domain
	is collected and stored within the user data packet.
          Edge-to-Edge  E2E OAM
	could be used to gather operational information about a particular
	network domain, such as the delay and jitter incurred by that network
	domain or the traffic matrix of the network
          domain.</t>

          <t>Direct export: OAM domain.</dd>
        <dt>Direct Export:</dt>
	<dd>OAM information about each IOAM node a packet traverses is
	collected and immediately exported to a collector.  Direct export Export
	could be used in situations where per-hop tracing information is
	desired, but gathering the information within the packet - -- as with
	per-hop tracing - -- is not feasible. Rather than automatically
	correlating the per-hop tracing information, as done with per-hop
	tracing, direct export Direct Export requires a collector to correlate the
	information from the individual nodes. In addition, all nodes enabled
	for direct export Direct Export need to be capable to export of exporting the IOAM information
	to the collector.</t>
        </list></t> collector.</dd>
      </dl>
      <section anchor="IOAM-tracing" title="Per-hop numbered="true" toc="default">
        <name>Per-Hop Tracing IOAM"> IOAM</name>
        <t>"IOAM tracing data" is expected to be collected at every IOAM
        transit node that a packet traverses to ensure visibility into the
        entire path that a packet takes within an IOAM-Domain. I.e., In other words,
        in a typical
        deployment deployment, all nodes in an IOAM-Domain would participate
        in IOAM and
        thus and, thus, be IOAM transit nodes, IOAM encapsulating nodes, or
        IOAM decapsulating nodes. If not all nodes within a domain are IOAM
        capable, IOAM tracing information (i.e., node data, see below) will
        only be collected on those nodes which that are IOAM capable. Nodes which that
        are not IOAM capable will forward the packet without any changes to
        the IOAM-Data-Fields.  The maximum number of hops and the minimum path
        MTU of the IOAM domain
        is IOAM-Domain are assumed to be known.</t>
        <t>IOAM offers two different trace Option-Types, Trace Option-Types: the "incremental" "Incremental"
        Trace Option-Type as well as and the "pre-allocated" "Pre-allocated" Trace Option-Type. For a
        discussion about which of the two option types is the most suitable
        for an implementation and/or deployment, see <xref
        target="IOAM-trace-options"/>.</t>
        target="IOAM-trace-options" format="default"/>.</t>
        <t>Every node data entry holds information for a particular IOAM
        transit node that is traversed by a packet. The IOAM decapsulating
        node removes the IOAM-Option-Type(s) any IOAM Option-Types and processes and/or exports the
        associated data. All IOAM-Data-Fields are defined in the context of an
        IOAM-Namespace.</t>
        <t>IOAM tracing can can, for example example, collect the following
	types of information:</t>

        <t><list style="symbols">
            <t>Identification
        <ul spacing="normal">
          <li>Identification of the IOAM node. An IOAM node identifier can
            match to a device identifier or a particular control point or
            subsystem within a device. </t>

            <t>Identification </li>
          <li>Identification of the interface that a packet was received on,
            i.e.
            i.e., ingress interface.</t>

            <t>Identification interface.</li>
          <li>Identification of the interface that a packet was sent out on,
            i.e.
            i.e., egress interface.</t>

            <t>Time interface.</li>
          <li>Time of day when the packet was processed by the node as well
            as the transit delay. Different definitions of processing time are
            feasible and expected, though it is important that all devices of
            an in-situ OAM domain IOAM-Domain follow the same definition.</t>

            <t>Generic data: Format-free information definition.</li>
          <li>Generic data, which is format-free information, where the syntax
          and semantic semantics of the information is are defined by the operator in a
          specific deployment. For a specific IOAM-Namespace, all IOAM nodes
          should interpret the generic data the same way. Examples for generic
          IOAM data include geolocation information (location of the node at
          the time the packet was processed), buffer queue fill level or cache
          fill level at the time the packet was processed, or even a battery
          charge level.</t>

            <t>Information level.</li>
          <li>Information to detect whether IOAM trace data was added at
            every hop or whether certain hops in the domain weren't IOAM
            transit nodes.</t>

            <t>Data nodes.</li>
          <li>Data that relates to how the packet traversed a node (transit
            delay, buffer occupancy in case the packet was buffered, and queue
            depth in case the packet was queued)</t>
          </list>The Option-Types of incremental tracing queued).</li>
        </ul>
        <t>The Incremental Trace Option-Type and pre-allocated
        tracing Pre-allocated Trace
        Option-Type are defined in <xref target="RFC9197"/>.</t> target="RFC9197"
        format="default"/>.</t>
      </section>
      <section anchor="IOAM-proof-of-transit" title="Proof numbered="true" toc="default">
        <name>Proof of Transit IOAM">
        <t>IOAM IOAM</name>
        <t>The IOAM Proof of Transit Option-Type is to support path or service
        function chain <xref target="RFC7665"/> target="RFC7665" format="default"/> verification
        use cases.
        Proof-of-transit  Proof of transit could use methods like nested hashing or
        nested encryption of the IOAM data.</t>
        <t>The IOAM Proof of Transit Option-Type consist consists of a fixed size fixed-size
        "IOAM
        proof Proof of transit option Transit Option header" and "IOAM proof Proof of transit option Transit
        Option data fields". For details details, see <xref target="RFC9197"/>.</t> target="RFC9197"
        format="default"/>.</t>
      </section>
      <section anchor="IOAM-edge-to-edge" title="Edge to Edge IOAM"> numbered="true" toc="default">
        <name>E2E IOAM</name>
        <t>The IOAM Edge-to-Edge E2E Option-Type is to carry the data that is
        added by the IOAM encapsulating node and interpreted by IOAM
        decapsulating node. The IOAM transit nodes may process the data but
        must not modify it.</t>
        <t>The IOAM Edge-to-Edge E2E Option-Type consist consists of a fixed size fixed-size "IOAM
        Edge-to-Edge Option-Type header" and "IOAM Edge-to-Edge Option-Type
        data fields". For details details, see <xref
        target="RFC9197"/>.</t> target="RFC9197" format="default"/>.</t>
      </section>
      <section title="Direct numbered="true" toc="default">
        <name>Direct Export IOAM"> IOAM</name>
        <t>Direct Export is an IOAM mode of operation within which IOAM data
        are to be directly exported to a collector rather than being be collected
        within the data packets. The IOAM Direct Export Option-Type consist consists of
        a fixed size fixed-size "IOAM direct export option header". Direct Export for
        IOAM is defined in <xref
        target="RFC9326"/>.</t> target="RFC9326" format="default"/>.</t>
      </section>
    </section>
    <section anchor="ioam-encap" title="IOAM Encapsulations"> numbered="true" toc="default">
      <name>IOAM Encapsulations</name>

      <t>IOAM data fields and associated data types for in-situ OAM IOAM are
      defined in <xref target="RFC9197"/>. target="RFC9197" format="default"/>. The in-situ OAM IOAM
      data field can be transported by a variety of transport protocols,
      including NSH, Segment Routing, Geneve, BIER, IPv6, etc.</t>
      <section title="IPv6"> numbered="true" toc="default">
        <name>IPv6</name>
        <t>IOAM encapsulation for IPv6 is defined in <xref
		target="I-D.ietf-ippm-ioam-ipv6-options"/>,
        target="I-D.ietf-ippm-ioam-ipv6-options" format="default"/>, which
        also discussed discusses IOAM deployment considerations for IPv6 networks</t> networks.</t>
      </section>
      <section title="NSH"> numbered="true" toc="default">
        <name>NSH</name>
        <t>IOAM encapsulation for NSH is defined in <xref
        target="I-D.ietf-sfc-ioam-nsh"/>.</t> target="I-D.ietf-sfc-ioam-nsh" format="default"/>.</t>
      </section>
      <section title="BIER"> numbered="true" toc="default">
        <name>BIER</name>
        <t>IOAM encapsulation for BIER is defined in <xref
        target="I-D.xzlnp-bier-ioam"/>.</t> target="I-D.xzlnp-bier-ioam" format="default"/>.</t>
      </section>
      <section title="GRE"> numbered="true" toc="default">
        <name>GRE</name>
        <t>IOAM encapsulation for GRE is outlined as part of the "EtherType
        Protocol Identification of In-situ OAM Data" in <xref
        target="I-D.weis-ippm-ioam-eth"/>.</t> target="I-D.weis-ippm-ioam-eth" format="default"/>.</t>
      </section>
      <section title="Geneve"> numbered="true" toc="default">
        <name>Geneve</name>
        <t>IOAM encapsulation for Geneve is defined in <xref
        target="I-D.brockners-ippm-ioam-geneve"/>.</t> target="I-D.brockners-ippm-ioam-geneve" format="default"/>.</t>
      </section>
      <section title="Segment Routing"> numbered="true" toc="default">
        <name>Segment Routing</name>
        <t>IOAM encapsulation for Segment Routing is defined in <xref
        target="I-D.gandhi-spring-ioam-sr-mpls"/>.</t> target="I-D.gandhi-mpls-ioam" format="default"/>.</t>
      </section>
      <section title="Segment numbered="true" toc="default">
        <name>Segment Routing for IPv6"> IPv6</name>
        <t>IOAM encapsulation for Segment Routing over IPv6 is defined in
        <xref target="I-D.ali-spring-ioam-srv6"/>.</t> target="I-D.ali-spring-ioam-srv6" format="default"/>.</t>
      </section>
      <section title="VXLAN-GPE"> numbered="true" toc="default">
        <name>VXLAN-GPE</name>
        <t>IOAM encapsulation for VXLAN-GPE is defined in <xref
        target="I-D.brockners-ippm-ioam-vxlan-gpe"/>.</t> target="I-D.brockners-ippm-ioam-vxlan-gpe" format="default"/>.</t>
      </section>
    </section>
    <section anchor="export" title="IOAM numbered="true" toc="default">
      <name>IOAM Data Export"> Export</name>
      <t>IOAM nodes collect information for packets traversing a domain that
      supports IOAM. IOAM decapsulating nodes nodes, as well as IOAM transit nodes nodes,
      can choose to retrieve IOAM information from the packet, process the
      information further further, and export the information using using, e.g., IPFIX.</t> IP Flow Information Export (IPFIX).</t>
      <t>Raw data export of IOAM data using IPFIX is discussed in <xref
      target="I-D.spiegel-ippm-ioam-rawexport"/>.
      target="I-D.spiegel-ippm-ioam-rawexport" format="default"/>. "Raw export
      of IOAM data" refers to a mode of operation where a node exports the
      IOAM data as it is received in the packet. The exporting node neither interprets,
      aggregates nor reformats does not
      interpret, aggregate, or reformat the IOAM data before it is
      exported. Raw export of IOAM data is to support an operational model
      where the processing and interpretation of IOAM data is decoupled from
      the operation of encapsulating/updating/decapsulating IOAM data, which
      is also referred to as IOAM "IOAM data-plane operation. The figure below operation". <xref
      target="export-arch"/> shows the separation of concerns for IOAM export: export.
      Exporting IOAM data is performed by the "IOAM node" node", which performs IOAM
      data-plane operation, whereas the interpretation of IOAM data is
      performed by one or several IOAM data processing systems. The separation
      of concerns is to off-load offload interpretation, aggregation aggregation, and formatting
      of IOAM data from the node
      which that performs data-plane operations. In other
      words, a node which that is focused on data-plane operations, i.e. i.e., forwarding
      of packets and handling IOAM data data, will not be tasked to also interpret
      the IOAM data,
      but data. Instead, that node can leave this task to another system
      or a set of systems. For scalability reasons, a single IOAM node could
      choose to export IOAM data to several systems that process IOAM data processing systems.
      data. Similarly, there several monitoring systems or analytics systems
      can be used to further process the data received from the IOAM
      preprocessing systems. <xref
      target="export-arch"/> target="export-arch" format="default"/>
      shows an overview of IOAM export, including IOAM data processing systems
      and monitoring/analytics monitoring and analytics systems.</t>
      <figure align="center" anchor="export-arch"
              title="IOAM framework anchor="export-arch">
        <name>IOAM Framework with data export"> Data Export</name>
        <artwork align="left"><![CDATA[ align="left" name="" type="" alt=""><![CDATA[
                              +--------------+
                             +-------------+ |
                             | Monitoring/ | |
                             | Analytics   | |
                             | system(s)   |-+
                             +-------------+
                                    ^
                                    |  Processed/interpreted/
                                    |  aggregated IOAM data
                                    |
                              +--------------+
                             +-------------+ |
                             | IOAM data   | |
                             | processing  | |
                             | system(s)   |-+
                             +-------------+
                                    ^
                                    |  Raw export of
                                    |  IOAM data
                                    |
             +--------------+-------+------+--------------+
             |              |              |              |
             |              |              |              |
User     +---+----+     +---+----+     +---+----+     +---+----+
packets  |Encapsu-|     | Transit|     | Transit|     |Decapsu-|
-------->|lating  |====>| Node   |====>| Node   |====>|lating  |-->
         |Node    |     | A      |     | B      |     |Node    |
         +--------+     +--------+     +--------+     +--------+
]]></artwork>
</figure>

    </section>
    <section anchor="IOAM-framework" title="IOAM numbered="true" toc="default">
      <name>IOAM Deployment Considerations"> Considerations</name>
      <t>This section describes several concepts of IOAM, IOAM and provides
      considerations that need to be taken to into account when implementing IOAM
      in a network domain.  This includes concepts like IOAM Namespaces, IOAM-Namespaces, IOAM
      Layering, traffic-sets that IOAM is applied to to, and IOAM loopback mode. Loopback. For a
      definition of IOAM Namespaces IOAM-Namespaces and IOAM layering, Layering, please refer to <xref target="RFC9197"/>.
      target="RFC9197" format="default"/>.  IOAM loopback mode Loopback is defined in <xref target="RFC9322"/>.</t>
      target="RFC9322" format="default"/>.</t>
      <section anchor="ioam_namespaces" title="IOAM Namespaces"> numbered="true" toc="default">
        <name>IOAM-Namespaces</name>
        <t>IOAM-Namespaces add further context to IOAM-Option-Types IOAM Option-Types and
        associated IOAM-Data-Fields. IOAM-Namespaces are defined in
	Section 4.3 of <xref target="RFC9197"/>.
        target="RFC9197" sectionFormat="of" section="4.3"/>. The Namespace-ID
        is part of the IOAM Option-Type definition, see e.g., Section
	4.4 of definition. See <xref target="RFC9197"/> target="RFC9197"
        sectionFormat="of" section="4.4"/> for IOAM Trace Option-Types or Section 4.6 of
        <xref target="RFC9197"/> target="RFC9197" sectionFormat="of" section="4.6"/> for the IOAM Edge-to-Edge
        E2E Option-Type.  IOAM-Namespaces support several uses:</t>

        <t><list style="symbols">
            <t>IOAM-Namespaces
        <ul spacing="normal">
          <li>IOAM-Namespaces can be used by an operator to distinguish
          between different operational domains. Devices at domain edges can
          filter on Namespace-IDs to provide for proper IOAM-Domain isolation.</t>

            <t>IOAM-Namespaces
          isolation.</li>
          <li>IOAM-Namespaces provide additional context for IOAM-Data-Fields
            and thus IOAM-Data-Fields; thus, they ensure that IOAM-Data-Fields are unique and can be
          interpreted properly by management stations or network
          controllers. While, for example, the node identifier field does not
          need to be unique in a deployment (e.g., an operator may wish to use
          different node identifiers for different IOAM layers, even within
          the same device; or node identifiers might not be unique for other
          organizational reasons, such as after a merger of two formerly
          separated organizations), the combination of node_id and
          Namespace-ID should always be unique. Similarly, IOAM-Namespaces can
          be used to define how certain IOAM-Data-Fields are interpreted: interpreted. IOAM
          offers three different timestamp format options. The Namespace-ID
          can be used to determine the timestamp format.  IOAM-Data-Fields
          (e.g., buffer occupancy) which that do not have a unit associated are to
          be interpreted within the context of a an IOAM-Namespace. The
          Namespace-ID could also be used to distinguish between different
          types of interfaces: interfaces. An interface-id could could, for example example, point to a
          physical interface (e.g., to understand which physical interface of
          an aggregated link is used when receiving or transmitting a
	    packet) whereas packet).
          Whereas, in another case it case, an interface-id could refer to a logical
          interface (e.g., in case of tunnels). Namespace-IDs could be used to
          distinguish between the different types of interfaces.
            </t>
            </li>
          <li>
            <t>IOAM-Namespaces can be used to identify different sets of
            devices (e.g., different types of devices) in a deployment: deployment. If an
            operator desires to insert different IOAM-Data-Fields based on the
            device, the devices could be grouped into multiple
            IOAM-Namespaces. This could be due to the fact that the IOAM
            feature set differs between different sets of devices, or it could
            be for reasons of optimized space usage in the packet header. It
            could also stem from hardware or operational limitations on the
            size of the trace data that can be added and processed, preventing
            collection of a full trace for a flow.<list style="symbols">
                <t>Assigning flow.</t>
            <ul spacing="normal">
              <li>Assigning different IOAM Namespace-IDs to different sets of
              nodes or network partitions and using the Namespace-ID as a
              selector at the IOAM encapsulating node, a full trace for a flow
              could be collected and constructed via partial traces in
              different packets of the same flow. Example: An For example, an operator
              could choose to group the devices of a domain into two
                IOAM-Namespaces,
              IOAM-Namespaces in a way that at that, on average, only every second hop
              would be recorded by any device. To retrieve a full view of the
              deployment, the captured IOAM-Data-Fields of the two
              IOAM-Namespaces need to be correlated.</t>

                <t>Assigning correlated.</li>
              <li>Assigning different IOAM Namespace-IDs to different sets of
              nodes or network partitions and using a separate instance of an IOAM-Option-Type
              IOAM Option-Type for each Namespace-ID, a full trace for a flow
              could be collected and constructed via partial traces from each IOAM-Option-Type
              IOAM Option-Type in each of the packets in the flow.
                Example: An  For
              example, an operator could choose to group the devices of a
              domain into two IOAM-Namespaces, IOAM-Namespaces in a way that each
              IOAM-Namespace is represented by one of two IOAM-Option-Types IOAM Option-Types in
              the packet. Each node would record data only for the
              IOAM-Namespace that it belongs to, ignoring the other
                IOAM-Option-Type
              IOAM Option-Type with a an IOAM-Namespace to which it doesn't
                belong. belong to. To
              retrieve a full view of the deployment, the captured
              IOAM-Data-Fields of the two IOAM-Namespaces need to be correlated.</t>
              </list></t>
          </list></t>
              correlated.</li>
            </ul>
          </li>
        </ul>
      </section>
      <section title="IOAM Layering"> numbered="true" toc="default">
        <name>IOAM Layering</name>
        <t>If several encapsulation protocols (e.g., in case of tunneling) are
        stacked on top of each other, IOAM-Data-Fields could be present in
        different protocol fields at different layers.	Layering allows
        operators to instrument the protocol layer they want to measure. The
        behavior follows the ships-in-the-night model, i.e., IOAM-Data-Fields
        in one layer are independent of IOAM-Data-Fields in another layer.  Or
        in other words: Even words, even though the term "layering" often implies there is
        some form of hierarchy and relationship, in IOAM, layers are
        independent of each other and don't assume any relationship among
        them. The different layers could, but do not have to to, share the same
        IOAM encapsulation mechanisms. Similarly, the semantics of the IOAM-Data-
	Fields,
        IOAM-Data-Fields can, but do not have to to, be associated to cross
        different layers.  For example, a node which that inserts node-id
        information into two different layers could use "node-id=10" for one
        layer and "node-id=1000" for the second layer.</t>
        <t><xref target="IOAM-layering"/> target="IOAM-layering" format="default"/> shows an example of
        IOAM layering. Layering.  The figure shows a Geneve tunnel carried over IPv6 IPv6,
        which starts at node A and ends at node D. IOAM information is
        encapsulated in IPv6 as well as in Geneve. At the IPv6 layer, node A
        is the IOAM encapsulating node (into IPv6), node D is the IOAM
        decapsulating node node, and node nodes B and
        node C are IOAM transit nodes. At the
        Geneve layer, node A is the IOAM encapsulating node (into Geneve) Geneve), and
        node D is the IOAM decapsulating node (from Geneve). The use of IOAM
        at both layers layers, as shown in the example
        here here, could be used to reveal
        which nodes of an underlay (here the IPv6 network) are traversed by a
        tunneled packet in an overlay (here the Geneve network) - -- which
        assumes that the IOAM information encapsulated by nodes A and D into
        Geneve and IPv6 is associated to each other.</t>

        <figure align="center" anchor="IOAM-layering"
                title="IOAM layering example"> anchor="IOAM-layering">
          <name>IOAM Layering Example</name>
          <artwork align="left"><![CDATA[ align="left" name="" type="" alt=""><![CDATA[
         +---+----+                                   +---+----+
User     |Geneve  |                                   |Geneve  |
packets  |Encapsu-|                                   |Decapsu-|
-------->|lating  |==================================>|lating  |-->
         |  Node  |                                   |  Node  |
         |   A    |                                   |   D    |
         +--------+                                   +--------+
             ^                                            ^
             |                                            |
             v                                            v
         +--------+     +--------+     +--------+     +--------+
         |IPv6    |     | IPv6   |     | IPv6   |     |IPv6    |
         |Encapsu-|     | Transit|     | Transit|     |Decapsu-|
         |lating  |====>|  Node  |====>|  Node  |====>|lating  |
         |  Node  |     |        |     |        |     |  Node  |
         |   A    |     |   B    |     |   C    |     |   D    |
         +--------+     +--------+     +--------+     +--------+
]]></artwork>
        </figure>

      </section>
      <section anchor="IOAM-trace-options" title="IOAM numbered="true" toc="default">
        <name>IOAM Trace Option Types"> Option-Types</name>
        <t>IOAM offers two different IOAM Option-Types for tracing:
        "Incremental" Trace-Option-Type Trace Option-Type and "Pre-allocated" Trace-Option-Type. Trace Option-Type.
        "Incremental" refers to a mode of operation where the packet is
        expanded at every IOAM node that adds IOAM-Data-Fields.
        "Pre-Allocated"
        "Pre-allocated" describes a mode of operation where the IOAM
        encapsulating node allocates room for all IOAM-Data-Fields in the
        entire IOAM domain. IOAM-Domain. More specifically:</t>

        <t><list style="hanging">
            <t hangText="Pre-allocated Trace-Option:">This
        <dl newline="false" spacing="normal">
          <dt>Pre-allocated Trace Option:</dt>
          <dd>This trace option is defined as a container of node data fields
          with pre-allocated space for each node to populate its
          information. This option is useful for implementations where it is
          efficient to allocate the space once and index into the array to
          populate the data during transit (e.g., software forwarders often
          fall into this
            class).</t>

            <t hangText="Incremental Trace-Option:">This class).</dd>
          <dt>Incremental Trace Option:</dt>
          <dd>This trace option is defined as a container of node data fields
          where each node allocates and pushes its node data immediately
          following the option header.</t>
        </list>

	Which header.</dd>
        </dl>
        <t>Which IOAM Trace-Option-Types Trace Option-Types can be supported is not only a
        function of operator-defined configuration, configuration but may also be limited by
        protocol constraints unique to a given encapsulating protocol.

	For encapsulating protocols which that support both IOAM Trace-Option-Types, Trace Option-Types,
	the operator decides decides, by means of configuration configuration, which
	Trace-Option-Type(s)
	Trace Option-Type(s) will be used for a particular domain.  In this
	case, deployments can mix devices which that include either the Incremental Trace-Option-Type
	Trace Option-Type or the Pre-allocated Trace-Option-Type.
        If for example Trace Option-Type.  For
	example, if different types of packet forwarders and associated
	different types of IOAM implementations exist in a deployment and the
	encapsulating protocol supports both IOAM Trace-Option-Types, Trace Option-Types, a
	deployment can mix devices which that include either the Incremental Trace-Option-Type
	Trace Option-Type or the Pre-allocated Trace-Option-Type. Trace Option-Type.  As a
	result, both Option-Types can be present in a packet. IOAM
	decapsulating nodes remove both types of Trace-Option-Types Trace Option-Types from the
	packet.</t>
        <t>The two different Option-Types cater to different packet forwarding packet-forwarding
        infrastructures and are to allow an optimized implementation of IOAM
        tracing:<list style="hanging">
            <t hangText="Pre-allocated Trace-Option:">For
        tracing:</t>
        <dl newline="false" spacing="normal">
          <dt>Pre-allocated Trace Option:</dt>
          <dd>For some implementations of packet forwarders forwarders, it is efficient
          to allocate the space for the maximum number of nodes that IOAM
          Trace Data-Fields should be collected from and insert/update
          information in the packet at flexible locations, locations based on a pointer
          retrieved from a field in the packet. The IOAM encapsulating node
          allocates an array of the size of the maximum number of nodes that
          IOAM Trace Data-Fields should be collected from. IOAM transit nodes
          index into the array to populate the data during transit. Software
          forwarders often fall into this class of packet forwarder packet-forwarder
          implementations. The maximum number of nodes that IOAM information
          could be collected from is configured by the operator on the IOAM
          encapsulating node.  The operator has to ensure that the packet with
          the pre-allocated array that carries the IOAM Data-Fields does not
          exceed the MTU of any of the links in the IOAM domain.</t>

            <t hangText="Incremental Trace-Option:">Looking IOAM-Domain.</dd>
          <dt>Incremental Trace Option:</dt>
          <dd>Looking up a pointer contained in the packet and
          inserting/updating information at a flexible location in the packet
          as a result of the pointer lookup is costly for some forwarding
          infrastructures. Hardware-based
            packet forwarding packet-forwarding infrastructures
          often fall into this category.  Consequently, hardware-based packet
          forwarders could choose to support the incremental IOAM-Trace-Option-Type. IOAM Incremental Trace
          Option-Type. The incremental
            IOAM-Trace-Option-Type IOAM Incremental Trace Option-Type eliminates the
          need for the IOAM transit nodes to read the full array in the Trace-Option-Type Trace
          Option-Type and allows packets to grow to the size of the MTU of the IOAM domain.
          IOAM-Domain. IOAM transit nodes will expand the packet and insert
          the IOAM-Data-Fields as long as there is space available in the
          packet, i.e. i.e., as long as the size of the packet stays within the
          bounds of the MTU of the links in the IOAM domain. IOAM-Domain. There is no need
          for the operator to configure the IOAM encapsulation node with the
          maximum number of nodes that IOAM information could be collected
          from. The operator has to ensure that the minimum MTU of the links
          in the IOAM domain IOAM-Domain is known to all IOAM transit
            nodes.</t>
          </list></t> nodes.</dd>
        </dl>
      </section>
      <section title="Traffic-sets that numbered="true" toc="default">
        <name>Traffic-Sets That IOAM Is Applied To"> To</name>
        <t>IOAM can be deployed on all or only on subsets of the live user
        traffic, e.g., per interface, based on an access control list or flow
        specification defining a specific set of traffic, etc.</t>
      </section>
      <section title="IOAM Loopback Mode"> numbered="true" toc="default">
        <name>Loopback Flag</name>
        <t>IOAM Loopback is used to trigger each transit device along the path
        of a packet to send a copy of the data packet back to the source.
        Loopback allows an IOAM encapsulating node to trace the path to a
        given destination, destination and to receive per-hop data about both the forward
        and the return path. Loopback is enabled by the encapsulating node
        setting the loopback Loopback flag. Looped-back packets use the source address
        of the original packet as a destination address and the address of the
        node which that performs the loopback Loopback operation as source address. Nodes
        which
        that loop back a packet clear the loopback Loopback flag before sending the
        copy back towards the source. Loopack applies to IOAM deployments
        where the encapsulating node is either a host or the start of a
        tunnel:
        tunnel. For details on IOAM loopback, Loopback, please refer to <xref
        target="RFC9322"/>.</t>
        target="RFC9322" format="default"/>.</t>
      </section>
      <section title="IOAM Active Mode"> numbered="true" toc="default">
        <name>Active Flag</name>
        <t>The IOAM active mode Active flag indicates that a packet is an active OAM
        packet as opposed to regular user data traffic. Active mode flag is
        expected to be used for active measurement using IOAM.  For details on IOAM active mode,
        the Active flag, please refer to <xref
        target="RFC9322"/>.</t> target="RFC9322"
        format="default"/>.</t>
        <t>Example use-cases use cases for IOAM the Active Mode include:<list style="symbols">
            <t>Endpoint flag include:</t>
        <dl spacing="normal" newline="false">
          <dt>Endpoint detailed active measurement: Synthetic measurement:</dt>
	  <dd>Synthetic probe packets are sent between the source and
	  destination.  These probe packets include a Trace Option-Type (i.e.,
	  either incremental or pre-allocated). Since the probe packets are
	  sent between the endpoints, these packets are treated as data
	  packets by the IOAM domain, IOAM-Domain and do not require special treatment at
	  the IOAM layer. The source, which is also the IOAM encapsulating node
	  node, can choose to set the Active flag, providing an explicit
	  indication that these probe packets are meant for telemetry collection.</t>

            <t>IOAM
	  collection.</dd>
          <dt>IOAM active measurement using probe packets: Probe packets:</dt>
	  <dd>Probe packets are generated and transmitted by an IOAM
	  encapsulating node towards a destination which that is also the IOAM
	  decapsulating node.  Probe packets include a Trace Option-Type
	  (i.e., either incremental or pre-allocated) which that has its Active
	  flag set.</t>

            <t>IOAM set.</dd>
          <dt>IOAM active measurement using replicated data packets: Probe packets:</dt>
	  <dd>Probe packets are created by an IOAM encapsulating node by
	  selecting some or all of the en route data packets and replicating
	  them. A selected data packet that is replicated, replicated and its (possibly
	  truncated) copy
            is are forwarded with one or more IOAM option, options, while
	  the original packet is forwarded forwarded, normally, without IOAM options. To
	  the extent possible, the original data packet and its replica are
	  forwarded through the same path. The replica includes a Trace
	  Option-Type that has its Active flag set, indicating that the IOAM
	  decapsulating node should terminate it. In this case case, the IOAM Active
	  flag ensures that the replicated traffic is not forwarded beyond the
            IOAM domain.</t>
          </list></t>
	  IOAM-Domain.</dd>
        </dl>
      </section>
      <section anchor="ioam-brown-field"
               title="Brown numbered="true" toc="default">
        <name>Brown Field Deployments: IOAM Unaware Nodes"> IOAM-Unaware Nodes</name>
        <t>A network can consist of a mix of IOAM aware IOAM-aware and IOAM unaware IOAM-unaware
        nodes. The encapsulation of IOAM-Data-Fields into different protocols
        (see also <xref target="ioam-encap"/>) target="ioam-encap" format="default"/>) are defined
        such that data packets that include IOAM-Data-Fields do not get
        dropped by IOAM
        unaware IOAM-unaware nodes. For example, packets which that contain the
        IOAM-Trace-Option-Types
        IOAM Trace Option-Types in IPv6 Hop by Hop Hop-by-Hop extension headers are
        defined with bits to indicate "00 - skip over this option and continue
        processing the header". This will ensure that when a an IOAM-unaware
        node that is IOAM
        unaware receives a packet with IOAM-Data-Fields included, it does not
        drop the packet.</t>
        <t>Deployments which that leverage the IOAM-Trace-Option-Type(s) IOAM Trace Option-Type(s) could
        benefit from the ability to detect the presence of IOAM unaware IOAM-unaware nodes,
        i.e.
        i.e., nodes which that forward the packet but do not update/add update or add
        IOAM-Data-Fields in IOAM-Trace-Option-Type(s). IOAM Trace Option-Types. The node data that is
        defined as part of the IOAM-Trace-Option-Type(s) IOAM Trace Option-Type(s) includes a Hop_Lim
        field associated to the node identifier to detect missed nodes, i.e. i.e.,
        "holes" in the trace. Monitoring/Analytics system(s) systems could utilize
        this information to account for the presence of IOAM unaware IOAM-unaware nodes in
        the network.</t>
      </section>
    </section>
    <section title="IOAM Manageability"> numbered="true" toc="default">
      <name>IOAM Manageability</name>
      <t>The YANG model for configuring IOAM in network nodes which that support
      IOAM is defined in <xref target="I-D.zhou-ippm-ioam-yang"/>.</t> target="I-D.ietf-ippm-ioam-yang"
      format="default"/>.</t>
      <t>A deployment can leverage IOAM profiles to limit the scope of IOAM
      features, allowing simpler implementation, verification, and
      interoperability testing in the context of specific use cases that do
      not require the full functionality of IOAM. An IOAM profile defines a
      use case or a set of use cases for IOAM, IOAM and an associated set of rules
      that restrict the scope and features of the IOAM specification, thereby
      limiting it to a subset of the full functionality. IOAM profiles are
      defined in <xref target="I-D.mizrahi-ippm-ioam-profile"/>.</t> target="I-D.mizrahi-ippm-ioam-profile"
      format="default"/>.</t>
      <t>For deployments where the IOAM capabilities of a node are unknown,
      <xref target="I-D.ietf-ippm-ioam-conf-state"/> target="RFC9359" format="default"/> could be used to discover the
      enabled IOAM capabilities of nodes. </t>
    </section>
    <section anchor="IANA" title="IANA Considerations"> numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>This document does not request any has no IANA actions.</t>
    </section>
    <section anchor="Security" title="Security Considerations"> numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>As discussed in <xref target="RFC7276"/>, target="RFC7276" format="default"/>, a
      successful attack on an OAM protocol in general, and specifically general and, specifically, on IOAM,
      IOAM can prevent the detection of failures or anomalies, anomalies or can create a
      false illusion of nonexistent ones.</t>
      <t>The Proof of Transit Option-Type (<xref
      target="IOAM-proof-of-transit"/>)
      target="IOAM-proof-of-transit" format="default"/>) is used for verifying
      the path of data packets. The security considerations of POT are further
      discussed in <xref target="I-D.ietf-sfc-proof-of-transit"/>.</t> target="I-D.ietf-sfc-proof-of-transit"
      format="default"/>.</t>
      <t>Security considerations related to the use of IOAM flags, in
      particular
      particularly the loopback flag Loopback flag, are found in <xref
      target="RFC9322"/>.</t> target="RFC9322"
      format="default"/>.</t>
      <t>IOAM data can be subject to eavesdropping. Although the
      confidentiality of the user data is not at risk in this context, the
      IOAM data elements can be used for network reconnaissance, allowing
      attackers to collect information about network paths, performance, queue
      states, buffer occupancy occupancy, and other information.  Recon is an improbable
      security threat in an IOAM deployment that is within a confined physical
      domain. However, in deployments that are not confined to a single LAN, LAN
      but span multiple interconnected sites (for example, using an overlay
      network), the inter-site links are expected to be secured (e.g., by
      IPsec) in order to avoid external eavesdropping and introduction of
      malicious or false data.  Another possible mitigation approach is to use the "direct exporting"
      mode
      "Direct Exporting" <xref target="RFC9326"/>. target="RFC9326" format="default"/>.
      In this case case, the IOAM related IOAM-related trace information would not be available
      in the customer data packets, packets but would trigger the exporting of (secured)
      packet-related IOAM information at every node.  IOAM data export and
      securing IOAM data export is outside the scope of this document.</t>
      <t>IOAM can be used as a means for implementing Denial of Service (DoS)
      attacks, or for amplifying them. Denial-of-Service (DoS) attacks. For example, a malicious attacker can add an IOAM
      header to packets or modify an IOAM header in en route packets in order
      to consume the resources of network devices that take part in IOAM or
      collectors that analyze the IOAM data. Another example is a packet length packet-length attack, in which an attacker pushes headers associated with IOAM
      Option-Types into data packets, causing these packets to be increased
      beyond the MTU size, resulting in fragmentation or in packet drops.
      Such DoS attacks can be mitigated by deploying IOAM in confined
      administrative domains, domains and by limiting the rate and/or the percentage of
      packets that an IOAM encapsulating node adds IOAM information to, to as well
      as limiting rate and/or percentage of packets that an IOAM transit or an
      IOAM decapsulating node creates to export IOAM information extracted
      from the data packets that carry IOAM information.</t>
      <t>Even though IOAM focused on limited domains <xref target="RFC8799"/>, target="RFC8799"
      format="default"/>, there might be deployments for which it is important
      for IOAM transit nodes and IOAM decapsulating nodes to know that the
      data received hadn't haven't been tampered with.  In those cases, the IOAM data
      should be integrity protected.  Integrity protection of IOAM data fields
      is described in <xref target="I-D.ietf-ippm-ioam-data-integrity"/>. target="I-D.ietf-ippm-ioam-data-integrity"
      format="default"/>.  In addition, since IOAM options may include
      timestamps, if network devices use synchronization protocols protocols, then any
      attack on the time protocol <xref target="RFC7384"/> target="RFC7384" format="default"/>
      can compromise the integrity of the timestamp-related data
      fields. Synchronization attacks can be mitigated by combining a secured
      time distribution scheme, e.g., <xref target="RFC8915"/>, target="RFC8915"
      format="default"/>, and by using redundant clock sources <xref target="RFC5905"/>
      target="RFC5905" format="default"/> and/or redundant network paths for
      the time distribution protocol <xref target="RFC8039"/>. target="RFC8039"
      format="default"/>.
      </t>
      <t>At the management plane, attacks may be implemented by misconfiguring
      or by maliciously configuring IOAM-enabled nodes in a way that enables
      other attacks. Thus, IOAM configuration should be secured in a way that
      authenticates authorized users and verifies the integrity of
      configuration procedures.</t>
      <t>Notably, IOAM is expected to be deployed in limited network domains (<xref target="RFC8799"/>),
      thus
      <xref target="RFC8799" format="default"/>, thus, confining the potential
      attack vectors to within the limited domain. Indeed, in order to limit the
      scope of threats to within the current network domain domain, the network operator
      is expected to enforce policies that prevent IOAM traffic from leaking
      outside the IOAM
      domain, IOAM-Domain and prevent an attacker from introducing
      malicious or false IOAM data to be processed and used within the IOAM domain.
      IOAM-Domain.  IOAM data leakage could lead to privacy issues. Consider
      an IOAM encapsulating node that is a home gateway in an operator's
      network. A home gateway is often identified with an individual,
      and revealing
      individual. Revealing IOAM data data, such as "IOAM node identifier" or
      geolocation information outside of the limited domain domain, could be harmful
      for that user.  Note that the Direct Export mode Exporting <xref target="RFC9326"/>
      target="RFC9326" format="default"/> can mitigate the potential threat of
      IOAM data leaking through data packets.</t>
    </section>

    <section title="Acknowledgements">
      <t>The authors would like to thank Tal Mizrahi, Eric Vyncke, Nalini
      Elkins, Srihari Raghavan, Ranganathan T S, Barak Gafni, Karthik Babu
      Harichandra Babu, Akshaya Nadahalli, LJ Wobker, Erik Nordmark, Vengada
      Prasad Govindan, Andrew Yourtchenko, Aviv Kfir, Tianran Zhou, Zhenbin
      (Robin), Joe Clarke, Al Morton, Tom Herbet, Haoyu song, and Mickey
      Spiegel for the comments and advice on IOAM.</t>
    </section>
  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
    <!-- References split into informative and normative -->

    <!-- There are 2 ways to insert reference entries from the citation libraries:
     1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
     2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
        (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

     Both are cited textually in the same manner: by using xref elements.
     If you use the PI option, xml2rfc will, by default, try to find included files in the same
     directory as the including file. You can also define the XML_LIBRARY environment variable
     with a value containing a set of directories to search.  These can be either in the local
     filing system or remote ones accessed by http (http://domain/dir/... ).-->

      <!--  &RFC5905; -->

      <!--

<displayreference target="I-D.ietf-nvo3-vxlan-gpe" to="VXLAN-GPE"/>
<displayreference target="I-D.ietf-ippm-ioam-yang" to="IOAM-YANG"/>
<displayreference target="I-D.mizrahi-ippm-ioam-profile" to="IOAM-PROFILES"/>
<displayreference target="I-D.spiegel-ippm-ioam-rawexport" to="IOAM-RAWEXPORT"/>
<displayreference target="I-D.ietf-sfc-proof-of-transit" to="PROOF-OF-TRANSIT"/>
<displayreference target="I-D.ietf-ippm-ioam-ipv6-options" to="IOAM-IPV6-OPTIONS"/>
<displayreference target="I-D.ietf-ippm-ioam-data-integrity" to="IOAM-DATA-INTEGRITY"/>
<displayreference target="I-D.weis-ippm-ioam-eth" to="IOAM-ETH"/>
<displayreference target="I-D.ietf-sfc-ioam-nsh" to="IOAM-NSH"/>
<displayreference target="I-D.xzlnp-bier-ioam" to="BIER-IOAM"/>
<displayreference target="I-D.brockners-ippm-ioam-geneve" to="IOAM-GENEVE"/>
<displayreference target="I-D.gandhi-mpls-ioam" to="MPLS-IOAM"/>
<displayreference target="I-D.ali-spring-ioam-srv6" to="IOAM-SRV6"/>
<displayreference target="I-D.brockners-ippm-ioam-vxlan-gpe" to="IOAM-VXLAN-GPE"/>

    <references>
      <name>Informative References</name>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7665.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7799.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7384.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7276.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8300.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8915.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5905.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8039.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8799.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9197.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9322.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9326.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8279.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8926.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2784.xml"/>

<reference anchor="POSIX"
                 target="https://standards.ieee.org/findstds/standard/1003.1-2008.html"> anchor="I-D.ietf-nvo3-vxlan-gpe" target="https://datatracker.ietf.org/doc/html/draft-ietf-nvo3-vxlan-gpe-12">
<front>
          <title>IEEE Std 1003.1-2008 (Revision of IEEE Std 1003.1-2004) -
          IEEE Standard
<title>Generic Protocol Extension for Information Technology - Portable Operating System
          Interface (POSIX(R))</title>

          <author>
            <organization>Institute of Electrical and Electronics
            Engineers</organization> VXLAN (VXLAN-GPE)</title>
<author initials="F." surname="Maino" fullname="Fabio Maino" role="editor">
<organization>Cisco Systems</organization>
</author>
<author initials="L." surname="Kreeger" fullname="Larry Kreeger" role="editor">
<organization>Arrcus</organization>
</author>
<author initials="U." surname="Elzur" fullname="Uri Elzur" role="editor">
<organization>Intel</organization>
</author>
<date year="2008"/> month="September" day="22" year="2021"/>
</front>
<seriesInfo name="" value="IEEE Std 1003.1-2008"/> name="Internet-Draft" value="draft-ietf-nvo3-vxlan-gpe-12"/>
</reference>

<reference anchor="IEEE1588v2"
                 target="http://standards.ieee.org/findstds/standard/1588-2008.html"> anchor="I-D.ietf-ippm-ioam-yang" target="https://datatracker.ietf.org/doc/html/draft-ietf-ippm-ioam-yang-06">
<front>
          <title>IEEE Std 1588-2008 - IEEE Standard
<title>A YANG Data Model for a Precision Clock
          Synchronization In-Situ OAM</title>
<author initials="T." surname="Zhou" fullname="Tianran Zhou" role="editor">
<organization>Huawei</organization>
</author>
<author initials="J." surname="Guichard" fullname="Jim Guichard">
<organization>Futurewei</organization>
</author>
<author initials="F." surname="Brockners" fullname="Frank Brockners">
<organization>Cisco Systems</organization>
</author>
<author initials="S." surname="Raghavan" fullname="Srihari Raghavan">
<organization>Cisco Systems</organization>
</author>
<date month="February" day="27" year="2023"/>
</front>
<seriesInfo name="Internet-Draft" value="draft-ietf-ippm-ioam-yang-06"/>
</reference>

<reference anchor="I-D.mizrahi-ippm-ioam-profile" target="https://datatracker.ietf.org/doc/html/draft-mizrahi-ippm-ioam-profile-06">
<front>
<title>In Situ OAM Profiles</title>
<author initials="T." surname="Mizrahi" fullname="Tal Mizrahi">
<organization>Huawei</organization>
</author>
<author initials="F." surname="Brockners" fullname="Frank Brockners">
<organization>Cisco</organization>
</author>
<author initials="S." surname="Bhandari" fullname="Shwetha Bhandari" role="editor">
<organization>Thoughtspot</organization>
</author>
<author initials="R." surname="Sivakolundu" fullname="Ramesh Sivakolundu">
<organization>Cisco</organization>
</author>
<author initials="C." surname="Pignataro" fullname="Carlos Pignataro">
<organization>Cisco</organization>
</author>
<author initials="A." surname="Kfir" fullname="Aviv Kfir">
<organization>Nvidia</organization>
</author>
<author initials="B." surname="Gafni" fullname="Barak Gafni">
<organization>Nvidia</organization>
</author>
<author initials="M." surname="Spiegel" fullname="Mickey Spiegel">
<organization>Barefoot Networks</organization>
</author>
<author initials="T." surname="Zhou" fullname="Tianran Zhou">
<organization>Huawei</organization>
</author>
<date month="February" day="17" year="2022"/>
</front>
<seriesInfo name="Internet-Draft" value="draft-mizrahi-ippm-ioam-profile-06"/>
</reference>

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

<reference anchor="I-D.ietf-sfc-proof-of-transit" target="https://datatracker.ietf.org/doc/html/draft-ietf-sfc-proof-of-transit-08">
<front>
<title>Proof of Transit</title>
<author initials="F." surname="Brockners" fullname="Frank Brockners" role="editor">
<organization>Cisco Systems, Inc.</organization>
</author>
<author initials="S." surname="Bhandari" fullname="Shwetha Bhandari" role="editor">
<organization>Thoughtspot</organization>
</author>
<author initials="T." surname="Mizrahi" fullname="Tal Mizrahi" role="editor">
<organization>Huawei Network.IO Innovation Lab</organization>
</author>
<author initials="S." surname="Dara" fullname="Sashank Dara">
<organization>Seconize</organization>
</author>
<author initials="S." surname="Youell" fullname="Stephen Youell">
<organization>JP Morgan Chase</organization>
</author>
<date month="October" day="31" year="2020"/>
</front>
<seriesInfo name="Internet-Draft" value="draft-ietf-sfc-proof-of-transit-08"/>
</reference>

<reference anchor="I-D.ietf-ippm-ioam-ipv6-options" target="https://datatracker.ietf.org/doc/html/draft-ietf-ippm-ioam-ipv6-options-10">
<front>
<title>In-situ OAM IPv6 Options</title>
<author initials="S." surname="Bhandari" fullname="Shwetha Bhandari" role="editor">
<organization>Thoughtspot</organization>
</author>
<author initials="F." surname="Brockners" fullname="Frank Brockners" role="editor">
<organization>Cisco Systems, Inc.</organization>
</author>
<date month="February" day="28" year="2023"/>
</front>
<seriesInfo name="Internet-Draft" value="draft-ietf-ippm-ioam-ipv6-options-10"/>
</reference>

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

<reference anchor="I-D.weis-ippm-ioam-eth" target="https://datatracker.ietf.org/doc/html/draft-weis-ippm-ioam-eth-05">
<front>
<title>
EtherType Protocol for Networked Measurement and Control
          Systems</title>

          <author>
            <organization>Institute Identification of Electrical and Electronics
            Engineers</organization> In-situ OAM Data
</title>
<author initials="B." surname="Weis" fullname="Brian Weis" role="editor">
<organization>Independent</organization>
</author>
<author initials="F." surname="Brockners" fullname="Frank Brockners" role="editor">
<organization>Cisco Systems, Inc.</organization>
</author>
<author initials="C." surname="Hill" fullname="Craig Hill">
<organization>Cisco Systems, Inc.</organization>
</author>
<author initials="S." surname="Bhandari" fullname="Shwetha Bhandari">
<organization>Thoughtspot</organization>
</author>
<author initials="V." surname="Govindan" fullname="Vengada Prasad Govindan">
<organization>Cisco Systems, Inc.</organization>
</author>
<author initials="C." surname="Pignataro" fullname="Carlos Pignataro" role="editor">
<organization>Cisco Systems, Inc.</organization>
</author>
<author initials="N." surname="Nainar" fullname="Nagendra Kumar Nainar" role="editor">
<organization>Cisco Systems, Inc.</organization>
</author>
<author initials="H." surname="Gredler" fullname="Hannes Gredler">
<organization>RtBrick Inc.</organization>
</author>
<author initials="J." surname="Leddy" fullname="John Leddy"> </author>
<author initials="S." surname="Youell" fullname="Stephen Youell">
<organization>JP Morgan Chase</organization>
</author>
<author initials="T." surname="Mizrahi" fullname="Tal Mizrahi">
<organization>Huawei Network.IO Innovation Lab</organization>
</author>
<author initials="A." surname="Kfir" fullname="Aviv Kfir">
<organization>Nvidia</organization>
</author>
<author initials="B." surname="Gafni" fullname="Barak Gafni">
<organization>Nvidia</organization>
</author>
<author initials="P." surname="Lapukhov" fullname="Petr Lapukhov">
<organization>Facebook</organization>
</author>
<author initials="M." surname="Spiegel" fullname="Mickey Spiegel">
<organization>Barefoot Networks, an Intel company</organization>
</author>
<date year="2008"/> month="February" day="21" year="2022"/>
</front>
<seriesInfo name="" value="IEEE Std 1588-2008"/> name="Internet-Draft" value="draft-weis-ippm-ioam-eth-05"/>
</reference>

<reference anchor="I-D.ietf-sfc-ioam-nsh" target="https://datatracker.ietf.org/doc/html/draft-ietf-sfc-ioam-nsh-11">
<front>
<title>
Network Service Header (NSH) Encapsulation for In-situ OAM (IOAM) Data
</title>
<author initials="F." surname="Brockners" fullname="Frank Brockners" role="editor">
<organization>Cisco Systems, Inc.</organization>
</author>
<author initials="S." surname="Bhandari" fullname="Shwetha Bhandari" role="editor">
<organization>Thoughtspot</organization>
</author>
<date month="September" day="30" year="2022"/>
</front>
<seriesInfo name="Internet-Draft" value="draft-ietf-sfc-ioam-nsh-11"/>
</reference>

<reference anchor="I-D.xzlnp-bier-ioam" target="https://datatracker.ietf.org/doc/html/draft-xzlnp-bier-ioam-05">
<front>
<title>BIER Encapsulation for IOAM Data</title>
<author initials="X." surname="Min" fullname="Xiao Min">
<organization>ZTE Corp.</organization>
</author>
<author initials="Z." surname="Zhang" fullname="Zheng Zhang">
<organization>ZTE Corp.</organization>
</author>
<author initials="Y." surname="Liu" fullname="Yisong Liu">
<organization>China Mobile</organization>
</author>
<author initials="N." surname="Nainar" fullname="Nagendra Nainar">
<organization>Cisco Systems, Inc.</organization>
</author>
<author initials="C." surname="Pignataro" fullname="Carlos Pignataro">
<organization>Cisco Systems, Inc.</organization>
</author>
<date month="January" day="27" year="2023"/>
</front>
<seriesInfo name="Internet-Draft" value="draft-xzlnp-bier-ioam-05"/>
</reference>

<reference anchor="I-D.brockners-ippm-ioam-geneve" target="https://datatracker.ietf.org/doc/html/draft-brockners-ippm-ioam-geneve-05">
<front>
<title>Geneve encapsulation for In-situ OAM Data</title>
<author initials="F." surname="Brockners" fullname="Frank Brockners" role="editor">
<organization>Cisco</organization>
</author>
<author initials="S." surname="Bhandari" fullname="Shwetha Bhandari">
<organization>Thoughtspot</organization>
</author>
<author initials="V." surname="Govindan" fullname="Vengada Prasad Govindan">
<organization>Cisco</organization>
</author>
<author initials="C." surname="Pignataro" fullname="Carlos Pignataro" role="editor">
<organization>Cisco</organization>
</author>
<author initials="N." surname="Nainar" fullname="Nagendra Nainar" role="editor">
<organization>Cisco</organization>
</author>
<author initials="H." surname="Gredler" fullname="Hannes Gredler">
<organization>RtBrick Inc.</organization>
</author>
<author initials="J." surname="Leddy" fullname="John Leddy"> </author>
<author initials="S." surname="Youell" fullname="Stephen Youell">
<organization>JMPC</organization>
</author>
<author initials="T." surname="Mizrahi" fullname="Tal Mizrahi">
<organization>Huawei Network.IO Innovation Lab</organization>
</author>
<author initials="P." surname="Lapukhov" fullname="Petr Lapukhov">
<organization>Facebook</organization>
</author>
<author initials="B." surname="Gafni" fullname="Barak Gafni">
<organization>Mellanox Technologies</organization>
</author>
<author initials="A." surname="Kfir" fullname="Aviv Kfir">
<organization>Mellanox Technologies</organization>
</author>
<author initials="M." surname="Spiegel" fullname="Mickey Spiegel">
<organization>Barefoot Networks</organization>
</author>
<date month="November" day="19" year="2020"/>
</front>
<seriesInfo name="Internet-Draft" value="draft-brockners-ippm-ioam-geneve-05"/>
</reference>

<reference anchor="I-D.gandhi-mpls-ioam" target="https://datatracker.ietf.org/doc/html/draft-gandhi-mpls-ioam-10">
<front>
<title>MPLS Data Plane Encapsulation for In Situ OAM Data</title>
<author initials="R." surname="Gandhi" fullname="Rakesh Gandhi" role="editor">
<organization>Cisco Systems, Inc.</organization>
</author>
<author initials="F." surname="Brockners" fullname="Frank Brockners">
<organization>Cisco Systems, Inc.</organization>
</author>
<author initials="B." surname="Wen" fullname="Bin Wen">
<organization>Comcast</organization>
</author>
<author initials="B." surname="Decraene" fullname="Bruno Decraene">
<organization>Orange</organization>
</author>
<author initials="H." surname="Song" fullname="Haoyu Song">
<organization>Futurewei Technologies</organization>
</author>
<date month="March" day="10" year="2023"/>
</front>
<seriesInfo name="Internet-Draft" value="draft-gandhi-mpls-ioam-10"/>
</reference>

<reference anchor="I-D.ali-spring-ioam-srv6" target="https://datatracker.ietf.org/doc/html/draft-ali-spring-ioam-srv6-06">
<front>
<title>
Segment Routing Header encapsulation for In-situ OAM Data
</title>
<author initials="Z." surname="Ali" fullname="Zafar Ali">
<organization>Cisco Systems</organization>
</author>
<author initials="R." surname="Gandhi" fullname="Rakesh Gandhi">
<organization>Cisco Systems</organization>
</author>
<author initials="C." surname="Filsfils" fullname="Clarence Filsfils">
<organization>Cisco Systems</organization>
</author>
<author initials="F." surname="Brockners" fullname="Frank Brockners">
<organization>Cisco Systems</organization>
</author>
<author initials="N." surname="Nainar" fullname="Nagendra Nainar">
<organization>Cisco Systems</organization>
</author>
<author initials="C." surname="Pignataro" fullname="Carlos Pignataro">
<organization>Cisco Systems</organization>
</author>
<author initials="C." surname="Li" fullname="Cheng Li">
<organization>Huawei</organization>
</author>
<author initials="M." surname="Chen" fullname="Mach Chen">
<organization>Huawei</organization>
</author>
<author initials="G." surname="Dawra" fullname="Gaurav Dawra">
<organization>LinkedIn</organization>
</author>
<date month="July" day="10" year="2022"/>
</front>
<seriesInfo name="Internet-Draft" value="draft-ali-spring-ioam-srv6-06"/>
</reference>

<reference anchor="I-D.brockners-ippm-ioam-vxlan-gpe"
target="https://datatracker.ietf.org/doc/html/draft-brockners-ippm-ioam-vxlan-gpe-03">
<front>
<title>VXLAN-GPE Encapsulation for In-situ OAM Data
</title>
<author initials="F." surname="Brockners" fullname="F. Brockners">
<organization></organization>
</author>
<author initials="S." surname="Bhandari" fullname="S. Bhandari">
<organization></organization>
</author>
<author initials="V." surname="Govindan" fullname="V. Govindan">
<organization></organization>
</author>
<author initials="C." surname="Pignataro" fullname="C. Pignataro">
<organization>Cisco</organization>
</author>
<author initials="H." surname="Gredler" fullname="H. Gredler">
<organization>RtBrick Inc.</organization>
</author>
<author initials="J." surname="Leddy" fullname="J. Leddy">
<organization></organization>
</author>
<author initials="S." surname="Youell" fullname="S. Youell">
<organization>JMPC</organization>
</author>
<author initials="T." surname="Mizrahi" fullname="T. Mizrahi">
<organization>Huawei Network.IO Innovation Lab</organization>
</author>
<author initials="A." surname="Kfir" fullname="A. Kfir">
<organization></organization>
</author>
<author initials="B." surname="Gafni" fullname="B. Gafni">
<organization>Mellanox Technologies, Inc.</organization>
</author>
<author initials="P." surname="Lapukhov" fullname="P. Lapukhov">
<organization>Facebook</organization>
</author>
<author initials="M." surname="Spiegel" fullname="M. Spiegel">
<organization></organization>
</author>
<date month="November" day="4" year="2019"/>
</front>
<seriesInfo name="Internet-Draft" value="draft-brockners-ipxpm-ioam-vxlan-gpe-03"/>
</reference>

-->

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

      &RFC7799;

      &RFC7384;

      &RFC7276;

      &RFC8300;

	  &RFC8915;

	  &RFC5905;

	  &RFC8039;

	  &RFC8799;

	  &RFC9197;

	  &RFC9322;

	  &RFC9326;

	  &RFC8279;

	  &RFC8926;

	  &RFC2784;

      &I-D.ietf-nvo3-vxlan-gpe;

      &I-D.zhou-ippm-ioam-yang;

      &I-D.mizrahi-ippm-ioam-profile;

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

      &I-D.ietf-sfc-proof-of-transit;

      &I-D.ietf-ippm-ioam-ipv6-options;

      &I-D.ietf-ippm-ioam-conf-state;

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

      &I-D.weis-ippm-ioam-eth;

      &I-D.ietf-sfc-ioam-nsh;

      &I-D.xzlnp-bier-ioam;

      &I-D.brockners-ippm-ioam-geneve;

      &I-D.gandhi-spring-ioam-sr-mpls;

      &I-D.ali-spring-ioam-srv6;

      &I-D.brockners-ippm-ioam-vxlan-gpe;

    </references>

    <section numbered="false" toc="default">
      <name>Acknowledgements</name>
      <t>The authors would like to thank <contact fullname="Tal Mizrahi"/>,
      <contact fullname="Eric Vyncke"/>, <contact fullname="Nalini Elkins"/>,
      <contact fullname="Srihari Raghavan"/>, <contact fullname="Ranganathan T
      S"/>, <contact fullname="Barak Gafni"/>, <contact fullname="Karthik Babu
      Harichandra Babu"/>, <contact fullname="Akshaya Nadahalli"/>, <contact
      fullname="LJ Wobker"/>, <contact fullname="Erik Nordmark"/>, <contact
      fullname="Vengada Prasad Govindan"/>, <contact fullname="Andrew
      Yourtchenko"/>, <contact fullname="Aviv Kfir"/>, <contact
      fullname="Tianran Zhou"/>, <contact fullname="Zhenbin (Robin)"/>,
      <contact fullname="Joe Clarke"/>, <contact fullname="Al Morton"/>,
      <contact fullname="Tom Herbet"/>, <contact fullname="Haoyu Song"/>, and
      <contact fullname="Mickey Spiegel"/> for the comments and advice on
      IOAM.</t>
    </section>

  </back>
  </rfc>