<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="info" consensus="true" docName="draft-ietf-ippm-ioam-deployment-05" indexInclude="true" ipr="trust200902" number="9378" prepTime="2023-04-26T21:27:13" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="4" tocInclude="true" xml:lang="en">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-ippm-ioam-deployment-05" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9378" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="IOAM Deployment">In Situ Operations, Administration, and Maintenance (IOAM) Deployment</title>
    <seriesInfo name="RFC" value="9378" stream="IETF"/>
    <author fullname="Frank Brockners" initials="F." surname="Brockners" role="editor">
      <organization abbrev="Cisco" showOnFrontPage="true">Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street>Hansaallee 249, 3rd Floor</street>
          <city>DUESSELDORF</city>
          <code>40549</code>
          <country>Germany</country>
        </postal>
        <email>fbrockne@cisco.com</email>
      </address>
    </author>
    <author fullname="Shwetha Bhandari" initials="S." surname="Bhandari" role="editor">
      <organization abbrev="Thoughtspot" showOnFrontPage="true">Thoughtspot</organization>
      <address>
        <postal>
          <extaddr>3rd Floor, Indiqube Orion</extaddr>
          <extaddr>Garden Layout, HSR 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="" showOnFrontPage="true">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="" showOnFrontPage="true">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 month="04" year="2023"/>
    <area>tsv</area>
    <workgroup>ippm</workgroup>
    <keyword>Telemetry</keyword>
    <keyword>Tracing</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">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>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This document is not an Internet Standards Track specification; it is
            published for informational purposes.  
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by the
            Internet Engineering Steering Group (IESG).  Not all documents
            approved by the IESG are candidates for any level of Internet
            Standard; see Section 2 of RFC 7841. 
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9378" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2023 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-conventions">Conventions</xref></t>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ioam-deployment-domains-and">IOAM Deployment: Domains and Nodes</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-types-of-ioam">Types of IOAM</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2">
              <li pn="section-toc.1-1.4.2.1">
                <t indent="0" pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-per-hop-tracing-ioam">Per-Hop Tracing IOAM</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.2">
                <t indent="0" pn="section-toc.1-1.4.2.2.1"><xref derivedContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-proof-of-transit-ioam">Proof of Transit IOAM</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.3">
                <t indent="0" pn="section-toc.1-1.4.2.3.1"><xref derivedContent="4.3" format="counter" sectionFormat="of" target="section-4.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-e2e-ioam">E2E IOAM</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.4">
                <t indent="0" pn="section-toc.1-1.4.2.4.1"><xref derivedContent="4.4" format="counter" sectionFormat="of" target="section-4.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-direct-export-ioam">Direct Export IOAM</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ioam-encapsulations">IOAM Encapsulations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2">
              <li pn="section-toc.1-1.5.2.1">
                <t indent="0" pn="section-toc.1-1.5.2.1.1"><xref derivedContent="5.1" format="counter" sectionFormat="of" target="section-5.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ipv6">IPv6</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.2">
                <t indent="0" pn="section-toc.1-1.5.2.2.1"><xref derivedContent="5.2" format="counter" sectionFormat="of" target="section-5.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-nsh">NSH</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.3">
                <t indent="0" pn="section-toc.1-1.5.2.3.1"><xref derivedContent="5.3" format="counter" sectionFormat="of" target="section-5.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bier">BIER</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.4">
                <t indent="0" pn="section-toc.1-1.5.2.4.1"><xref derivedContent="5.4" format="counter" sectionFormat="of" target="section-5.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-gre">GRE</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.5">
                <t indent="0" pn="section-toc.1-1.5.2.5.1"><xref derivedContent="5.5" format="counter" sectionFormat="of" target="section-5.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-geneve">Geneve</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.6">
                <t indent="0" pn="section-toc.1-1.5.2.6.1"><xref derivedContent="5.6" format="counter" sectionFormat="of" target="section-5.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-segment-routing">Segment Routing</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.7">
                <t indent="0" pn="section-toc.1-1.5.2.7.1"><xref derivedContent="5.7" format="counter" sectionFormat="of" target="section-5.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-segment-routing-for-ipv6">Segment Routing for IPv6</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.8">
                <t indent="0" pn="section-toc.1-1.5.2.8.1"><xref derivedContent="5.8" format="counter" sectionFormat="of" target="section-5.8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-vxlan-gpe">VXLAN-GPE</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ioam-data-export">IOAM Data Export</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ioam-deployment-considerati">IOAM Deployment Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2">
              <li pn="section-toc.1-1.7.2.1">
                <t indent="0" pn="section-toc.1-1.7.2.1.1"><xref derivedContent="7.1" format="counter" sectionFormat="of" target="section-7.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ioam-namespaces">IOAM-Namespaces</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.2">
                <t indent="0" pn="section-toc.1-1.7.2.2.1"><xref derivedContent="7.2" format="counter" sectionFormat="of" target="section-7.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ioam-layering">IOAM Layering</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.3">
                <t indent="0" pn="section-toc.1-1.7.2.3.1"><xref derivedContent="7.3" format="counter" sectionFormat="of" target="section-7.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ioam-trace-option-types">IOAM Trace Option-Types</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.4">
                <t indent="0" pn="section-toc.1-1.7.2.4.1"><xref derivedContent="7.4" format="counter" sectionFormat="of" target="section-7.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-traffic-sets-that-ioam-is-a">Traffic-Sets That IOAM Is Applied To</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.5">
                <t indent="0" pn="section-toc.1-1.7.2.5.1"><xref derivedContent="7.5" format="counter" sectionFormat="of" target="section-7.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-loopback-flag">Loopback Flag</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.6">
                <t indent="0" pn="section-toc.1-1.7.2.6.1"><xref derivedContent="7.6" format="counter" sectionFormat="of" target="section-7.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-active-flag">Active Flag</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.7">
                <t indent="0" pn="section-toc.1-1.7.2.7.1"><xref derivedContent="7.7" format="counter" sectionFormat="of" target="section-7.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-brown-field-deployments-ioa">Brown Field Deployments: IOAM-Unaware Nodes</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ioam-manageability">IOAM Manageability</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="11" format="counter" sectionFormat="of" target="section-11"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
          </li>
          <li pn="section-toc.1-1.12">
            <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
          </li>
          <li pn="section-toc.1-1.13">
            <t indent="0" pn="section-toc.1-1.13.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section toc="include" numbered="true" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">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" refers to the fact that
      the OAM data is added to the data packets rather than being sent within
      packets specifically dedicated to OAM. IOAM complements mechanisms such
      as Ping, Traceroute, or other active probing mechanisms.  In terms of
      "active" or "passive" OAM, IOAM can be considered a hybrid OAM type. In
      situ mechanisms do not require extra packets to be sent. IOAM adds
      information to the already available data packets and, therefore, cannot
      be considered passive. In terms of the classification given in <xref target="RFC7799" format="default" sectionFormat="of" derivedContent="RFC7799"/>, IOAM could be portrayed as Hybrid
      Type I. IOAM mechanisms can be leveraged where mechanisms using, e.g.,
      ICMP do not apply or do not offer the desired results. These situations
      could include:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-1-2">
        <li pn="section-1-2.1">proving that a certain traffic flow takes a predefined
	    path,</li>
        <li pn="section-1-2.2">verifying the Service Level Agreement (SLA) verification for
	    the live data traffic,</li>
        <li pn="section-1-2.3">providing detailed statistics on traffic distribution paths in
	    networks that distribute traffic across multiple paths, or</li>
        <li pn="section-1-2.4">providing scenarios in which probe traffic is potentially
	    handled differently from regular data traffic by the network
	    devices.</li>
      </ul>
    </section>
    <section anchor="Conventions" numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-conventions">Conventions</name>
      <t indent="0" pn="section-2-1">Abbreviations used in this document:</t>
      <dl newline="false" spacing="normal" indent="11" pn="section-2-2">
        <dt pn="section-2-2.1">BIER:</dt>
        <dd pn="section-2-2.2">Bit Index Explicit Replication
	  <xref target="RFC8279" format="default" sectionFormat="of" derivedContent="RFC8279"/></dd>
        <dt pn="section-2-2.3">Geneve:</dt>
        <dd pn="section-2-2.4">Generic Network Virtualization Encapsulation
          <xref target="RFC8926" format="default" sectionFormat="of" derivedContent="RFC8926"/></dd>
        <dt pn="section-2-2.5">GRE:</dt>
        <dd pn="section-2-2.6">Generic Routing Encapsulation
          <xref target="RFC2784" format="default" sectionFormat="of" derivedContent="RFC2784"/></dd>
        <dt pn="section-2-2.7">IOAM:</dt>
        <dd pn="section-2-2.8">In situ Operations, Administration, and
          Maintenance</dd>
        <dt pn="section-2-2.9">MTU:</dt>
        <dd pn="section-2-2.10">Maximum Transmission Unit</dd>
        <dt pn="section-2-2.11">NSH:</dt>
        <dd pn="section-2-2.12">Network Service Header <xref target="RFC8300" format="default" sectionFormat="of" derivedContent="RFC8300"/></dd>
        <dt pn="section-2-2.13">OAM:</dt>
        <dd pn="section-2-2.14">Operations, Administration, and Maintenance</dd>
        <dt pn="section-2-2.15">POT:</dt>
        <dd pn="section-2-2.16">Proof of Transit</dd>
        <dt pn="section-2-2.17">VXLAN-GPE:</dt>
        <dd pn="section-2-2.18">Virtual eXtensible Local Area Network -
          Generic Protocol Extension <xref target="I-D.ietf-nvo3-vxlan-gpe" format="default" sectionFormat="of" derivedContent="VXLAN-GPE"/></dd>
      </dl>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-ioam-deployment-domains-and">IOAM Deployment: Domains and Nodes</name>
      <t indent="0" pn="section-3-1"><xref target="RFC9197" format="default" sectionFormat="of" derivedContent="RFC9197"/> 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" sectionFormat="of" derivedContent="RFC9197"/> for further details.</t>
      <t indent="0" pn="section-3-2">IOAM is focused on "limited domains", as defined in <xref target="RFC8799" format="default" sectionFormat="of" derivedContent="RFC8799"/>.  IOAM is not targeted for a
      deployment on the global Internet. The part of the network that employs
      IOAM is referred to as the "IOAM-Domain". For example, an 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 is defined by its
      perimeter or edge. The operator of an IOAM-Domain is expected to put
      provisions in place to ensure that packets that contain IOAM data fields
      do not leak beyond the edge of an IOAM-Domain, e.g., using packet
      filtering methods. The operator should consider the potential
      operational impact of IOAM 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), and ICMP
      message handling.</t>
      <t indent="0" pn="section-3-3">An IOAM-Domain consists of "IOAM encapsulating nodes", "IOAM
      decapsulating 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 indent="0" pn="section-3-4">An IOAM encapsulating node incorporates one or more
      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 indent="0" pn="section-3-5">An IOAM transit 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" format="default" sectionFormat="of" derivedContent="Section 6"/>)
      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 to
      a packet and does not change the IOAM-Data-Fields of an IOAM
      Edge-to-Edge (E2E) Option-Type.
      </t>
      <t indent="0" pn="section-3-6">An IOAM decapsulating node removes any IOAM Option-Types from
      packets.</t>
      <t indent="0" pn="section-3-7">The role of an IOAM encapsulating, IOAM transit, or IOAM decapsulating
      node is always performed within a specific IOAM-Namespace. This means
      that an IOAM node that is, e.g., an IOAM decapsulating node for
      IOAM-Namespace "A" but not for IOAM-Namespace "B" will only remove the
      IOAM Option-Types for IOAM-Namespace "A" from the packet. An IOAM
      decapsulating node situated at the edge of an IOAM-Domain removes all
      IOAM Option-Types and associated encapsulation headers for all
      IOAM-Namespaces from the packet.</t>
      <t indent="0" pn="section-3-8">IOAM-Namespaces allow for a namespace-specific definition and
      interpretation of IOAM-Data-Fields. Please refer to <xref target="ioam_namespaces" format="default" sectionFormat="of" derivedContent="Section 7.1"/> for a discussion of IOAM-Namespaces.</t>
      <figure anchor="IOAM-roles" align="left" suppress-title="false" pn="figure-1">
        <name slugifiedName="name-roles-of-ioam-nodes">Roles of IOAM Nodes</name>
        <artwork align="left" name="" type="" alt="" pn="section-3-9.1">
         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-|
