<?xml version="1.0" encoding="US-ASCII"?>
<!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by Fred Baker (private) -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
     There has to be one entity for each item to be referenced.
     An alternate method (rfc include) is described in the references. -->
<!ENTITY RFC2119 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2890 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2890.xml">
<!ENTITY RFC4303 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4303.xml">
<!ENTITY RFC8174 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY I-D.ietf-ippm-ioam-data SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ippm-ioam-data.xml">
<!ENTITY I-D.ietf-nvo3-geneve SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-nvo3-geneve.xml">
]>
<?rfc toc="yes"?>
<?rfc tocompact="no"?>
<?rfc tocdepth="3"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<rfc category="std" docName="draft-weis-ippm-ioam-eth-01" ipr="trust200902">
  <front>
    <title abbrev="EtherType IOAM">EtherType Protocol Identification of
    In-situ OAM Data</title>

    <author fullname="Brian Weis" initials="B.W." surname="Weis">
      <organization>Independent</organization>

      <address>
        <postal>
          <street></street>

          <city></city>

          <code></code>

          <region></region>

          <country>USA</country>
        </postal>

        <phone></phone>

        <email>bew.stds@gmail.com</email>
      </address>
    </author>

    <author fullname="Frank Brockners" initials="F." surname="Brockners">
      <organization abbrev="Cisco">Cisco Systems, Inc.</organization>

      <address>
        <postal>
          <street>Hansaallee 249, 3rd Floor</street>

          <!-- Reorder these if your country does things differently -->

          <city>DUESSELDORF</city>

          <region>NORDRHEIN-WESTFALEN</region>

          <code>40549</code>

          <country>Germany</country>
        </postal>

        <email>fbrockne@cisco.com</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

    <author fullname="Craig Hill" initials="C." surname="Hill">
      <organization abbrev="Cisco">Cisco Systems, Inc.</organization>

      <address>
        <postal>
          <street>13600 Dulles Technology Drive</street>

          <!-- Reorder these if your country does things differently -->

          <city>Herndon</city>

          <region>Virginia</region>

          <code>20171</code>

          <country>United States</country>
        </postal>

        <email>crhill@cisco.com</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

    <author fullname="Shwetha Bhandari" initials="S." surname="Bhandari">
      <organization abbrev="Cisco">Cisco Systems, Inc.</organization>

      <address>
        <postal>
          <street>Cessna Business Park, Sarjapura Marathalli Outer Ring
          Road</street>

          <city>Bangalore, KARNATAKA 560 087</city>

          <country>India</country>
        </postal>

        <email>shwethab@cisco.com</email>
      </address>
    </author>

    <author fullname="Vengada Prasad Govindan" initials="V."
            surname="Govindan">
      <organization abbrev="Cisco">Cisco Systems, Inc.</organization>

      <address>
        <email>venggovi@cisco.com</email>
      </address>
    </author>

    <author fullname="Carlos Pignataro" initials="C." surname="Pignataro">
      <organization abbrev="Cisco">Cisco Systems, Inc.</organization>

      <address>
        <postal>
          <street>7200-11 Kit Creek Road</street>

          <city>Research Triangle Park</city>

          <region>NC</region>

          <code>27709</code>

          <country>United States</country>
        </postal>

        <email>cpignata@cisco.com</email>
      </address>
    </author>

    <author fullname="Hannes Gredler" initials="H." surname="Gredler">
      <organization>RtBrick Inc.</organization>

      <address>
        <email>hannes@rtbrick.com</email>
      </address>
    </author>

    <author fullname="John Leddy" initials="J." surname="Leddy">
      <organization abbrev="Comcast">Comcast</organization>

      <address>
        <email>John_Leddy@cable.comcast.com</email>
      </address>
    </author>

    <author fullname="Stephen Youell" initials="S." surname="Youell">
      <organization abbrev="JMPC">JP Morgan Chase</organization>

      <address>
        <postal>
          <street>25 Bank Street</street>

          <city>London</city>

          <code>E14 5JP</code>

          <country>United Kingdom</country>
        </postal>

        <email>stephen.youell@jpmorgan.com</email>
      </address>
    </author>

    <author fullname="Tal Mizrahi" initials="T." surname="Mizrahi">
      <organization abbrev="">Huawei Network.IO Innovation Lab</organization>

      <address>
        <postal>
          <street></street>

          <city></city>

          <code></code>

          <country>Israel</country>
        </postal>

        <email>tal.mizrahi.phd@gmail.com</email>
      </address>
    </author>

    <author fullname="Aviv Kfir" initials="A." surname="Kfir">
      <organization abbrev="">Mellanox Technologies, Inc.</organization>

      <address>
        <postal>
          <street>350 Oakmead Parkway, Suite 100</street>

          <city>Sunnyvale, CA</city>

          <code>94085</code>

          <country>U.S.A.</country>
        </postal>

        <email>avivk@mellanox.com</email>
      </address>
    </author>

    <author fullname="Barak Gafni" initials="B." surname="Gafni">
      <organization abbrev="">Mellanox Technologies, Inc.</organization>

      <address>
        <postal>
          <street>350 Oakmead Parkway, Suite 100</street>

          <city>Sunnyvale, CA</city>

          <code>94085</code>

          <country>U.S.A.</country>
        </postal>

        <email>gbarak@mellanox.com</email>
      </address>
    </author>

    <author fullname="Petr Lapukhov" initials="P." surname="Lapukhov">
      <organization abbrev="">Facebook</organization>

      <address>
        <postal>
          <street>1 Hacker Way</street>

          <city>Menlo Park, CA</city>

          <code>94025</code>

          <country>US</country>
        </postal>

        <email>petr@fb.com</email>
      </address>
    </author>

    <author fullname="Mickey Spiegel" initials="M." surname="Spiegel">
      <organization abbrev="">Barefoot Networks</organization>

      <address>
        <postal>
          <street>2185 Park Boulevard</street>

          <city>Palo Alto, CA</city>

          <code>94306</code>

          <country>US</country>
        </postal>

        <email>mspiegel@barefootnetworks.com</email>
      </address>
    </author>

    <date day="10" month="March" year="2019" />

    <area>Transport Area</area>

    <workgroup>ippm</workgroup>

    <abstract>
      <t>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
      defines an EtherType that identifies IOAM data fields as being the next
      protocol in a packet, and a header that encapsulates the IOAM data
      fields.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>In-situ Operations, Administration, and Maintenance (IOAM) records
      operational and telemetry information in the packet while the packet
      traverses a particular network domain. The term "in-situ" refers to the
      fact that the IOAM data fields are added to the data packets rather than
      being sent within packets specifically dedicated to OAM. This document
      defines how IOAM data fields are carried as part of encapsulations where
      the IOAM data follows a header that uses an EtherType to denote the next
      protocol in the packet. Examples of these protocols are GRE <xref
      target="RFC2890"></xref> and Geneve <xref
      target="I-D.ietf-nvo3-geneve"></xref>). This document outlines how IOAM
      data fields are encoded in these protocols.</t>
    </section>

    <section title="Conventions">
      <section title="Requirements Language">
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
        "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
        "OPTIONAL" in this document are to be interpreted as described in BCP
        14 <xref target="RFC2119"></xref> <xref target="RFC8174"></xref> when,
        and only when, they appear in all capitals, as shown here.</t>
      </section>

      <section title="Abbreviations">
        <t>Abbreviations used in this document:</t>

        <t><list hangIndent="11" style="hanging">
            <t hangText="E2E:">Edge-to-Edge</t>

            <t hangText="Geneve:">Generic Network Virtualization
            Encapsulation</t>

            <t hangText="GRE:">Generic Routing Encapsulation</t>

            <t hangText="IOAM:">In-situ Operations, Administration, and
            Maintenance</t>

            <t hangText="OAM:">Operations, Administration, and Maintenance</t>

            <t hangText="POT:">Proof of Transit</t>
          </list></t>
      </section>
    </section>

    <section title="IOAM EtherType">
      <t>When the IOAM data fields are included within an encapsulation that
      identifies the next protocol using an EtherType (e.g., GRE or Geneve)
      the presence of IOAM data fields are identified with TBD_IOAM. When this
      EtherType is used, an additional IOAM header is also included. This
      header indicates the type of IOAM data that follows, and the next
      protocol that follows the IOAM data.</t>

      <figure>
        <artwork align="center"><![CDATA[ 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   IOAM-Type   |   IOAM HDR len|        Next Protocol          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
!                                                               |
!                                                               |
~                 IOAM Option and Data Space                    ~
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
      </figure>

      <t>The IOAM encapsulation is defined as follows.</t>

      <t><list style="hanging">
          <t hangText="IOAM Type:">8-bit field defining the IOAM Option type,
          as defined in Section 7.2 of <xref
          target="I-D.ietf-ippm-ioam-data"></xref>.</t>

          <t hangText="IOAM HDR Len:">8 bit Length field contains the length
          of the IOAM header in 4-octet units.</t>

          <t hangText="Next Protocol:">16 bits Next Protocol Type field
          contains the protocol type of the packet following IOAM protocol
          header. Protocol Type is defined to be an EtherType value from <xref
          target="ETYPES"></xref>. An implementation receiving a packet
          containing a Protocol Type which is not listed in one of those
          registries SHOULD discard the packet.</t>

          <t hangText="IOAM Option and Data Space:">IOAM option header and
          data is present as specified by the IOAM-Type field, and is defined
          in Section 4 of <xref target="I-D.ietf-ippm-ioam-data"></xref>.</t>
        </list>Multiple IOAM options MAY be included within the IOAM Option
      and Data Space. For example, if two IOAM options are included, the Next
      Protocol field of the first IOAM option will contain the value of
      TBD_IOAM, while the Next Protocol field of the second IOAM option will
      contain the EtherType indicating the type of the data packet.</t>
    </section>

    <section title="Usage Examples of the IOAM EtherType">
      <t>The IOAM EtherType can be used with many encapsulations. The
      following sections show how it can be used with GRE and Geneve.</t>

      <section title="Example: GRE Encapsulation of IOAM Data Fields">
        <t>When IOAM data fields are carried in GRE, the IOAM encapsulation
        defined above follows the GRE header, as shown in <xref
        target="gre-encap"></xref>.</t>

        <t><figure anchor="gre-encap" height=""
            title="GRE Encapsulation Example">
            <artwork><![CDATA[ 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+
|C| |K|S| Reserved0       | Ver | Protocol Type = <TBD_IOAM>    |  |  
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  |
|      Checksum (optional)      |       Reserved1 (Optional)    |  G
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  R
|                         Key (optional)                        |  E
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  |
|                 Sequence Number (Optional)                    |  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+
|   IOAM-Type   |   IOAM HDR len|        Next Protocol          |  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  I
!                                                               |  O
!                                                               |  A
~                 IOAM Option and Data Space                    ~  M
|                                                               |  |
|                                                               |  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+
|                                                               |
|             Payload + Padding (L2/L3/ESP/...)                 |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>The GRE header and fields are defined in <xref
        target="RFC2890"></xref>. The GRE Protocol Type value is TBD_IOAM.</t>
      </section>

      <section title="Example: Geneve Encapsulation of IOAM Data Fields">
        <t>When IOAM data fields are carried in Geneve, the IOAM encapsulation
        defined above follows the Geneve header, as shown in <xref
        target="geneve-encap"></xref>.<figure anchor="geneve-encap"
            title="Geneve Encapsulation Example">
            <artwork align="center"><![CDATA[ 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+
|Ver|  Opt Len  |O|C|    Rsvd.  | Protocol Type = <TBD_IOAM>    |  |G
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  |E
|        Virtual Network Identifier (VNI)       |    Reserved   |  |N
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  |E
|                    Variable Length Options                    |  |V
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+E
|   IOAM-Type   |   IOAM HDR len|        Next Protocol          |  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  I
!                                                               |  O
!                                                               |  A
~                 IOAM Option and Data Space                    ~  M
|                                                               |  |
|                                                               |  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+
|                                                               |
|  Inner header + Payload + Padding (L2/L3/ESP/...)             |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>The GENEVE header and fields are defined in <xref
        target="I-D.ietf-nvo3-geneve"></xref>. The Geneve Protocol Type value
        is TBD_IOAM.</t>
      </section>
    </section>

    <section title="Security Considerations">
      <t>This document describes the encapsulation of IOAM data fields in GRE.
      Security considerations of the specific IOAM data fields for each case
      (i.e., Trace, Proof of Transit, and E2E) are described in defined in
      <xref target="I-D.ietf-ippm-ioam-data"></xref>.</t>

      <t>As this document describes new protocol fields within the existing
      GRE encapsulation, these are similar to the security considerations of
      <xref target="RFC2890"></xref>.</t>

      <t>IOAM data transported in an OAM E2E header SHOULD be integrity
      protected (e.g., with IPsec ESP <xref target="RFC4303"></xref>) to
      detect changes made by a device between the sending and receiving OAM
      endpoints.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>A new EtherType value is requested to be added to the <xref
      target="ETYPES"></xref> IANA registry. The description should be
      "In-situ OAM (IOAM)".</t>
    </section>

    <!-- <section anchor="Acknowledgements" title="Acknowledgements"> -->

    <!-- </section> -->
  </middle>

  <back>
    <references title="Normative References">
      &RFC2119;

      &RFC8174;

      &RFC2890;

      &I-D.ietf-ippm-ioam-data;

      &I-D.ietf-nvo3-geneve;

      <reference anchor="ETYPES"
                 target="https://www.iana.org/assignments/ieee-802-numbers/ieee-802-numbers.xhtml">
        <front>
          <title>IANA Ethernet Numbers</title>

          <author></author>

          <date />
        </front>
      </reference>
    </references>

    <references title="Informative References">
      &RFC4303;
    </references>
  </back>
</rfc>