--------&gt;|lating  |====&gt;| Node   |====&gt;| Node   |====&gt;|lating  |--&gt;
         |Node    |     | A      |     | B      |     |Node    |
         +--------+     +--------+     +--------+     +--------+
</artwork>
      </figure>
      <t indent="0" pn="section-3-10">IOAM nodes that add or remove the IOAM-Data-Fields can also update
      the IOAM-Data-Fields at the same time. 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 needs
      to be an IOAM transit node. For example, a deployment might require that
      packets traverse a set of firewalls that support IOAM. In that case,
      only the set of firewall nodes would be IOAM transit nodes rather than
      all nodes.</t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-types-of-ioam">Types of IOAM</name>
      <t indent="0" pn="section-4-1">IOAM supports different modes of 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 that
      collect or update data, and if and how nodes export IOAM
      information. </t>
      <dl spacing="normal" newline="false" indent="3" pn="section-4-2">
        <dt pn="section-4-2.1">Per-hop tracing:</dt>
        <dd pn="section-4-2.2">
          <t indent="0" pn="section-4-2.2.1">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. Potential uses of IOAM
          per-hop tracing include:</t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4-2.2.2">
            <li pn="section-4-2.2.2.1">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, such as
            Equal Cost Multi-Path (ECMP).  This information could be used to
            tune the algorithm for ECMP for optimized network resource
            usage.</li>
            <li pn="section-4-2.2.2.2">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.</li>
          </ul>
        </dd>
        <dt pn="section-4-2.3">Proof of Transit:</dt>
        <dd pn="section-4-2.4">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. For example, Proof of Transit
	could 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)
	or whether a packet indeed took the expected path.</dd>
        <dt pn="section-4-2.5">Edge-to-Edge (E2E):</dt>
        <dd pn="section-4-2.6">OAM information that is specific to the edges of an IOAM-Domain
	is collected and stored within the user data packet.  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.</dd>
        <dt pn="section-4-2.7">Direct Export:</dt>
        <dd pn="section-4-2.8">OAM information about each IOAM node a packet traverses is
	collected and immediately exported to a collector.  Direct 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 requires a collector to correlate the
	information from the individual nodes. In addition, all nodes enabled
	for Direct Export need to be capable of exporting the IOAM information
	to the collector.</dd>
      </dl>
      <section anchor="IOAM-tracing" numbered="true" toc="include" removeInRFC="false" pn="section-4.1">
        <name slugifiedName="name-per-hop-tracing-ioam">Per-Hop Tracing IOAM</name>
        <t indent="0" pn="section-4.1-1">"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. In other words,
        in a typical deployment, all nodes in an IOAM-Domain would participate
        in IOAM 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 that are IOAM capable. Nodes 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 are assumed to be known.</t>
        <t indent="0" pn="section-4.1-2">IOAM offers two different Trace Option-Types: the "Incremental"
        Trace Option-Type and the "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" format="default" sectionFormat="of" derivedContent="Section 7.3"/>.</t>
        <t indent="0" pn="section-4.1-3">Every node data entry holds information for a particular IOAM
        transit node that is traversed by a packet. The IOAM decapsulating
        node removes 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 indent="0" pn="section-4.1-4">IOAM tracing can, for example, collect the following 
	types of information:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4.1-5">
          <li pn="section-4.1-5.1">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. </li>
          <li pn="section-4.1-5.2">Identification of the interface that a packet was received on,
            i.e., ingress interface.</li>
          <li pn="section-4.1-5.3">Identification of the interface that a packet was sent out on,
            i.e., egress interface.</li>
          <li pn="section-4.1-5.4">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 IOAM-Domain follow the same definition.</li>
          <li pn="section-4.1-5.5">Generic data, which is format-free information, where the syntax
          and semantics of the information 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.</li>
          <li pn="section-4.1-5.6">Information to detect whether IOAM trace data was added at
            every hop or whether certain hops in the domain weren't IOAM
            transit nodes.</li>
          <li pn="section-4.1-5.7">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).</li>
        </ul>
        <t indent="0" pn="section-4.1-6">The Incremental Trace Option-Type and Pre-allocated Trace
        Option-Type are defined in <xref target="RFC9197" format="default" sectionFormat="of" derivedContent="RFC9197"/>.</t>
      </section>
      <section anchor="IOAM-proof-of-transit" numbered="true" toc="include" removeInRFC="false" pn="section-4.2">
        <name slugifiedName="name-proof-of-transit-ioam">Proof of Transit IOAM</name>
        <t indent="0" pn="section-4.2-1">The IOAM Proof of Transit Option-Type is to support path or service
        function chain <xref target="RFC7665" format="default" sectionFormat="of" derivedContent="RFC7665"/> verification
        use cases.  Proof of transit could use methods like nested hashing or
        nested encryption of the IOAM data.</t>
        <t indent="0" pn="section-4.2-2">The IOAM Proof of Transit Option-Type consists of a fixed-size
        "IOAM Proof of Transit Option header" and "IOAM Proof of Transit
        Option data fields". For details, see <xref target="RFC9197" format="default" sectionFormat="of" derivedContent="RFC9197"/>.</t>
      </section>
      <section anchor="IOAM-edge-to-edge" numbered="true" toc="include" removeInRFC="false" pn="section-4.3">
        <name slugifiedName="name-e2e-ioam">E2E IOAM</name>
        <t indent="0" pn="section-4.3-1">The IOAM 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 indent="0" pn="section-4.3-2">The IOAM E2E Option-Type consists of a fixed-size "IOAM
        Edge-to-Edge Option-Type header" and "IOAM Edge-to-Edge Option-Type
        data fields". For details, see <xref target="RFC9197" format="default" sectionFormat="of" derivedContent="RFC9197"/>.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-4.4">
        <name slugifiedName="name-direct-export-ioam">Direct Export IOAM</name>
        <t indent="0" pn="section-4.4-1">Direct Export is an IOAM mode of operation within which IOAM data
        are to be directly exported to a collector rather than be collected
        within the data packets. The IOAM Direct Export Option-Type consists of
        a fixed-size "IOAM direct export option header". Direct Export for
        IOAM is defined in <xref target="RFC9326" format="default" sectionFormat="of" derivedContent="RFC9326"/>.</t>
      </section>
    </section>
    <section anchor="ioam-encap" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-ioam-encapsulations">IOAM Encapsulations</name>
      <t indent="0" pn="section-5-1">IOAM data fields and associated data types for IOAM are
      defined in <xref target="RFC9197" format="default" sectionFormat="of" derivedContent="RFC9197"/>. The IOAM
      data field can be transported by a variety of transport protocols,
      including NSH, Segment Routing, Geneve, BIER, IPv6, etc.</t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-5.1">
        <name slugifiedName="name-ipv6">IPv6</name>
        <t indent="0" pn="section-5.1-1">IOAM encapsulation for IPv6 is defined in <xref target="I-D.ietf-ippm-ioam-ipv6-options" format="default" sectionFormat="of" derivedContent="IOAM-IPV6-OPTIONS"/>, which
        also discusses IOAM deployment considerations for IPv6 networks.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-5.2">
        <name slugifiedName="name-nsh">NSH</name>
        <t indent="0" pn="section-5.2-1">IOAM encapsulation for NSH is defined in <xref target="I-D.ietf-sfc-ioam-nsh" format="default" sectionFormat="of" derivedContent="IOAM-NSH"/>.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-5.3">
        <name slugifiedName="name-bier">BIER</name>
        <t indent="0" pn="section-5.3-1">IOAM encapsulation for BIER is defined in <xref target="I-D.xzlnp-bier-ioam" format="default" sectionFormat="of" derivedContent="BIER-IOAM"/>.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-5.4">
        <name slugifiedName="name-gre">GRE</name>
        <t indent="0" pn="section-5.4-1">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" format="default" sectionFormat="of" derivedContent="IOAM-ETH"/>.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-5.5">
        <name slugifiedName="name-geneve">Geneve</name>
        <t indent="0" pn="section-5.5-1">IOAM encapsulation for Geneve is defined in <xref target="I-D.brockners-ippm-ioam-geneve" format="default" sectionFormat="of" derivedContent="IOAM-GENEVE"/>.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-5.6">
        <name slugifiedName="name-segment-routing">Segment Routing</name>
        <t indent="0" pn="section-5.6-1">IOAM encapsulation for Segment Routing is defined in <xref target="I-D.gandhi-mpls-ioam" format="default" sectionFormat="of" derivedContent="MPLS-IOAM"/>.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-5.7">
        <name slugifiedName="name-segment-routing-for-ipv6">Segment Routing for IPv6</name>
        <t indent="0" pn="section-5.7-1">IOAM encapsulation for Segment Routing over IPv6 is defined in
        <xref target="I-D.ali-spring-ioam-srv6" format="default" sectionFormat="of" derivedContent="IOAM-SRV6"/>.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-5.8">
        <name slugifiedName="name-vxlan-gpe">VXLAN-GPE</name>
        <t indent="0" pn="section-5.8-1">IOAM encapsulation for VXLAN-GPE is defined in <xref target="I-D.brockners-ippm-ioam-vxlan-gpe" format="default" sectionFormat="of" derivedContent="IOAM-VXLAN-GPE"/>.</t>
      </section>
    </section>
    <section anchor="export" numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-ioam-data-export">IOAM Data Export</name>
      <t indent="0" pn="section-6-1">IOAM nodes collect information for packets traversing a domain that
      supports IOAM. IOAM decapsulating nodes, as well as IOAM transit nodes,
      can choose to retrieve IOAM information from the packet, process the
      information further, and export the information using, e.g., IP Flow Information Export (IPFIX).</t>
      <t indent="0" pn="section-6-2">Raw data export of IOAM data using IPFIX is discussed in <xref target="I-D.spiegel-ippm-ioam-rawexport" format="default" sectionFormat="of" derivedContent="IOAM-RAWEXPORT"/>. "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 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 data-plane operation". <xref target="export-arch" format="default" sectionFormat="of" derivedContent="Figure 2"/> shows the separation of concerns for IOAM export.
      Exporting IOAM data is performed by the "IOAM 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 offload interpretation, aggregation, and formatting
      of IOAM data from the node that performs data-plane operations. In other
      words, a node that is focused on data-plane operations, i.e., forwarding
      of packets and handling IOAM data, will not be tasked to also interpret
      the IOAM 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. Similarly, several monitoring systems or analytics systems
      can be used to further process the data received from the IOAM
      preprocessing systems. <xref target="export-arch" format="default" sectionFormat="of" derivedContent="Figure 2"/>
      shows an overview of IOAM export, including IOAM data processing systems
      and monitoring and analytics systems.</t>
      <figure anchor="export-arch" align="left" suppress-title="false" pn="figure-2">
        <name slugifiedName="name-ioam-framework-with-data-ex">IOAM Framework with Data Export</name>
        <artwork align="left" name="" type="" alt="" pn="section-6-3.1">
                              +--------------+
                             +-------------+ |
                             | 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-|
--------&gt;|lating  |====&gt;| Node   |====&gt;| Node   |====&gt;|lating  |--&gt;
         |Node    |     | A      |     | B      |     |Node    |
         +--------+     +--------+     +--------+     +--------+
</artwork>
      </figure>
    </section>
    <section anchor="IOAM-framework" numbered="true" toc="include" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-ioam-deployment-considerati">IOAM Deployment Considerations</name>
      <t indent="0" pn="section-7-1">This section describes several concepts of IOAM and provides
      considerations that need to be taken into account when implementing IOAM
      in a network domain.  This includes concepts like IOAM-Namespaces, IOAM
      Layering, traffic-sets that IOAM is applied to, and IOAM Loopback. For a
      definition of IOAM-Namespaces and IOAM Layering, please refer to <xref target="RFC9197" format="default" sectionFormat="of" derivedContent="RFC9197"/>.  IOAM Loopback is defined in <xref target="RFC9322" format="default" sectionFormat="of" derivedContent="RFC9322"/>.</t>
      <section anchor="ioam_namespaces" numbered="true" toc="include" removeInRFC="false" pn="section-7.1">
        <name slugifiedName="name-ioam-namespaces">IOAM-Namespaces</name>
        <t indent="0" pn="section-7.1-1">IOAM-Namespaces add further context to IOAM Option-Types and
        associated IOAM-Data-Fields. IOAM-Namespaces are defined in <xref target="RFC9197" sectionFormat="of" section="4.3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9197#section-4.3" derivedContent="RFC9197"/>. The Namespace-ID
        is part of the IOAM Option-Type definition. See <xref target="RFC9197" sectionFormat="of" section="4.4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9197#section-4.4" derivedContent="RFC9197"/> for IOAM Trace Option-Types or
        <xref target="RFC9197" sectionFormat="of" section="4.6" format="default" derivedLink="https://rfc-editor.org/rfc/rfc9197#section-4.6" derivedContent="RFC9197"/> for the IOAM
        E2E Option-Type.  IOAM-Namespaces support several uses:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-7.1-2">
          <li pn="section-7.1-2.1">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.</li>
          <li pn="section-7.1-2.2">IOAM-Namespaces provide additional context for 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. 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) that do not have a unit associated are to
          be interpreted within the context of an IOAM-Namespace. The
          Namespace-ID could also be used to distinguish between different
          types of interfaces. An interface-id could, for 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, in another 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.
            </li>
          <li pn="section-7.1-2.3">
            <t indent="0" pn="section-7.1-2.3.1">IOAM-Namespaces can be used to identify different sets of
            devices (e.g., different types of devices) in a 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.</t>
            <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-7.1-2.3.2">
              <li pn="section-7.1-2.3.2.1">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. For example, an operator
              could choose to group the devices of a domain into two
              IOAM-Namespaces in a way 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.</li>
              <li pn="section-7.1-2.3.2.2">Assigning different IOAM Namespace-IDs to different sets of
              nodes or network partitions and using a separate instance of an
              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 in each of the packets in the flow.  For
              example, an operator could choose to group the devices of a
              domain into two IOAM-Namespaces in a way that each
              IOAM-Namespace is represented by one of two 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 with an IOAM-Namespace it doesn't belong to. To
              retrieve a full view of the deployment, the captured
              IOAM-Data-Fields of the two IOAM-Namespaces need to be
              correlated.</li>
            </ul>
          </li>
        </ul>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-7.2">
        <name slugifiedName="name-ioam-layering">IOAM Layering</name>
        <t indent="0" pn="section-7.2-1">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 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, share the same
        IOAM encapsulation mechanisms. Similarly, the semantics of the
        IOAM-Data-Fields can, but do not have to, be associated to cross
        different layers.  For example, a node 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 indent="0" pn="section-7.2-2"><xref target="IOAM-layering" format="default" sectionFormat="of" derivedContent="Figure 3"/> shows an example of
        IOAM Layering.  The figure shows a Geneve tunnel carried over 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, and nodes B and C are IOAM transit nodes. At the
        Geneve layer, node A is the IOAM encapsulating node (into Geneve), and
        node D is the IOAM decapsulating node (from Geneve). The use of IOAM
        at both layers, as shown in the example 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 anchor="IOAM-layering" align="left" suppress-title="false" pn="figure-3">
          <name slugifiedName="name-ioam-layering-example">IOAM Layering Example</name>
          <artwork align="left" name="" type="" alt="" pn="section-7.2-3.1">
         +---+----+                                   +---+----+
User     |Geneve  |                                   |Geneve  |
packets  |Encapsu-|                                   |Decapsu-|
--------&gt;|lating  |==================================&gt;|lating  |--&gt;
         |  Node  |                                   |  Node  |
         |   A    |                                   |   D    |
         +--------+                                   +--------+
             ^                                            ^
             |                                            |
             v                                            v
         +--------+     +--------+     +--------+     +--------+
         |IPv6    |     | IPv6   |     | IPv6   |     |IPv6    |
         |Encapsu-|     | Transit|     | Transit|     |Decapsu-|
         |lating  |====&gt;|  Node  |====&gt;|  Node  |====&gt;|lating  |
         |  Node  |     |        |     |        |     |  Node  |
         |   A    |     |   B    |     |   C    |     |   D    |
         +--------+     +--------+     +--------+     +--------+
</artwork>
        </figure>
      </section>
      <section anchor="IOAM-trace-options" numbered="true" toc="include" removeInRFC="false" pn="section-7.3">
        <name slugifiedName="name-ioam-trace-option-types">IOAM Trace Option-Types</name>
        <t indent="0" pn="section-7.3-1">IOAM offers two different IOAM Option-Types for tracing:
        "Incremental" Trace Option-Type and "Pre-allocated" 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" describes a mode of operation where the IOAM
        encapsulating node allocates room for all IOAM-Data-Fields in the
        entire IOAM-Domain. More specifically:</t>
        <dl newline="false" spacing="normal" indent="3" pn="section-7.3-2">
          <dt pn="section-7.3-2.1">Pre-allocated Trace Option:</dt>
          <dd pn="section-7.3-2.2">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).</dd>
          <dt pn="section-7.3-2.3">Incremental Trace Option:</dt>
          <dd pn="section-7.3-2.4">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.</dd>
        </dl>
        <t indent="0" pn="section-7.3-3">Which IOAM Trace Option-Types can be supported is not only a
        function of operator-defined configuration but may also be limited by
        protocol constraints unique to a given encapsulating protocol.

	For encapsulating protocols that support both IOAM Trace Option-Types,
	the operator decides, by means of configuration, which
	Trace Option-Type(s) will be used for a particular domain.  In this
	case, deployments can mix devices that include either the Incremental
	Trace Option-Type or the Pre-allocated 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, a
	deployment can mix devices that include either the Incremental
	Trace Option-Type or the Pre-allocated 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 from the
	packet.</t>
        <t indent="0" pn="section-7.3-4">The two different Option-Types cater to different packet-forwarding
        infrastructures and allow an optimized implementation of IOAM
        tracing:</t>
        <dl newline="false" spacing="normal" indent="3" pn="section-7.3-5">
          <dt pn="section-7.3-5.1">Pre-allocated Trace Option:</dt>
          <dd pn="section-7.3-5.2">For some implementations of packet 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 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
          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.</dd>
          <dt pn="section-7.3-5.3">Incremental Trace Option:</dt>
          <dd pn="section-7.3-5.4">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 infrastructures
          often fall into this category.  Consequently, hardware-based packet
          forwarders could choose to support the IOAM Incremental Trace
          Option-Type. The IOAM Incremental Trace Option-Type eliminates the
          need for the IOAM transit nodes to read the full array in the Trace
          Option-Type and allows packets to grow to the size of the MTU of the
          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., as long as the size of the packet stays within the
          bounds of the MTU of the links in the 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 is known to all IOAM transit nodes.</dd>
        </dl>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-7.4">
        <name slugifiedName="name-traffic-sets-that-ioam-is-a">Traffic-Sets That IOAM Is Applied To</name>
        <t indent="0" pn="section-7.4-1">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 numbered="true" toc="include" removeInRFC="false" pn="section-7.5">
        <name slugifiedName="name-loopback-flag">Loopback Flag</name>
        <t indent="0" pn="section-7.5-1">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 and to receive per-hop data about both the forward
        and the return path. Loopback is enabled by the encapsulating node
        setting the Loopback flag. Looped-back packets use the source address
        of the original packet as a destination address and the address of the
        node that performs the Loopback operation as source address. Nodes
        that loop back a packet clear the 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. For details on IOAM Loopback, please refer to <xref target="RFC9322" format="default" sectionFormat="of" derivedContent="RFC9322"/>.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-7.6">
        <name slugifiedName="name-active-flag">Active Flag</name>
        <t indent="0" pn="section-7.6-1">The Active flag indicates that a packet is an active OAM
        packet as opposed to regular user data traffic. Active flag is
        expected to be used for active measurement using IOAM.  For details on
        the Active flag, please refer to <xref target="RFC9322" format="default" sectionFormat="of" derivedContent="RFC9322"/>.</t>
        <t indent="0" pn="section-7.6-2">Example use cases for the Active flag include:</t>
        <dl spacing="normal" newline="false" indent="3" pn="section-7.6-3">
          <dt pn="section-7.6-3.1">Endpoint detailed active measurement:</dt>
          <dd pn="section-7.6-3.2">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 and do not require special treatment at
	  the IOAM layer. The source, which is also the IOAM encapsulating
	  node, can choose to set the Active flag, providing an explicit
	  indication that these probe packets are meant for telemetry
	  collection.</dd>
          <dt pn="section-7.6-3.3">IOAM active measurement using probe packets:</dt>
          <dd pn="section-7.6-3.4">Probe packets are generated and transmitted by an IOAM
	  encapsulating node towards a destination that is also the IOAM
	  decapsulating node.  Probe packets include a Trace Option-Type
	  (i.e., either incremental or pre-allocated) that has its Active
	  flag set.</dd>
          <dt pn="section-7.6-3.5">IOAM active measurement using replicated data packets:</dt>
          <dd pn="section-7.6-3.6">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 and its (possibly
	  truncated) copy are forwarded with one or more IOAM options, while
	  the original packet is 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, the IOAM Active
	  flag ensures that the replicated traffic is not forwarded beyond the
	  IOAM-Domain.</dd>
        </dl>
      </section>
      <section anchor="ioam-brown-field" numbered="true" toc="include" removeInRFC="false" pn="section-7.7">
        <name slugifiedName="name-brown-field-deployments-ioa">Brown Field Deployments: IOAM-Unaware Nodes</name>
        <t indent="0" pn="section-7.7-1">A network can consist of a mix of IOAM-aware and IOAM-unaware
        nodes. The encapsulation of IOAM-Data-Fields into different protocols
        (see also <xref target="ioam-encap" format="default" sectionFormat="of" derivedContent="Section 5"/>) are defined
        such that data packets that include IOAM-Data-Fields do not get
        dropped by IOAM-unaware nodes. For example, packets that contain the
        IOAM Trace Option-Types in IPv6 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 an IOAM-unaware
        node receives a packet with IOAM-Data-Fields included, it does not
        drop the packet.</t>
        <t indent="0" pn="section-7.7-2">Deployments that leverage the IOAM Trace Option-Type(s) could
        benefit from the ability to detect the presence of IOAM-unaware nodes,
        i.e., nodes that forward the packet but do not update or add
        IOAM-Data-Fields in IOAM Trace Option-Types. The node data that is
        defined as part of the IOAM Trace Option-Type(s) includes a Hop_Lim
        field associated to the node identifier to detect missed nodes, i.e.,
        "holes" in the trace. Monitoring/Analytics systems could utilize
        this information to account for the presence of IOAM-unaware nodes in
        the network.</t>
      </section>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-8">
      <name slugifiedName="name-ioam-manageability">IOAM Manageability</name>
      <t indent="0" pn="section-8-1">The YANG model for configuring IOAM in network nodes that support
      IOAM is defined in <xref target="I-D.ietf-ippm-ioam-yang" format="default" sectionFormat="of" derivedContent="IOAM-YANG"/>.</t>
      <t indent="0" pn="section-8-2">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 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" format="default" sectionFormat="of" derivedContent="IOAM-PROFILES"/>.</t>
      <t indent="0" pn="section-8-3">For deployments where the IOAM capabilities of a node are unknown,
      <xref target="RFC9359" format="default" sectionFormat="of" derivedContent="RFC9359"/> could be used to discover the
      enabled IOAM capabilities of nodes. </t>
    </section>
    <section anchor="IANA" numbered="true" toc="include" removeInRFC="false" pn="section-9">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-9-1">This document has no IANA actions.</t>
    </section>
    <section anchor="Security" numbered="true" toc="include" removeInRFC="false" pn="section-10">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-10-1">As discussed in <xref target="RFC7276" format="default" sectionFormat="of" derivedContent="RFC7276"/>, a
      successful attack on an OAM protocol in general and, specifically, on
      IOAM can prevent the detection of failures or anomalies or can create a
      false illusion of nonexistent ones.</t>
      <t indent="0" pn="section-10-2">The Proof of Transit Option-Type (<xref target="IOAM-proof-of-transit" format="default" sectionFormat="of" derivedContent="Section 4.2"/>) 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" format="default" sectionFormat="of" derivedContent="PROOF-OF-TRANSIT"/>.</t>
      <t indent="0" pn="section-10-3">Security considerations related to the use of IOAM flags,
      particularly the Loopback flag, are found in <xref target="RFC9322" format="default" sectionFormat="of" derivedContent="RFC9322"/>.</t>
      <t indent="0" pn="section-10-4">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, 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
      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
      "Direct Exporting" <xref target="RFC9326" format="default" sectionFormat="of" derivedContent="RFC9326"/>.
      In this case, the IOAM-related trace information would not be available
      in the customer data 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 indent="0" pn="section-10-5">IOAM can be used as a means for implementing or amplifying 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 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 and by limiting the rate and/or the percentage of
      packets that an IOAM encapsulating node adds IOAM information 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 indent="0" pn="section-10-6">Even though IOAM focused on limited domains <xref target="RFC8799" format="default" sectionFormat="of" derivedContent="RFC8799"/>, there might be deployments for which it is important
      for IOAM transit nodes and IOAM decapsulating nodes to know that the
      data received 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" format="default" sectionFormat="of" derivedContent="IOAM-DATA-INTEGRITY"/>.  In addition, since IOAM options may include
      timestamps, if network devices use synchronization protocols, then any
      attack on the time protocol <xref target="RFC7384" format="default" sectionFormat="of" derivedContent="RFC7384"/>
      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" format="default" sectionFormat="of" derivedContent="RFC8915"/>, and by using redundant clock sources <xref target="RFC5905" format="default" sectionFormat="of" derivedContent="RFC5905"/> and/or redundant network paths for
      the time distribution protocol <xref target="RFC8039" format="default" sectionFormat="of" derivedContent="RFC8039"/>.
      </t>
      <t indent="0" pn="section-10-7">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 indent="0" pn="section-10-8">Notably, IOAM is expected to be deployed in limited network domains
      <xref target="RFC8799" format="default" sectionFormat="of" derivedContent="RFC8799"/>, thus, confining the potential
      attack vectors within the limited domain. Indeed, in order to limit the
      scope of threats within the current network domain, the network operator
      is expected to enforce policies that prevent IOAM traffic from leaking
      outside the IOAM-Domain and prevent an attacker from introducing
      malicious or false IOAM data to be processed and used within the
      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. Revealing IOAM data, such as "IOAM node identifier" or
      geolocation information outside of the limited domain, could be harmful
      for that user.  Note that Direct Exporting <xref target="RFC9326" format="default" sectionFormat="of" derivedContent="RFC9326"/> can mitigate the potential threat of
      IOAM data leaking through data packets.</t>
    </section>
  </middle>
  <back>
    <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 pn="section-11">
      <name slugifiedName="name-informative-references">Informative References</name>
      <reference anchor="I-D.xzlnp-bier-ioam" target="https://datatracker.ietf.org/doc/html/draft-xzlnp-bier-ioam-05" quoteTitle="true" derivedAnchor="BIER-IOAM">
        <front>
          <title>BIER Encapsulation for IOAM Data</title>
          <author initials="X." surname="Min" fullname="Xiao Min">
            <organization showOnFrontPage="true">ZTE Corp.</organization>
          </author>
          <author initials="Z." surname="Zhang" fullname="Zheng Zhang">
            <organization showOnFrontPage="true">ZTE Corp.</organization>
          </author>
          <author initials="Y." surname="Liu" fullname="Yisong Liu">
            <organization showOnFrontPage="true">China Mobile</organization>
          </author>
          <author initials="N." surname="Nainar" fullname="Nagendra Nainar">
            <organization showOnFrontPage="true">Cisco Systems, Inc.</organization>
          </author>
          <author initials="C." surname="Pignataro" fullname="Carlos Pignataro">
            <organization showOnFrontPage="true">Cisco Systems, Inc.</organization>
          </author>
          <date month="January" day="27" year="2023"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-xzlnp-bier-ioam-05"/>
        <refcontent>Work in Progress</refcontent>
      </reference>
      <reference anchor="I-D.ietf-ippm-ioam-data-integrity" target="https://datatracker.ietf.org/doc/html/draft-ietf-ippm-ioam-data-integrity-03" quoteTitle="true" derivedAnchor="IOAM-DATA-INTEGRITY">
        <front>
          <title>Integrity of In-situ OAM Data Fields</title>
          <author initials="F." surname="Brockners" fullname="Frank Brockners">
            <organization showOnFrontPage="true">Cisco Systems, Inc.</organization>
          </author>
          <author initials="S." surname="Bhandari" fullname="Shwetha Bhandari">
            <organization showOnFrontPage="true">Thoughtspot</organization>
          </author>
          <author initials="T." surname="Mizrahi" fullname="Tal Mizrahi">
            <organization showOnFrontPage="true">Huawei</organization>
          </author>
          <author initials="J." surname="Iurman" fullname="Justin Iurman">
            <organization showOnFrontPage="true">Universite de Liege</organization>
          </author>
          <date month="November" day="24" year="2022"/>
          <abstract>
            <t indent="0">   In-situ Operations, Administration, and Maintenance (IOAM) records
   operational and telemetry information in the packet while the packet
   traverses a path in the network.  IETF protocols require features to
   ensure their security.  This document describes the integrity
   protection of IOAM-Data-Fields.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-ippm-ioam-data-integrity-03"/>
        <refcontent>Work in Progress</refcontent>
      </reference>
      <reference anchor="I-D.weis-ippm-ioam-eth" target="https://datatracker.ietf.org/doc/html/draft-weis-ippm-ioam-eth-05" quoteTitle="true" derivedAnchor="IOAM-ETH">
        <front>
          <title>EtherType Protocol Identification of In-situ OAM Data</title>
          <author initials="B." surname="Weis" fullname="Brian Weis" role="editor">
            <organization showOnFrontPage="true">Independent</organization>
          </author>
          <author initials="F." surname="Brockners" fullname="Frank Brockners" role="editor">
            <organization showOnFrontPage="true">Cisco Systems, Inc.</organization>
          </author>
          <author initials="C." surname="Hill" fullname="Craig Hill">
            <organization showOnFrontPage="true">Cisco Systems, Inc.</organization>
          </author>
          <author initials="S." surname="Bhandari" fullname="Shwetha Bhandari">
            <organization showOnFrontPage="true">Thoughtspot</organization>
          </author>
          <author initials="V." surname="Govindan" fullname="Vengada Prasad Govindan">
            <organization showOnFrontPage="true">Cisco Systems, Inc.</organization>
          </author>
          <author initials="C." surname="Pignataro" fullname="Carlos Pignataro" role="editor">
            <organization showOnFrontPage="true">Cisco Systems, Inc.</organization>
          </author>
          <author initials="N." surname="Nainar" fullname="Nagendra Kumar Nainar" role="editor">
            <organization showOnFrontPage="true">Cisco Systems, Inc.</organization>
          </author>
          <author initials="H." surname="Gredler" fullname="Hannes Gredler">
            <organization showOnFrontPage="true">RtBrick Inc.</organization>
          </author>
          <author initials="J." surname="Leddy" fullname="John Leddy"> </author>
          <author initials="S." surname="Youell" fullname="Stephen Youell">
            <organization showOnFrontPage="true">JP Morgan Chase</organization>
          </author>
          <author initials="T." surname="Mizrahi" fullname="Tal Mizrahi">
            <organization showOnFrontPage="true">Huawei Network.IO Innovation Lab</organization>
          </author>
          <author initials="A." surname="Kfir" fullname="Aviv Kfir">
            <organization showOnFrontPage="true">Nvidia</organization>
          </author>
          <author initials="B." surname="Gafni" fullname="Barak Gafni">
            <organization showOnFrontPage="true">Nvidia</organization>
          </author>
          <author initials="P." surname="Lapukhov" fullname="Petr Lapukhov">
            <organization showOnFrontPage="true">Facebook</organization>
          </author>
          <author initials="M." surname="Spiegel" fullname="Mickey Spiegel">
            <organization showOnFrontPage="true">Barefoot Networks, an Intel company</organization>
          </author>
          <date month="February" day="21" year="2022"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-weis-ippm-ioam-eth-05"/>
        <refcontent>Work in Progress</refcontent>
      </reference>
      <reference anchor="I-D.brockners-ippm-ioam-geneve" target="https://datatracker.ietf.org/doc/html/draft-brockners-ippm-ioam-geneve-05" quoteTitle="true" derivedAnchor="IOAM-GENEVE">
        <front>
          <title>Geneve encapsulation for In-situ OAM Data</title>
          <author initials="F." surname="Brockners" fullname="Frank Brockners" role="editor">
            <organization showOnFrontPage="true">Cisco</organization>
          </author>
          <author initials="S." surname="Bhandari" fullname="Shwetha Bhandari">
            <organization showOnFrontPage="true">Thoughtspot</organization>
          </author>
          <author initials="V." surname="Govindan" fullname="Vengada Prasad Govindan">
            <organization showOnFrontPage="true">Cisco</organization>
          </author>
          <author initials="C." surname="Pignataro" fullname="Carlos Pignataro" role="editor">
            <organization showOnFrontPage="true">Cisco</organization>
          </author>
          <author initials="N." surname="Nainar" fullname="Nagendra Nainar" role="editor">
            <organization showOnFrontPage="true">Cisco</organization>
          </author>
          <author initials="H." surname="Gredler" fullname="Hannes Gredler">
            <organization showOnFrontPage="true">RtBrick Inc.</organization>
          </author>
          <author initials="J." surname="Leddy" fullname="John Leddy"> </author>
          <author initials="S." surname="Youell" fullname="Stephen Youell">
            <organization showOnFrontPage="true">JMPC</organization>
          </author>
          <author initials="T." surname="Mizrahi" fullname="Tal Mizrahi">
            <organization showOnFrontPage="true">Huawei Network.IO Innovation Lab</organization>
          </author>
          <author initials="P." surname="Lapukhov" fullname="Petr Lapukhov">
            <organization showOnFrontPage="true">Facebook</organization>
          </author>
          <author initials="B." surname="Gafni" fullname="Barak Gafni">
            <organization showOnFrontPage="true">Mellanox Technologies</organization>
          </author>
          <author initials="A." surname="Kfir" fullname="Aviv Kfir">
            <organization showOnFrontPage="true">Mellanox Technologies</organization>
          </author>
          <author initials="M." surname="Spiegel" fullname="Mickey Spiegel">
            <organization showOnFrontPage="true">Barefoot Networks</organization>
          </author>
          <date month="November" day="19" year="2020"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-brockners-ippm-ioam-geneve-05"/>
        <refcontent>Work in Progress</refcontent>
      </reference>
      <reference anchor="I-D.ietf-ippm-ioam-ipv6-options" target="https://datatracker.ietf.org/doc/html/draft-ietf-ippm-ioam-ipv6-options-10" quoteTitle="true" derivedAnchor="IOAM-IPV6-OPTIONS">
        <front>
          <title>In-situ OAM IPv6 Options</title>
          <author initials="S." surname="Bhandari" fullname="Shwetha Bhandari" role="editor">
            <organization showOnFrontPage="true">Thoughtspot</organization>
          </author>
          <author initials="F." surname="Brockners" fullname="Frank Brockners" role="editor">
            <organization showOnFrontPage="true">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"/>
        <refcontent>Work in Progress</refcontent>
      </reference>
      <reference anchor="I-D.ietf-sfc-ioam-nsh" target="https://datatracker.ietf.org/doc/html/draft-ietf-sfc-ioam-nsh-11" quoteTitle="true" derivedAnchor="IOAM-NSH">
        <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 showOnFrontPage="true">Cisco Systems, Inc.</organization>
          </author>
          <author initials="S." surname="Bhandari" fullname="Shwetha Bhandari" role="editor">
            <organization showOnFrontPage="true">Thoughtspot</organization>
          </author>
          <date month="September" day="30" year="2022"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-sfc-ioam-nsh-11"/>
        <refcontent>Work in Progress</refcontent>
      </reference>
      <reference anchor="I-D.mizrahi-ippm-ioam-profile" target="https://datatracker.ietf.org/doc/html/draft-mizrahi-ippm-ioam-profile-06" quoteTitle="true" derivedAnchor="IOAM-PROFILES">
        <front>
          <title>In Situ OAM Profiles</title>
          <author initials="T." surname="Mizrahi" fullname="Tal Mizrahi">
            <organization showOnFrontPage="true">Huawei</organization>
          </author>
          <author initials="F." surname="Brockners" fullname="Frank Brockners">
            <organization showOnFrontPage="true">Cisco</organization>
          </author>
          <author initials="S." surname="Bhandari" fullname="Shwetha Bhandari" role="editor">
            <organization showOnFrontPage="true">Thoughtspot</organization>
          </author>
          <author initials="R." surname="Sivakolundu" fullname="Ramesh Sivakolundu">
            <organization showOnFrontPage="true">Cisco</organization>
          </author>
          <author initials="C." surname="Pignataro" fullname="Carlos Pignataro">
            <organization showOnFrontPage="true">Cisco</organization>
          </author>
          <author initials="A." surname="Kfir" fullname="Aviv Kfir">
            <organization showOnFrontPage="true">Nvidia</organization>
          </author>
          <author initials="B." surname="Gafni" fullname="Barak Gafni">
            <organization showOnFrontPage="true">Nvidia</organization>
          </author>
          <author initials="M." surname="Spiegel" fullname="Mickey Spiegel">
            <organization showOnFrontPage="true">Barefoot Networks</organization>
          </author>
          <author initials="T." surname="Zhou" fullname="Tianran Zhou">
            <organization showOnFrontPage="true">Huawei</organization>
          </author>
          <date month="February" day="17" year="2022"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-mizrahi-ippm-ioam-profile-06"/>
        <refcontent>Work in Progress</refcontent>
      </reference>
      <reference anchor="I-D.spiegel-ippm-ioam-rawexport" target="https://datatracker.ietf.org/doc/html/draft-spiegel-ippm-ioam-rawexport-06" quoteTitle="true" derivedAnchor="IOAM-RAWEXPORT">
        <front>
          <title>In-situ OAM raw data export with IPFIX</title>
          <author initials="M." surname="Spiegel" fullname="Mickey Spiegel">
            <organization showOnFrontPage="true">Barefoot Networks, an Intel company</organization>
          </author>
          <author initials="F." surname="Brockners" fullname="Frank Brockners">
            <organization showOnFrontPage="true">Cisco Systems, Inc.</organization>
          </author>
          <author initials="S." surname="Bhandari" fullname="Shwetha Bhandari">
            <organization showOnFrontPage="true">Thoughtspot</organization>
          </author>
          <author initials="R." surname="Sivakolundu" fullname="Ramesh Sivakolundu">
            <organization showOnFrontPage="true">Cisco Systems, Inc.</organization>
          </author>
          <date month="February" day="21" year="2022"/>
          <abstract>
            <t indent="0">   In-situ Operations, Administration, and Maintenance (IOAM) records
   operational and telemetry information in the packet while the packet
   traverses a path between two points in the network.  This document
   discusses how In-situ Operations, Administration, and Maintenance
   (IOAM) information can be exported in raw, i.e. uninterpreted, format
   from network devices to systems, such as monitoring or analytics
   systems using IPFIX.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-spiegel-ippm-ioam-rawexport-06"/>
        <refcontent>Work in Progress</refcontent>
      </reference>
      <reference anchor="I-D.ali-spring-ioam-srv6" target="https://datatracker.ietf.org/doc/html/draft-ali-spring-ioam-srv6-06" quoteTitle="true" derivedAnchor="IOAM-SRV6">
        <front>
          <title>Segment Routing Header encapsulation for In-situ OAM Data</title>
          <author initials="Z." surname="Ali" fullname="Zafar Ali">
            <organization showOnFrontPage="true">Cisco Systems</organization>
          </author>
          <author initials="R." surname="Gandhi" fullname="Rakesh Gandhi">
            <organization showOnFrontPage="true">Cisco Systems</organization>
          </author>
          <author initials="C." surname="Filsfils" fullname="Clarence Filsfils">
            <organization showOnFrontPage="true">Cisco Systems</organization>
          </author>
          <author initials="F." surname="Brockners" fullname="Frank Brockners">
            <organization showOnFrontPage="true">Cisco Systems</organization>
          </author>
          <author initials="N." surname="Nainar" fullname="Nagendra Nainar">
            <organization showOnFrontPage="true">Cisco Systems</organization>
          </author>
          <author initials="C." surname="Pignataro" fullname="Carlos Pignataro">
            <organization showOnFrontPage="true">Cisco Systems</organization>
          </author>
          <author initials="C." surname="Li" fullname="Cheng Li">
            <organization showOnFrontPage="true">Huawei</organization>
          </author>
          <author initials="M." surname="Chen" fullname="Mach Chen">
            <organization showOnFrontPage="true">Huawei</organization>
          </author>
          <author initials="G." surname="Dawra" fullname="Gaurav Dawra">
            <organization showOnFrontPage="true">LinkedIn</organization>
          </author>
          <date month="July" day="10" year="2022"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ali-spring-ioam-srv6-06"/>
        <refcontent>Work in Progress</refcontent>
      </reference>
      <reference anchor="I-D.brockners-ippm-ioam-vxlan-gpe" target="https://datatracker.ietf.org/doc/html/draft-brockners-ippm-ioam-vxlan-gpe-03" quoteTitle="true" derivedAnchor="IOAM-VXLAN-GPE">
        <front>
          <title>VXLAN-GPE Encapsulation for In-situ OAM Data</title>
          <author initials="F." surname="Brockners" fullname="F. Brockners">
            <organization showOnFrontPage="true"/>
          </author>
          <author initials="S." surname="Bhandari" fullname="S. Bhandari">
            <organization showOnFrontPage="true"/>
          </author>
          <author initials="V." surname="Govindan" fullname="V. Govindan">
            <organization showOnFrontPage="true"/>
          </author>
          <author initials="C." surname="Pignataro" fullname="C. Pignataro">
            <organization showOnFrontPage="true">Cisco</organization>
          </author>
          <author initials="H." surname="Gredler" fullname="H. Gredler">
            <organization showOnFrontPage="true">RtBrick Inc.</organization>
          </author>
          <author initials="J." surname="Leddy" fullname="J. Leddy">
            <organization showOnFrontPage="true"/>
          </author>
          <author initials="S." surname="Youell" fullname="S. Youell">
            <organization showOnFrontPage="true">JMPC</organization>
          </author>
          <author initials="T." surname="Mizrahi" fullname="T. Mizrahi">
            <organization showOnFrontPage="true">Huawei Network.IO Innovation Lab</organization>
          </author>
          <author initials="A." surname="Kfir" fullname="A. Kfir">
            <organization showOnFrontPage="true"/>
          </author>
          <author initials="B." surname="Gafni" fullname="B. Gafni">
            <organization showOnFrontPage="true">Mellanox Technologies, Inc.</organization>
          </author>
          <author initials="P." surname="Lapukhov" fullname="P. Lapukhov">
            <organization showOnFrontPage="true">Facebook</organization>
          </author>
          <author initials="M." surname="Spiegel" fullname="M. Spiegel">
            <organization showOnFrontPage="true"/>
          </author>
          <date month="November" day="4" year="2019"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-brockners-ipxpm-ioam-vxlan-gpe-03"/>
        <refcontent>Work in Progress</refcontent>
      </reference>
      <reference anchor="I-D.ietf-ippm-ioam-yang" target="https://datatracker.ietf.org/doc/html/draft-ietf-ippm-ioam-yang-06" quoteTitle="true" derivedAnchor="IOAM-YANG">
        <front>
          <title>A YANG Data Model for In-Situ OAM</title>
          <author initials="T." surname="Zhou" fullname="Tianran Zhou" role="editor">
            <organization showOnFrontPage="true">Huawei</organization>
          </author>
          <author initials="J." surname="Guichard" fullname="Jim Guichard">
            <organization showOnFrontPage="true">Futurewei</organization>
          </author>
          <author initials="F." surname="Brockners" fullname="Frank Brockners">
            <organization showOnFrontPage="true">Cisco Systems</organization>
          </author>
          <author initials="S." surname="Raghavan" fullname="Srihari Raghavan">
            <organization showOnFrontPage="true">Cisco Systems</organization>
          </author>
          <date month="February" day="27" year="2023"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-ippm-ioam-yang-06"/>
        <refcontent>Work in Progress</refcontent>
      </reference>
      <reference anchor="I-D.gandhi-mpls-ioam" target="https://datatracker.ietf.org/doc/html/draft-gandhi-mpls-ioam-10" quoteTitle="true" derivedAnchor="MPLS-IOAM">
        <front>
          <title>MPLS Data Plane Encapsulation for In Situ OAM Data</title>
          <author initials="R." surname="Gandhi" fullname="Rakesh Gandhi" role="editor">
            <organization showOnFrontPage="true">Cisco Systems, Inc.</organization>
          </author>
          <author initials="F." surname="Brockners" fullname="Frank Brockners">
            <organization showOnFrontPage="true">Cisco Systems, Inc.</organization>
          </author>
          <author initials="B." surname="Wen" fullname="Bin Wen">
            <organization showOnFrontPage="true">Comcast</organization>
          </author>
          <author initials="B." surname="Decraene" fullname="Bruno Decraene">
            <organization showOnFrontPage="true">Orange</organization>
          </author>
          <author initials="H." surname="Song" fullname="Haoyu Song">
            <organization showOnFrontPage="true">Futurewei Technologies</organization>
          </author>
          <date month="March" day="10" year="2023"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-gandhi-mpls-ioam-10"/>
        <refcontent>Work in Progress</refcontent>
      </reference>
      <reference anchor="I-D.ietf-sfc-proof-of-transit" target="https://datatracker.ietf.org/doc/html/draft-ietf-sfc-proof-of-transit-08" quoteTitle="true" derivedAnchor="PROOF-OF-TRANSIT">
        <front>
          <title>Proof of Transit</title>
          <author initials="F." surname="Brockners" fullname="Frank Brockners" role="editor">
            <organization showOnFrontPage="true">Cisco Systems, Inc.</organization>
          </author>
          <author initials="S." surname="Bhandari" fullname="Shwetha Bhandari" role="editor">
            <organization showOnFrontPage="true">Thoughtspot</organization>
          </author>
          <author initials="T." surname="Mizrahi" fullname="Tal Mizrahi" role="editor">
            <organization showOnFrontPage="true">Huawei Network.IO Innovation Lab</organization>
          </author>
          <author initials="S." surname="Dara" fullname="Sashank Dara">
            <organization showOnFrontPage="true">Seconize</organization>
          </author>
          <author initials="S." surname="Youell" fullname="Stephen Youell">
            <organization showOnFrontPage="true">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"/>
        <refcontent>Work in Progress</refcontent>
      </reference>
      <reference anchor="RFC2784" target="https://www.rfc-editor.org/info/rfc2784" quoteTitle="true" derivedAnchor="RFC2784">
        <front>
          <title>Generic Routing Encapsulation (GRE)</title>
          <author fullname="D. Farinacci" initials="D." surname="Farinacci"/>
          <author fullname="T. Li" initials="T." surname="Li"/>
          <author fullname="S. Hanks" initials="S." surname="Hanks"/>
          <author fullname="D. Meyer" initials="D." surname="Meyer"/>
          <author fullname="P. Traina" initials="P." surname="Traina"/>
          <date month="March" year="2000"/>
          <abstract>
            <t indent="0">This document specifies a protocol for encapsulation of an arbitrary network layer protocol over another arbitrary network layer protocol. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="2784"/>
        <seriesInfo name="DOI" value="10.17487/RFC2784"/>
      </reference>
      <reference anchor="RFC5905" target="https://www.rfc-editor.org/info/rfc5905" quoteTitle="true" derivedAnchor="RFC5905">
        <front>
          <title>Network Time Protocol Version 4: Protocol and Algorithms Specification</title>
          <author fullname="D. Mills" initials="D." surname="Mills"/>
          <author fullname="J. Martin" initials="J." role="editor" surname="Martin"/>
          <author fullname="J. Burbank" initials="J." surname="Burbank"/>
          <author fullname="W. Kasch" initials="W." surname="Kasch"/>
          <date month="June" year="2010"/>
          <abstract>
            <t indent="0">The Network Time Protocol (NTP) is widely used to synchronize computer clocks in the Internet.  This document describes NTP version 4 (NTPv4), which is backwards compatible with NTP version 3 (NTPv3), described in RFC 1305, as well as previous versions of the protocol.  NTPv4 includes a modified protocol header to accommodate the Internet Protocol version 6 address family.  NTPv4 includes fundamental improvements in the mitigation and discipline algorithms that extend the potential accuracy to the tens of microseconds with modern workstations and fast LANs.  It includes a dynamic server discovery scheme, so that in many cases, specific server configuration is not required.  It corrects certain errors in the NTPv3 design and implementation and includes an optional extension mechanism. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5905"/>
        <seriesInfo name="DOI" value="10.17487/RFC5905"/>
      </reference>
      <reference anchor="RFC7276" target="https://www.rfc-editor.org/info/rfc7276" quoteTitle="true" derivedAnchor="RFC7276">
        <front>
          <title>An Overview of Operations, Administration, and Maintenance (OAM) Tools</title>
          <author fullname="T. Mizrahi" initials="T." surname="Mizrahi"/>
          <author fullname="N. Sprecher" initials="N." surname="Sprecher"/>
          <author fullname="E. Bellagamba" initials="E." surname="Bellagamba"/>
          <author fullname="Y. Weingarten" initials="Y." surname="Weingarten"/>
          <date month="June" year="2014"/>
          <abstract>
            <t indent="0">Operations, Administration, and Maintenance (OAM) is a general term that refers to a toolset for fault detection and isolation, and for performance measurement. Over the years, various OAM tools have been defined for various layers in the protocol stack.</t>
            <t indent="0">This document summarizes some of the OAM tools defined in the IETF in the context of IP unicast, MPLS, MPLS Transport Profile (MPLS-TP), pseudowires, and Transparent Interconnection of Lots of Links (TRILL). This document focuses on tools for detecting and isolating failures in networks and for performance monitoring. Control and management aspects of OAM are outside the scope of this document. Network repair functions such as Fast Reroute (FRR) and protection switching, which are often triggered by OAM protocols, are also out of the scope of this document.</t>
            <t indent="0">The target audience of this document includes network equipment vendors, network operators, and standards development organizations. This document can be used as an index to some of the main OAM tools defined in the IETF. At the end of the document, a list of the OAM toolsets and a list of the OAM functions are presented as a summary.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7276"/>
        <seriesInfo name="DOI" value="10.17487/RFC7276"/>
      </reference>
      <reference anchor="RFC7384" target="https://www.rfc-editor.org/info/rfc7384" quoteTitle="true" derivedAnchor="RFC7384">
        <front>
          <title>Security Requirements of Time Protocols in Packet Switched Networks</title>
          <author fullname="T. Mizrahi" initials="T." surname="Mizrahi"/>
          <date month="October" year="2014"/>
          <abstract>
            <t indent="0">As time and frequency distribution protocols are becoming increasingly common and widely deployed, concern about their exposure to various security threats is increasing.  This document defines a set of security requirements for time protocols, focusing on the Precision Time Protocol (PTP) and the Network Time Protocol (NTP).  This document also discusses the security impacts of time protocol practices, the performance implications of external security practices on time protocols, and the dependencies between other security services and time synchronization.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7384"/>
        <seriesInfo name="DOI" value="10.17487/RFC7384"/>
      </reference>
      <reference anchor="RFC7665" target="https://www.rfc-editor.org/info/rfc7665" quoteTitle="true" derivedAnchor="RFC7665">
        <front>
          <title>Service Function Chaining (SFC) Architecture</title>
          <author fullname="J. Halpern" initials="J." role="editor" surname="Halpern"/>
          <author fullname="C. Pignataro" initials="C." role="editor" surname="Pignataro"/>
          <date month="October" year="2015"/>
          <abstract>
            <t indent="0">This document describes an architecture for the specification, creation, and ongoing maintenance of Service Function Chains (SFCs) in a network.  It includes architectural concepts, principles, and components used in the construction of composite services through deployment of SFCs, with a focus on those to be standardized in the IETF.  This document does not propose solutions, protocols, or extensions to existing protocols.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7665"/>
        <seriesInfo name="DOI" value="10.17487/RFC7665"/>
      </reference>
      <reference anchor="RFC7799" target="https://www.rfc-editor.org/info/rfc7799" quoteTitle="true" derivedAnchor="RFC7799">
        <front>
          <title>Active and Passive Metrics and Methods (with Hybrid Types In-Between)</title>
          <author fullname="A. Morton" initials="A." surname="Morton"/>
          <date month="May" year="2016"/>
          <abstract>
            <t indent="0">This memo provides clear definitions for Active and Passive performance assessment.  The construction of Metrics and Methods can be described as either "Active" or "Passive".  Some methods may use a subset of both Active and Passive attributes, and we refer to these as "Hybrid Methods".  This memo also describes multiple dimensions to help evaluate new methods as they emerge.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7799"/>
        <seriesInfo name="DOI" value="10.17487/RFC7799"/>
      </reference>
      <reference anchor="RFC8039" target="https://www.rfc-editor.org/info/rfc8039" quoteTitle="true" derivedAnchor="RFC8039">
        <front>
          <title>Multipath Time Synchronization</title>
          <author fullname="A. Shpiner" initials="A." surname="Shpiner"/>
          <author fullname="R. Tse" initials="R." surname="Tse"/>
          <author fullname="C. Schelp" initials="C." surname="Schelp"/>
          <author fullname="T. Mizrahi" initials="T." surname="Mizrahi"/>
          <date month="December" year="2016"/>
          <abstract>
            <t indent="0">Clock synchronization protocols are very widely used in IP-based networks.  The Network Time Protocol (NTP) has been commonly deployed for many years, and the last few years have seen an increasingly rapid deployment of the Precision Time Protocol (PTP).  As time-sensitive applications evolve, clock accuracy requirements are becoming increasingly stringent, requiring the time synchronization protocols to provide high accuracy.  This memo describes a multipath approach to PTP and NTP over IP networks, allowing the protocols to run concurrently over multiple communication paths between the master and slave clocks, without modifying these protocols.  The multipath approach can significantly contribute to clock accuracy, security, and fault tolerance.  The multipath approach that is presented in this document enables backward compatibility with nodes that do not support the multipath functionality.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8039"/>
        <seriesInfo name="DOI" value="10.17487/RFC8039"/>
      </reference>
      <reference anchor="RFC8279" target="https://www.rfc-editor.org/info/rfc8279" quoteTitle="true" derivedAnchor="RFC8279">
        <front>
          <title>Multicast Using Bit Index Explicit Replication (BIER)</title>
          <author fullname="IJ. Wijnands" initials="IJ." role="editor" surname="Wijnands"/>
          <author fullname="E. Rosen" initials="E." role="editor" surname="Rosen"/>
          <author fullname="A. Dolganow" initials="A." surname="Dolganow"/>
          <author fullname="T. Przygienda" initials="T." surname="Przygienda"/>
          <author fullname="S. Aldrin" initials="S." surname="Aldrin"/>
          <date month="November" year="2017"/>
          <abstract>
            <t indent="0">This document specifies a new architecture for the forwarding of multicast data packets.  It provides optimal forwarding of multicast packets through a "multicast domain".  However, it does not require a protocol for explicitly building multicast distribution trees, nor does it require intermediate nodes to maintain any per-flow state.  This architecture is known as "Bit Index Explicit Replication" (BIER).  When a multicast data packet enters the domain, the ingress router determines the set of egress routers to which the packet needs to be sent.  The ingress router then encapsulates the packet in a BIER header.  The BIER header contains a bit string in which each bit represents exactly one egress router in the domain; to forward the packet to a given set of egress routers, the bits corresponding to those routers are set in the BIER header.  The procedures for forwarding a packet based on its BIER header are specified in this document.  Elimination of the per-flow state and the explicit tree-building protocols results in a considerable simplification.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8279"/>
        <seriesInfo name="DOI" value="10.17487/RFC8279"/>
      </reference>
      <reference anchor="RFC8300" target="https://www.rfc-editor.org/info/rfc8300" quoteTitle="true" derivedAnchor="RFC8300">
        <front>
          <title>Network Service Header (NSH)</title>
          <author fullname="P. Quinn" initials="P." role="editor" surname="Quinn"/>
          <author fullname="U. Elzur" initials="U." role="editor" surname="Elzur"/>
          <author fullname="C. Pignataro" initials="C." role="editor" surname="Pignataro"/>
          <date month="January" year="2018"/>
          <abstract>
            <t indent="0">This document describes a Network Service Header (NSH) imposed on packets or frames to realize Service Function Paths (SFPs).  The NSH also provides a mechanism for metadata exchange along the instantiated service paths.  The NSH is the Service Function Chaining (SFC) encapsulation required to support the SFC architecture (defined in RFC 7665).</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8300"/>
        <seriesInfo name="DOI" value="10.17487/RFC8300"/>
      </reference>
      <reference anchor="RFC8799" target="https://www.rfc-editor.org/info/rfc8799" quoteTitle="true" derivedAnchor="RFC8799">
        <front>
          <title>Limited Domains and Internet Protocols</title>
          <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
          <author fullname="B. Liu" initials="B." surname="Liu"/>
          <date month="July" year="2020"/>
          <abstract>
            <t indent="0">There is a noticeable trend towards network behaviors and semantics that are specific to a particular set of requirements applied within a limited region of the Internet. Policies, default parameters, the options supported, the style of network management, and security requirements may vary between such limited regions. This document reviews examples of such limited domains (also known as controlled environments), notes emerging solutions, and includes a related taxonomy. It then briefly discusses the standardization of protocols for limited domains. Finally, it shows the need for a precise definition of "limited domain membership" and for mechanisms to allow nodes to join a domain securely and to find other members, including boundary nodes.</t>
            <t indent="0">This document is the product of the research of the authors. It has been produced through discussions and consultation within the IETF but is not the product of IETF consensus.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8799"/>
        <seriesInfo name="DOI" value="10.17487/RFC8799"/>
      </reference>
      <reference anchor="RFC8915" target="https://www.rfc-editor.org/info/rfc8915" quoteTitle="true" derivedAnchor="RFC8915">
        <front>
          <title>Network Time Security for the Network Time Protocol</title>
          <author fullname="D. Franke" initials="D." surname="Franke"/>
          <author fullname="D. Sibold" initials="D." surname="Sibold"/>
          <author fullname="K. Teichel" initials="K." surname="Teichel"/>
          <author fullname="M. Dansarie" initials="M." surname="Dansarie"/>
          <author fullname="R. Sundblad" initials="R." surname="Sundblad"/>
          <date month="September" year="2020"/>
          <abstract>
            <t indent="0">This memo specifies Network Time Security (NTS), a mechanism for using Transport Layer Security (TLS) and Authenticated Encryption with Associated Data (AEAD) to provide cryptographic security for the client-server mode of the Network Time Protocol (NTP).</t>
            <t indent="0">NTS is structured as a suite of two loosely coupled sub-protocols. The first (NTS Key Establishment (NTS-KE)) handles initial authentication and key establishment over TLS. The second (NTS Extension Fields for NTPv4) handles encryption and authentication during NTP time synchronization via extension fields in the NTP packets, and holds all required state only on the client via opaque cookies.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8915"/>
        <seriesInfo name="DOI" value="10.17487/RFC8915"/>
      </reference>
      <reference anchor="RFC8926" target="https://www.rfc-editor.org/info/rfc8926" quoteTitle="true" derivedAnchor="RFC8926">
        <front>
          <title>Geneve: Generic Network Virtualization Encapsulation</title>
          <author fullname="J. Gross" initials="J." role="editor" surname="Gross"/>
          <author fullname="I. Ganga" initials="I." role="editor" surname="Ganga"/>
          <author fullname="T. Sridhar" initials="T." role="editor" surname="Sridhar"/>
          <date month="November" year="2020"/>
          <abstract>
            <t indent="0">Network virtualization involves the cooperation of devices with a wide variety of capabilities such as software and hardware tunnel endpoints, transit fabrics, and centralized control clusters.  As a result of their role in tying together different elements of the system, the requirements on tunnels are influenced by all of these components.  Therefore, flexibility is the most important aspect of a tunneling protocol if it is to keep pace with the evolution of technology.  This document describes Geneve, an encapsulation protocol designed to recognize and accommodate these changing capabilities and needs.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8926"/>
        <seriesInfo name="DOI" value="10.17487/RFC8926"/>
      </reference>
      <reference anchor="RFC9197" target="https://www.rfc-editor.org/info/rfc9197" quoteTitle="true" derivedAnchor="RFC9197">
        <front>
          <title>Data Fields for In Situ Operations, Administration, and Maintenance (IOAM)</title>
          <author fullname="F. Brockners" initials="F." role="editor" surname="Brockners"/>
          <author fullname="S. Bhandari" initials="S." role="editor" surname="Bhandari"/>
          <author fullname="T. Mizrahi" initials="T." role="editor" surname="Mizrahi"/>
          <date month="May" year="2022"/>
          <abstract>
            <t indent="0">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 discusses the data fields and associated data types for IOAM.  IOAM-Data-Fields can be encapsulated into a variety of protocols, such as Network Service Header (NSH), Segment Routing, Generic Network Virtualization Encapsulation (Geneve), or IPv6.  IOAM can be used to complement OAM mechanisms based on, e.g., ICMP or other types of probe packets.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9197"/>
        <seriesInfo name="DOI" value="10.17487/RFC9197"/>
      </reference>
      <reference anchor="RFC9322" target="https://www.rfc-editor.org/info/rfc9322" quoteTitle="true" derivedAnchor="RFC9322">
        <front>
          <title>In Situ Operations, Administration, and Maintenance (IOAM) Loopback and Active Flags</title>
          <author fullname="T. Mizrahi" initials="T." surname="Mizrahi"/>
          <author fullname="F. Brockners" initials="F." surname="Brockners"/>
          <author fullname="S. Bhandari" initials="S." surname="Bhandari"/>
          <author fullname="B. Gafni" initials="B." surname="Gafni"/>
          <author fullname="M. Spiegel" initials="M." surname="Spiegel"/>
          <date month="November" year="2022"/>
          <abstract>
            <t indent="0">In situ Operations, Administration, and Maintenance (IOAM) collects operational and telemetry information in packets while they traverse a path between two points in the network.  This document defines two new flags in the IOAM Trace Option headers, specifically the Loopback and Active flags.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9322"/>
        <seriesInfo name="DOI" value="10.17487/RFC9322"/>
      </reference>
      <reference anchor="RFC9326" target="https://www.rfc-editor.org/info/rfc9326" quoteTitle="true" derivedAnchor="RFC9326">
        <front>
          <title>In Situ Operations, Administration, and Maintenance (IOAM) Direct Exporting</title>
          <author fullname="H. Song" initials="H." surname="Song"/>
          <author fullname="B. Gafni" initials="B." surname="Gafni"/>
          <author fullname="F. Brockners" initials="F." surname="Brockners"/>
          <author fullname="S. Bhandari" initials="S." surname="Bhandari"/>
          <author fullname="T. Mizrahi" initials="T." surname="Mizrahi"/>
          <date month="November" year="2022"/>
          <abstract>
            <t indent="0">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".  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>
        <seriesInfo name="RFC" value="9326"/>
        <seriesInfo name="DOI" value="10.17487/RFC9326"/>
      </reference>
      <reference anchor="RFC9359" target="https://www.rfc-editor.org/info/rfc9359" quoteTitle="true" derivedAnchor="RFC9359">
        <front>
          <title>Echo Request/Reply for Enabled In Situ OAM (IOAM) Capabilities</title>
          <author fullname="X. Min" initials="X." surname="Min"/>
          <author fullname="G. Mirsky" initials="G." surname="Mirsky"/>
          <author fullname="L. Bo" initials="L." surname="Bo"/>
          <date month="April" year="2023"/>
          <abstract>
            <t indent="0">This document describes a generic format for use in echo request/reply mechanisms, which can be used within an IOAM-Domain, allowing the IOAM encapsulating node to discover the enabled IOAM capabilities of each IOAM transit and IOAM decapsulating node.  The generic format is intended to be used with a variety of data planes such as IPv6, MPLS, Service Function Chain (SFC), and Bit Index Explicit Replication (BIER).</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9359"/>
        <seriesInfo name="DOI" value="10.17487/RFC9359"/>
      </reference>
      <reference anchor="I-D.ietf-nvo3-vxlan-gpe" target="https://datatracker.ietf.org/doc/html/draft-ietf-nvo3-vxlan-gpe-12" quoteTitle="true" derivedAnchor="VXLAN-GPE">
        <front>
          <title>Generic Protocol Extension for VXLAN (VXLAN-GPE)</title>
          <author initials="F." surname="Maino" fullname="Fabio Maino" role="editor">
            <organization showOnFrontPage="true">Cisco Systems</organization>
          </author>
          <author initials="L." surname="Kreeger" fullname="Larry Kreeger" role="editor">
            <organization showOnFrontPage="true">Arrcus</organization>
          </author>
          <author initials="U." surname="Elzur" fullname="Uri Elzur" role="editor">
            <organization showOnFrontPage="true">Intel</organization>
          </author>
          <date month="September" day="22" year="2021"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-nvo3-vxlan-gpe-12"/>
        <refcontent>Work in Progress</refcontent>
      </reference>
    </references>
    <section numbered="false" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t indent="0" pn="section-appendix.a-1">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>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Frank Brockners" initials="F." surname="Brockners" role="editor">
        <organization abbrev="Cisco" showOnFrontPage="true">Cisco Systems, Inc.</organization>
        <address>
          <postal>
            <street>Hansaallee 249, 3rd Floor</street>
            <city>DUESSELDORF</city>
            <code>40549</code>
            <country>Germany</country>
          </postal>
          <email>fbrockne@cisco.com</email>
        </address>
      </author>
      <author fullname="Shwetha Bhandari" initials="S." surname="Bhandari" role="editor">
        <organization abbrev="Thoughtspot" showOnFrontPage="true">Thoughtspot</organization>
        <address>
          <postal>
            <extaddr>3rd Floor, Indiqube Orion</extaddr>
            <extaddr>Garden Layout, HSR 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="" showOnFrontPage="true">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="" showOnFrontPage="true">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>
    </section>
  </back>
</rfc>
