<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.3.6) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-mayer-bpm-ioam-gob-00" category="exp" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="IOAM GOB">Global Opaque Block for IOAM Pre-allocated Trace Option</title>

    <author initials="A." surname="Mayer" fullname="Andrea Mayer">
      <organization>Univ. of Rome Tor Vergata / CNIT / Common Net</organization>
      <address>
        <email>andrea.mayer@uniroma2.it</email>
      </address>
    </author>
    <author initials="S." surname="Salsano" fullname="Stefano Salsano">
      <organization>Univ. of Rome Tor Vergata / CNIT</organization>
      <address>
        <email>stefano.salsano@uniroma2.it</email>
      </address>
    </author>
    <author initials="J." surname="Iurman" fullname="Justin Iurman">
      <organization>6WIND</organization>
      <address>
        <email>justin.iurman@gmail.com</email>
      </address>
    </author>
    <author initials="D. R." surname="Lopez" fullname="Diego R. Lopez">
      <organization>Telefonica</organization>
      <address>
        <email>diego.r.lopez@telefonica.com</email>
      </address>
    </author>

    <date year="2026" month="October" day="30"/>

    
    <workgroup>BPM</workgroup>
    <keyword>IOAM</keyword> <keyword>IPv6</keyword> <keyword>In-band telemetry</keyword> <keyword>Metadata</keyword>

    <abstract>


<?line 103?>

<t>Extensible metadata carried within the IOAM Pre-allocated Trace Option
(PTO) can support packet-level, flow-level, or path-level processing
beyond per-node trace data. This document defines the Global Opaque
Block (GOB), an extension to the IOAM PTO that introduces a single
pre-allocated global metadata region placed at the tail of the option,
after the pre-allocated node data space. Since the PTO node data list
is populated from the tail of the node data space toward its head,
under the control of the RemainingLen field, legacy IOAM transit nodes
can never reach the GOB region: the extension is transparent to such
nodes by construction, and only the decapsulating node or collector
needs to be GOB-aware. In the default mode of operation, the GOB
carries an explicit length and schema identifier in a trailer word; in
an optimized namespace-implied mode, size and schema are bound to the
IOAM-Namespace and the block consists of payload only, so that a
4-octet opaque value is carried in exactly 4 octets. The GOB preserves
the pre-allocated PTO processing model and can be used to transport
Extensible In-band Processing (EIP) Information Elements or other
structured metadata formats.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        The latest revision of this draft can be found at <eref target="https://eip-home.github.io/ioam-gob/draft-mayer-bpm-ioam-gob.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-mayer-bpm-ioam-gob/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        EIP SIG mailing list (<eref target="mailto:eip@cnit.it"/>),
        which is archived at <eref target="http://postino.cnit.it/cgi-bin/mailman/private/eip/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/eip-home/ioam-gob"/>.</t>
    </note>


  </front>

  <middle>


<?line 124?>

<section anchor="introduction"><name>Introduction</name>

<t>The IOAM Pre-allocated Trace Option (PTO) defined in <xref target="RFC9197"/> and
<xref target="RFC9486"/> provides a structured way to carry in-band operational and
telemetry information along a packet path. In the PTO model, the
encapsulating node pre-allocates space for node data that can be filled
by IOAM-capable nodes along the path.</t>

<t>This document defines an extension to the IOAM PTO called the Global
Opaque Block (GOB). The GOB is a global metadata region that appears
once in the PTO, at the tail of the option, after the pre-allocated
node data space. In the default mode of operation, the GOB is
identified by a presence bit in the PTO header and carries its own
length and schema fields in the last 4-octet word of the option,
referred to as the GOB Trailer. In an optimized namespace-implied
mode, presence, size and schema of the GOB are bound to the
IOAM-Namespace, the trailer is omitted, and the block consists of
payload only.</t>

<t>The GOB enables the carriage of structured global metadata within the
IOAM PTO, while preserving the existing PTO processing model for
per-node trace data. In particular, the GOB can carry Extensible
In-band Processing (EIP) Information Elements or other schema-driven
metadata formats, without modifying the semantics of the node data list.</t>

<t>The placement of the GOB at the tail of the option makes it transparent
to legacy IOAM transit nodes. In the PTO, the node data list is
populated from the tail of the pre-allocated node data space toward its
head, at offsets derived from the RemainingLen field (Section 4.4.1 of
<xref target="RFC9197"/>). A compliant legacy node therefore never writes beyond the
node data space and cannot reach the GOB region that follows it. Only
the decapsulating node or the collector needs to be GOB-aware. This
property is analyzed in detail in <xref target="backward-compatibility"/>.</t>

<t>The GOB is pre-allocated by the encapsulating node. Transit nodes <bcp14>MAY</bcp14>
read or update the GOB payload, subject to the bounds established at
encapsulation time, but they <bcp14>MUST NOT</bcp14> alter the overall GOB size or the
layout of the enclosing PTO option.</t>

<t>This document specifies the GOB format, length and alignment rules, and
processing behavior for encapsulating, transit, and egress or collector
nodes.</t>

<t>An implementation and experimental evaluation of the proposed GOB approach
within the Linux IOAM framework are described in <xref target="implementation-status"/>.</t>

</section>
<section anchor="conventions-and-definitions"><name>Conventions and Definitions</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

<t>The following terms are used in this document:</t>

<dl>
  <dt>GOB:</dt>
  <dd>
    <t>Global Opaque Block. A structured global metadata region inserted into
the IOAM PTO.</t>
  </dd>
  <dt>GOB Trailer:</dt>
  <dd>
    <t>The 4-octet trailer of the GOB, carried as the last word of the IOAM
option and containing the GOB Len and Schema fields.</t>
  </dd>
  <dt>GOB Payload:</dt>
  <dd>
    <t>The payload that immediately precedes the GOB Trailer. Its size is
determined by the GOB Len field.</t>
  </dd>
  <dt>Node Data Space:</dt>
  <dd>
    <t>The pre-allocated region that follows the PTO fixed header and hosts
the Node Data List. Its size is set at encapsulation time via the
RemainingLen field.</t>
  </dd>
  <dt>PTO:</dt>
  <dd>
    <t>The IOAM Pre-allocated Trace Option defined in <xref target="RFC9197"/> and
<xref target="RFC9486"/>.</t>
  </dd>
  <dt>Node Data List:</dt>
  <dd>
    <t>The sequence of pre-allocated per-node data slots defined by the PTO
format.</t>
  </dd>
  <dt>Ingress Node:</dt>
  <dd>
    <t>The encapsulating node that inserts the IOAM PTO and, when present,
allocates and initializes the GOB.</t>
  </dd>
  <dt>Transit Node:</dt>
  <dd>
    <t>An IOAM-capable node along the path that may process the PTO and may
read or update the GOB payload.</t>
  </dd>
  <dt>Egress or Collector Node:</dt>
  <dd>
    <t>A node that removes, terminates, exports, or otherwise interprets the
IOAM information carried in the packet.</t>
  </dd>
  <dt>Schema:</dt>
  <dd>
    <t>A 24-bit identifier that specifies how the GOB Payload is to be
interpreted.</t>
  </dd>
</dl>

</section>
<section anchor="design-overview"><name>Design Overview</name>

<t>The GOB extends the IOAM PTO with a global metadata area that is
logically distinct from the per-node node data list. It is intended for
metadata that applies to the packet, flow, or path as a whole, rather
than to a specific transit node.</t>

<t>The GOB appears at most once in a PTO option. When present, it is
placed at the tail of the option, after the pre-allocated node data
space. The GOB consists of a variable-length payload followed by a
fixed 4-octet trailer, which is the last word of the IOAM option and
carries the GOB length and schema identifier. The GOB is located from
the end of the option, using the IOAM option length; any padding used
to align the enclosing Hop-by-Hop Options header lies outside the IOAM
option and does not affect GOB location.</t>

<t>The GOB preserves the pre-allocated nature of the PTO model. The ingress
node allocates the GOB space at encapsulation time and determines its
size, its schema, and the overall PTO layout. GOB-aware transit nodes
<bcp14>MAY</bcp14> modify the contents of the GOB payload, but <bcp14>MUST NOT</bcp14> modify the GOB
Trailer. Legacy transit nodes require no modification: they process the
node data space according to <xref target="RFC9197"/> and never access the GOB.</t>

<t>The GOB is intended to support structured metadata formats. One relevant
use case is the carriage of Extensible In-band Processing (EIP)
Information Elements, but the mechanism is not restricted to EIP and may
be used with other schema-driven payload formats.</t>

<t>The addition of the GOB does not change the semantics of the per-node
node data list. The GOB complements the PTO by adding a global opaque
area while leaving the existing per-node trace structure intact.</t>

</section>
<section anchor="gob-format"><name>GOB Format</name>

<section anchor="pto-layout-with-gob"><name>PTO Layout with GOB</name>

<t>When the Global Opaque Block (GOB) is present, the IOAM
Pre-allocated Trace Option (PTO) is extended by appending a single GOB
at the tail of the option, after the pre-allocated Node Data Space.</t>

<t>The resulting layout is:</t>

<t><list style="numbers" type="1">
  <t>PTO fixed header</t>
  <t>Node Data Space (hosting the Node Data List)</t>
  <t>GOB Payload</t>
  <t>GOB Trailer</t>
  <t>Tail padding, if required to satisfy alignment of the enclosing
Hop-by-Hop Options header; such padding is outside the IOAM option</t>
</list></t>

<t>The GOB is indicated by the G bit in the PTO fixed header. If the G bit
is clear, no GOB is present and PTO processing follows the base PTO
format.</t>

<t>The GOB appears at most once in a PTO option.</t>

</section>
<section anchor="g-bit-ver"><name>G Bit and Ver Field</name>

<t>The presence of the GOB is signaled in the last octet of the second
word of the PTO fixed header, defined as Reserved in <xref target="RFC9197"/>. When
the GOB extension is in use, this octet is structured as 5 reserved
bits, followed by a 2-bit Ver field and by the G bit in the least
significant position.</t>

<dl>
  <dt>G bit:</dt>
  <dd>
    <t>When set to 1, a GOB is present at the tail of the option. When set
to 0, no GOB is present and the option follows the base PTO format.</t>
  </dd>
  <dt>Ver:</dt>
  <dd>
    <t>A 2-bit field carrying the version of the GOB extension. This
document defines version 0. An encapsulating node inserting a GOB
<bcp14>MUST</bcp14> set Ver to 0. A GOB-aware node that receives a PTO with the G
bit set and an unsupported Ver value <bcp14>MUST NOT</bcp14> parse or modify the
GOB.</t>
  </dd>
</dl>

<t>The remaining 5 bits are reserved: they <bcp14>MUST</bcp14> be set to zero by the
encapsulating node and ignored on receipt.</t>

</section>
<section anchor="gob-trailer-fields"><name>GOB Trailer Fields</name>

<t>The GOB Trailer is 4 octets long and contains the following fields:</t>

<dl>
  <dt>GOB Len:</dt>
  <dd>
    <t>An 8-bit field that specifies the size of the GOB Payload in units of
4 octets.</t>
  </dd>
  <dt>Schema:</dt>
  <dd>
    <t>A 24-bit field that identifies the format of the GOB Payload. The
value 0xFFFFFF indicates that no schema is associated with the GOB;
in this case, the GOB Payload <bcp14>MUST NOT</bcp14> be interpreted. This mirrors
the corresponding rule for the Opaque State Snapshot Schema ID in
<xref target="RFC9197"/>. The structure of the Schema value space is defined in
<xref target="schema-semantics"/>.</t>
  </dd>
</dl>

<t>The total size of the GOB is therefore:</t>

<figure><artwork><![CDATA[
GOB_PLEN = GOB_Len * 4
GOB_SIZE = 4 + GOB_PLEN
]]></artwork></figure>

<t>where the 4 additional octets correspond to the GOB Trailer itself. The
GOB Payload consists of the <spanx style="verb">GOB_PLEN</spanx> octets that immediately precede
the GOB Trailer.</t>

<t>The Schema field allows the GOB Payload to be interpreted according to
a structured format. One important use case is the carriage of
Extensible In-band Processing (EIP) Information Elements, but the GOB
is not limited to EIP and may carry other schema-driven metadata
formats.</t>

</section>
<section anchor="byte-level-layout"><name>Byte-Level Layout</name>

<t>The following figure shows the byte-level layout of the IOAM PTO with
the GOB present.</t>

<figure title="IOAM PTO with Global Opaque Block (GOB) at the tail"><artwork><![CDATA[
Offset      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
     40    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           |   Next Header |  Hdr Ext Len  |   PadN Opt    | PadN OptLen   |
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           |    Opt Type   |  IOAM Opt Len |   Reserved    |   IOAM Type   |
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           |  Namespace-ID  (16b)          |NodeLen  | Flags |RemainingLen |
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           |         IOAM Trace-Type (24b)                 |Reserved |Ver|G|
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           |                                                               |
           ~                          Node Data List                       ~
           |                                                               |
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           |                                                               |
           ~                           GOB Payload                         ~
           |                                                               |
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           | GOB Len (8b)  | Schema (24b)                                  |
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           |                           Padding                             |
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t>More explicitly, the internal structure is:</t>

<figure title="Detailed PTO layout with Node Data Space and tail GOB"><artwork><![CDATA[
Offset      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
     40    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           |   Next Header |  Hdr Ext Len  |   PadN Opt    | PadN OptLen   |
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           |    Opt Type   |  IOAM Opt Len |   Reserved    |   IOAM Type   |
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+
           |  Namespace-ID  (16b)          |NodeLen  | Flags |RemainingLen | |
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ (A)
           |         IOAM Trace-Type (24b)                 |Reserved |Ver|G| |
     X     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+
           |                                                               | |
           |                       Node Data List [0]                      | |
           |                                                               | |
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ D
           |                                                               | a
           |                       Node Data List [1]                      | t
           |                                                               | a
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           ~                              ...                              ~ S
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ p
           |                                                               | a
           |                      Node Data List [n-1]                     | c
           |                                                               | e
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
           |                                                               | |
           |                       Node Data List [n]                      | |
           |                                                               | |
     Y     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+
           |                                                               | G
           ~                           GOB Payload                         ~ O
           |                                                               | B
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+
  GOB_TRL  | GOB Len (8b)  | Schema (24b)                                  |
     Y'    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
           |   PadN Opt    | PadN OptLen   |  Padding 16 bits              |
           +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ALG(Y',8) \_________________________8-byte aligned ________________________/
   = Y''
]]></artwork></figure>

<t>The Node Data Space begins immediately after the PTO fixed header, at
the same position as in the base PTO format: this is the write anchor
used by all nodes, including legacy ones, to derive the node data
recording offset from RemainingLen. The GOB Payload immediately follows
the Node Data Space. The GOB Trailer is the last 4-octet word of the
IOAM option. Any final tail padding is added only to satisfy alignment
requirements of the enclosing Hop-by-Hop Options header and lies
outside the IOAM option.</t>

</section>
<section anchor="namespace-implied"><name>Namespace-Implied GOB</name>

<t>The mechanism defined in the previous sections is self-describing: the
presence of the GOB is signaled by the G bit, and its size and schema
are carried in the GOB Trailer. This is the default mode of operation.</t>

<t>As an optimization, a deployment <bcp14>MAY</bcp14> designate IOAM-Namespaces that
imply the presence and the format of a GOB, referred to as
GOB-implying namespaces. When the Namespace-ID field of the PTO
carries such a value:</t>

<t><list style="symbols">
  <t>the option carries a GOB at the tail consisting of payload only:
the GOB Trailer is NOT present;</t>
  <t>the GOB size is implied by the namespace, through configuration or
through the registration of the Namespace-ID value; it <bcp14>MUST</bcp14> be a
multiple of 4 octets, and the sizes of 4, 8, 12 and 16 octets are
<bcp14>RECOMMENDED</bcp14> for standardized registrations;</t>
  <t>the schema of the GOB payload is likewise implied by the namespace;</t>
  <t>the presence of the GOB is determined by the Namespace-ID itself: a
GOB-aware node <bcp14>MUST</bcp14> treat the GOB as present regardless of the value
of the G bit. The encapsulating node <bcp14>SHOULD</bcp14> set the G bit to 1 (and
the Ver field to 0) as an in-band confirmation when the deployment
uses the Reserved octet extension of <xref target="g-bit-ver"/>; alternatively,
it <bcp14>MAY</bcp14> leave the Reserved octet at zero, obtaining a pure
namespace-based mode of operation that does not use the Reserved
octet at all.</t>
</list></t>

<t>In this mode, the GOB occupies the last <spanx style="verb">GOB_SIZE</spanx> octets of the IOAM
option, where <spanx style="verb">GOB_SIZE</spanx> is the implied size, and the validity check
of <xref target="internal-pto-offsets"/> applies with the implied <spanx style="verb">GOB_SIZE</spanx>
substituted for <spanx style="verb">4 * (GOB_Len + 1)</spanx>. All other processing rules apply
unchanged, with presence, size and schema derived from a Namespace-ID
lookup instead of being parsed from the packet.</t>

<t>The namespace-implied mode is intended for standardized compact
records and for hardware fast paths: the position and interpretation
of the GOB are derived from a single Namespace-ID lookup, without
parsing any length information in the packet, and the per-packet
overhead of the trailer is removed entirely. In particular, a 4-octet
opaque value is carried in exactly 4 octets, which is the most
efficient possible transport for it; a 16-octet record is carried in
16 octets. Note that the fields defined by <xref target="RFC9197"/> keep their
format and semantics regardless of the namespace value: the namespace
only provides the interpretation context for octets that lie outside
all such fields. In particular, in the pure namespace-based variant,
with the Reserved octet left at zero, the option is, on the wire, a
plain Pre-allocated Trace Option whose pre-allocated space extends
beyond the RemainingLen window: this variant can be deployed without
any change to <xref target="RFC9197"/>.</t>

</section>
</section>
<section anchor="length-and-alignment-rules"><name>Length and Alignment Rules</name>

<t>This section defines the length relations used when the GOB is present
in the IOAM PTO.</t>

<section anchor="gob-length"><name>GOB Length</name>

<t>The GOB Payload length is determined by the GOB Len field:</t>

<figure><artwork><![CDATA[
GOB_PLEN = GOB_Len * 4
]]></artwork></figure>

<t>The total GOB size, including the fixed 4-octet GOB Trailer, is:</t>

<figure><artwork><![CDATA[
GOB_SIZE = 4 + GOB_PLEN
]]></artwork></figure>

<t>The GOB Len field is set by the ingress node at encapsulation time.</t>

<t>Transit nodes <bcp14>MAY</bcp14> modify the content of the GOB Payload, but <bcp14>MUST NOT</bcp14>
modify the GOB Trailer and therefore <bcp14>MUST NOT</bcp14> alter the total GOB
size.</t>

</section>
<section anchor="internal-pto-offsets"><name>Internal PTO Offsets</name>

<t>Let:</t>

<t><list style="symbols">
  <t><spanx style="verb">X</spanx> be the offset of the start of the Node Data Space, immediately
following the PTO fixed header;</t>
  <t><spanx style="verb">Y</spanx> be the offset immediately following the Node Data Space;</t>
  <t><spanx style="verb">Y'</spanx> be the offset immediately following the GOB Trailer, that is,
the end of the IOAM option;</t>
  <t><spanx style="verb">Y''</spanx> be the IOAM option length rounded up to the next multiple of
8 octets;</t>
  <t><spanx style="verb">RemainingLen_init</spanx> be the initial value of the RemainingLen field,
set by the ingress node at encapsulation time.</t>
</list></t>

<t>Then:</t>

<figure><artwork><![CDATA[
X   = (sizeof(IOAM_TLV) - 2) + sizeof(IOAM_PTO_HDR)
Y   = X + RemainingLen_init * 4
Y'  = Y + GOB_SIZE
Y'' = ALIGN(Y', 8)
]]></artwork></figure>

<t>In these expressions:</t>

<t><list style="symbols">
  <t><spanx style="verb">sizeof(IOAM_TLV) - 2</spanx> excludes the <spanx style="verb">Option Type</spanx> and <spanx style="verb">Option Length</spanx>
octets already accounted for in the option layout;</t>
  <t><spanx style="verb">sizeof(IOAM_PTO_HDR)</spanx> is the fixed PTO header size;</t>
  <t><spanx style="verb">RemainingLen</spanx> retains its exact meaning from <xref target="RFC9197"/>: it counts
only the pre-allocated Node Data Space and does not include the GOB.</t>
</list></t>

<t>The Node Data Space starts immediately after the PTO fixed header and
spans <spanx style="verb">RemainingLen_init * 4</spanx> octets. The GOB occupies the last
<spanx style="verb">GOB_SIZE</spanx> octets of the IOAM option.</t>

<t>Let <spanx style="verb">PTO_LEN</spanx> be the total length of the PTO option content, from the
beginning of the PTO fixed header to the end of the GOB Trailer, and
let <spanx style="verb">RemainingLen</spanx> be the current (received) value of the field. The
following validity check holds for a well-formed option at any point
along the path:</t>

<figure><artwork><![CDATA[
4 * (GOB_Len + 1) <= PTO_LEN - sizeof(IOAM_PTO_HDR)
                     - RemainingLen * 4
]]></artwork></figure>

<t>The check holds with equality at encapsulation time and is preserved
along the path, since RemainingLen can only decrease. A GOB-aware node
<bcp14>MUST</bcp14> treat the GOB as invalid if this check fails.</t>

</section>
<section anchor="ioam-option-length-and-hop-by-hop-header-length"><name>IOAM Option Length and Hop-by-Hop Header Length</name>

<t>The IOAM Option Length field <bcp14>MUST</bcp14> be set to <spanx style="verb">Y''</spanx>, that is, to the total
internal length of the IOAM option after rounding up to the required
alignment.</t>

<t>The enclosing Hop-by-Hop Options header length is derived from the total
size of the header, including:</t>

<t><list style="symbols">
  <t>the 2-octet <spanx style="verb">Next Header</spanx> and <spanx style="verb">Hdr Ext Len</spanx> fields;</t>
  <t>any PadN option used to align the start of the IOAM option;</t>
  <t>the IOAM option itself, including any final tail padding.</t>
</list></t>

<t>Let <spanx style="verb">HBH_LEN</spanx> denote the total Hop-by-Hop Options header size in octets.
Then:</t>

<figure><artwork><![CDATA[
HBH_LEN = ALIGN(4 + sizeof(IOAM_PTO_HDR) + RemainingLen_init * 4
                + GOB_SIZE, 8)
]]></artwork></figure>

<t>where the leading 4 octets account for:</t>

<t><list style="symbols">
  <t>2 octets for <spanx style="verb">Next Header</spanx> and <spanx style="verb">Hdr Ext Len</spanx>;</t>
  <t>2 octets for the PadN option that aligns the IOAM option start.</t>
</list></t>

<t>The IPv6 <spanx style="verb">Hdr Ext Len</spanx> field is encoded as:</t>

<figure><artwork><![CDATA[
Hdr Ext Len = HBH_LEN / 8 - 1
]]></artwork></figure>

</section>
<section anchor="alignment-semantics"><name>Alignment Semantics</name>

<t>As specified in <xref target="RFC8200"/>, the Hop-by-Hop Options header is encoded so
that its total length is a multiple of 8 octets, and the Hdr Ext Len
field carries that length in 8-octet units, not including the first
8 octets.</t>

<t>The final tail padding used to align the enclosing Hop-by-Hop Options
header to an 8-octet boundary is not part of the GOB and is not part of
the Node Data List.</t>

<t>More specifically:</t>

<t><list style="symbols">
  <t><spanx style="verb">Y</spanx> identifies the end of the Node Data Space;</t>
  <t><spanx style="verb">Y'</spanx> identifies the end of the GOB and of the IOAM option;</t>
  <t><spanx style="verb">Y''</spanx> identifies the aligned end, including padding that lies outside
the IOAM option.</t>
</list></t>

<t>The difference between <spanx style="verb">Y'</spanx> and <spanx style="verb">Y''</spanx> is due only to final alignment
padding and does not carry GOB or node-data semantics. The GOB is
always located relative to the end of the IOAM option as given by the
IOAM option length, never relative to the end of the Hop-by-Hop Options
header.</t>

</section>
<section anchor="preservation-of-pto-semantics"><name>Preservation of PTO Semantics</name>

<t>The presence of the GOB does not alter the semantics of <spanx style="verb">RemainingLen</spanx>
or the pre-allocated nature of the PTO. In particular, <spanx style="verb">RemainingLen</spanx>
counts only the Node Data Space, exactly as in <xref target="RFC9197"/>, and the
Node Data Space starts at the same offset as in the base PTO format.</t>

<t>The ingress node determines, at encapsulation time:</t>

<t><list style="symbols">
  <t>the size of the Node Data Space, via <spanx style="verb">RemainingLen_init</spanx>;</t>
  <t>the GOB size;</t>
  <t>the final aligned IOAM option length.</t>
</list></t>

<t>The following budget constraints apply:</t>

<t><list style="symbols">
  <t><spanx style="verb">RemainingLen_init &lt;= 127</spanx>, due to the 7-bit RemainingLen field; note
that the GOB does not consume this budget;</t>
  <t>the total PTO option content, <spanx style="verb">sizeof(IOAM_PTO_HDR) +
RemainingLen_init * 4 + GOB_SIZE</spanx>, is bounded by the length limits of
the enclosing encapsulation (approximately 253 octets for the IPv6
Hop-by-Hop encapsulation of <xref target="RFC9486"/>).</t>
</list></t>

<t>Transit nodes operate only within the pre-allocated bounds of the Node
Data Space and, for GOB-aware nodes, of the GOB Payload, and <bcp14>MUST NOT</bcp14>
change the overall layout of the PTO option.</t>

<t>In this way, the pre-allocated model of the PTO is preserved while
extending the option with a structured global metadata region.</t>

</section>
</section>
<section anchor="backward-compatibility"><name>Backward Compatibility</name>

<t>This section shows that the GOB is transparent to legacy IOAM transit
nodes, that is, nodes that implement <xref target="RFC9197"/> without GOB support.</t>

<section anchor="structural-transparency-to-legacy-transit-nodes"><name>Structural Transparency to Legacy Transit Nodes</name>

<t>In the Pre-allocated Trace-Option, the node data list is populated from
the tail of the data space toward its head. Section 4.4.1 of
<xref target="RFC9197"/> specifies that RemainingLen "is used to derive the offset
in data space to record the node data element", and that "the recording
of the node data element would start from RemainingLen - NodeLen - size
of (opaque snapshot) in 4-octet units".</t>

<t>A compliant transit node therefore only writes within the interval:</t>

<figure><artwork><![CDATA[
[X + (RemainingLen - NodeLen - SoS) * 4, X + RemainingLen * 4)
]]></artwork></figure>

<t>where <spanx style="verb">X</spanx> is the start of the data space (<xref target="internal-pto-offsets"/>) and
<spanx style="verb">SoS</spanx> is the size of the Opaque State Snapshot, if present. Since
RemainingLen starts at <spanx style="verb">RemainingLen_init</spanx> and can only decrease, no
compliant node can ever write at or beyond <spanx style="verb">X + RemainingLen_init * 4</spanx>,
which is exactly where the GOB begins. The GOB is therefore
unreachable by legacy transit nodes, for any number of IOAM hops on
the path.</t>

</section>
<section anchor="overflow-behavior"><name>Overflow Behavior</name>

<t>When a transit node finds that RemainingLen is smaller than the space
required for its node data element, it sets the Overflow bit (O-bit)
and does not record any data (<xref target="RFC9197"/>). With the GOB at the tail of
the option, this behavior is preserved exactly: overflow is signaled
precisely when the Node Data Space is exhausted, and the GOB is not
affected. The ingress node <bcp14>SHOULD</bcp14> set <spanx style="verb">RemainingLen_init = h * NodeLen</spanx>
for the expected number <spanx style="verb">h</spanx> of IOAM-capable hops; if the path contains
more IOAM hops than expected, the additional hops do not record data
and the O-bit is set, while the GOB remains intact.</t>

<t>The use of the variable-length Opaque State Snapshot (bit 22 of the
IOAM Trace-Type) consumes RemainingLen faster than the fixed NodeLen
accounting and thus affects the dimensioning of <spanx style="verb">RemainingLen_init</spanx>,
but does not affect the integrity of the GOB.</t>

</section>
<section anchor="gob-only-mode"><name>GOB-Only Mode</name>

<t>An ingress node <bcp14>MAY</bcp14> set <spanx style="verb">RemainingLen_init = 0</spanx>, resulting in an option
that carries only the GOB and no node data. In this case, a legacy IOAM
transit node finds no room for its node data element and sets the O-bit
(or skips the option); the GOB is not affected.</t>

</section>
<section anchor="legacy-decapsulating-nodes-and-collectors"><name>Legacy Decapsulating Nodes and Collectors</name>

<t>A legacy decapsulating node removes the whole IOAM option; the GOB is
lost but packet forwarding is unaffected. A legacy collector that
parses the raw option content and assumes that node data extends to
the end of the option would misinterpret the GOB as the oldest node
data elements. Within a GOB deployment domain, the decapsulating node
and the collector are GOB-aware by definition, so this situation only
arises from misconfiguration. Note that, in that case, the size of the
region interpreted as node data would generally not be an integer
multiple of <spanx style="verb">NodeLen * 4</spanx>, which provides a detection opportunity.</t>

</section>
<section anchor="path-mtu"><name>Path MTU</name>

<t>Section 4.4.1 of <xref target="RFC9197"/> relates RemainingLen to the path MTU for
the node data space. An ingress node inserting a GOB <bcp14>MUST</bcp14> also account
for <spanx style="verb">GOB_SIZE</spanx> octets when assessing path MTU constraints.</t>

</section>
<section anchor="applicability-to-namespace-implied-gobs"><name>Applicability to Namespace-Implied GOBs</name>

<t>The analysis in this section applies unchanged to the namespace-implied
mode of <xref target="namespace-implied"/>: the GOB occupies the same tail region,
outside the RemainingLen window, regardless of whether its size is
described by the GOB Trailer or implied by the IOAM-Namespace. In the
pure namespace-based variant, with the Reserved octet left at zero,
the option is additionally fully compliant with <xref target="RFC9197"/> as
currently specified.</t>

</section>
</section>
<section anchor="processing-semantics"><name>Processing Semantics</name>

<t>This section specifies the behavior for the default, trailer-based
mode of operation. In the namespace-implied mode, the same rules apply
with the adjustments specified in <xref target="namespace-implied"/>: the presence
of the GOB is determined by the Namespace-ID (with the G bit as
optional in-band confirmation), its size and schema are derived from
the Namespace-ID, and the GOB Trailer is absent.</t>

<section anchor="ingress-node-behavior"><name>Ingress Node Behavior</name>

<t>An ingress node that inserts a GOB into the PTO:</t>

<t><list style="symbols">
  <t><bcp14>MUST</bcp14> set the G bit to 1 and the Ver field to 0;</t>
  <t><bcp14>MUST</bcp14> allocate the full GOB space (Payload and Trailer) at the tail
of the option at encapsulation time;</t>
  <t><bcp14>MUST</bcp14> set the GOB Len and Schema fields in the GOB Trailer;</t>
  <t><bcp14>MUST</bcp14> set <spanx style="verb">RemainingLen_init</spanx> according to the size of the Node Data
Space only, without including the GOB (e.g., <spanx style="verb">RemainingLen_init =
h * NodeLen</spanx> for <spanx style="verb">h</spanx> expected IOAM hops);</t>
  <t><bcp14>MUST</bcp14> determine the final PTO layout, including the Node Data Space,
the GOB, and any required tail padding;</t>
  <t><bcp14>MUST</bcp14> account for the GOB size when assessing path MTU constraints.</t>
</list></t>

<t>The ingress node <bcp14>MAY</bcp14> initialize the GOB Payload with structured
metadata, zero values, or other schema-defined initial content.</t>

</section>
<section anchor="transit-node-behavior"><name>Transit Node Behavior</name>

<t>Legacy IOAM transit nodes require no modification: they process the
Node Data Space according to the procedures of <xref target="RFC9197"/> and, as
shown in <xref target="backward-compatibility"/>, never access the GOB.</t>

<t>A GOB-aware transit node that processes a PTO containing a GOB:</t>

<t><list style="symbols">
  <t><bcp14>MUST</bcp14> verify the validity check of <xref target="internal-pto-offsets"/> before
accessing the GOB;</t>
  <t><bcp14>MAY</bcp14> read the GOB Payload;</t>
  <t><bcp14>MAY</bcp14> update fields within the GOB Payload, subject to the schema in
use;</t>
  <t><bcp14>MUST NOT</bcp14> modify the GOB Trailer (GOB Len and Schema fields);</t>
  <t><bcp14>MUST NOT</bcp14> modify PTO fixed-header fields, other than Flags and
RemainingLen as allowed by <xref target="RFC9197"/>;</t>
  <t><bcp14>MUST NOT</bcp14> change the overall size or layout of the PTO option.</t>
</list></t>

<t>A transit node <bcp14>MUST</bcp14> confine any GOB update to the pre-allocated GOB
Payload bounds established by the ingress node.</t>

</section>
<section anchor="egress-or-collector-behavior"><name>Egress or Collector Behavior</name>

<t>An egress or collector node that processes a PTO with the G bit set
locates the GOB Trailer as the last 4-octet word of the IOAM option,
and the GOB Payload as the <spanx style="verb">GOB_PLEN</spanx> octets that immediately precede
it. The node data recorded along the path occupies the region between
<spanx style="verb">X + RemainingLen * 4</spanx>, where RemainingLen is the received value, and
the start of the GOB Payload.</t>

<t>Such a node:</t>

<t><list style="symbols">
  <t><bcp14>MUST</bcp14> verify the validity check of <xref target="internal-pto-offsets"/>; if the
check fails, the GOB <bcp14>MUST</bcp14> be considered invalid and <bcp14>MUST NOT</bcp14> be
parsed;</t>
  <t><bcp14>MAY</bcp14> parse the GOB Payload according to the Schema field;</t>
  <t><bcp14>MAY</bcp14> export the GOB content as structured metadata or as raw bytes;</t>
  <t><bcp14>MAY</bcp14> ignore the GOB Payload if the Schema value is unknown or not
supported.</t>
</list></t>

<t>If the Schema value is unknown, the node <bcp14>MUST NOT</bcp14> infer semantics beyond
the presence and length of the GOB.</t>

</section>
</section>
<section anchor="relation-to-pto-semantics"><name>Relation to PTO Semantics</name>

<t>The GOB preserves the pre-allocated semantics of the IOAM PTO.</t>

<t>The ingress node continues to determine the overall PTO allocation at
encapsulation time. This includes the size of the node data list and,
when present, the size of the GOB. Transit nodes operate only within the
pre-allocated space and do not change the overall layout of the PTO.</t>

<t>The Node Data List retains its existing semantics and processing model.
The GOB does not redefine the per-node trace data structure and does not
replace the node data list. Instead, it introduces a distinct global
metadata region placed after the node data space, at the tail of the
option.</t>

<t>In this sense, the pre-allocated nature of the PTO applies both to the
per-node trace space and to the GOB. The GOB extends the PTO with a
global opaque area while preserving the original PTO processing model.</t>

</section>
<section anchor="schema-semantics"><name>Schema Semantics and Extensibility</name>

<t>The Schema field identifies the format of the GOB Payload. As for the
Opaque State Snapshot Schema ID of <xref target="RFC9197"/>, the Schema field is
interpreted within the context of the IOAM-Namespace indicated by the
Namespace-ID field of the enclosing PTO.</t>

<t>A Schema value may identify:</t>

<t><list style="symbols">
  <t>a sequence of EIP Information Elements;</t>
  <t>another structured metadata format defined by a specification;</t>
  <t>a locally defined or domain-specific format.</t>
</list></t>

<t>This document defines the GOB container, but does not define the
internal syntax of individual schema-specific payloads. The semantics of
the GOB Payload therefore depend on the specification associated with
the Schema value in use.</t>

<t>Following the model used by <xref target="RFC9197"/> for the Namespace-ID, the
24-bit Schema value space is divided into two subranges:</t>

<t><list style="symbols">
  <t>an operator-assigned range from 0x000000 to 0x7FFFFF, and</t>
  <t>an IANA-assigned range from 0x800000 to 0xFFFFFE.</t>
</list></t>

<t>The operator-assigned range is domain specific and managed by the
network operator: values in this range identify locally defined
schemas, whose meaning is established by configuration within the
deployment domain and within the context of the IOAM-Namespace in use.
No value in this range has a preassigned meaning.</t>

<t>The IANA-assigned range is intended for globally defined schemas
specified in future documents, allowing new and interoperable GOB
payload formats — for example, a registered schema identifying a
sequence of EIP Information Elements.</t>

<t>In the namespace-implied mode of <xref target="namespace-implied"/>, no Schema
field is carried in the packet: the schema is bound to the
IOAM-Namespace by configuration or registration, and the rules on the
Schema field in this section apply to the trailer-based mode only.</t>

<t>The Schema value 0xFFFFFF is reserved and indicates that no schema is
associated with the GOB, consistent with the Opaque State Snapshot rule
of <xref target="RFC9197"/>, where "the Schema ID <bcp14>MUST</bcp14> be set to 0xFFFFFF to mean no
schema". An encapsulating node that inserts a GOB without an associated
schema <bcp14>MUST</bcp14> set the Schema field to 0xFFFFFF. When the Schema field is
0xFFFFFF, nodes <bcp14>MUST NOT</bcp14> interpret the GOB Payload beyond its presence
and length. Future specifications that define allocation policies for
Schema values <bcp14>MUST</bcp14> preserve this reservation.</t>

</section>
<section anchor="integration-with-eip"><name>Integration with EIP</name>

<t>One important use of the GOB is the carriage of Extensible In-band
Processing (EIP) Information Elements <xref target="draft-eip-arch"/>.</t>

<t>The GOB provides a natural container for EIP within the IOAM PTO because
it offers a single global metadata region with explicit length and
schema identification, distinct from the per-node trace data. This makes
it suitable for metadata that is flow-level, packet-level, or path-level
rather than node-local.</t>

<t>Earlier work explored the integration of EIP into the IOAM framework
through a different approach based on IOAM data fields
<xref target="salsano25cscn"/>. The GOB-based approach defined in this document
provides an alternative integration model based on a pre-allocated
global metadata region within the PTO.</t>

<t>The GOB is a general container for structured metadata. It can carry
EIP Information Elements, but it is not limited to EIP.</t>

<t>The GOB-based integration has also been described and experimentally
evaluated in <xref target="mayer26noms"/>.</t>

</section>
<section anchor="implementation-status"><name>Implementation Status</name>

<t>[RFC Editor: please remove this section before publication.]</t>

<t>This section records the status of known implementations of the
mechanism defined by this specification, following the approach
suggested by <xref target="RFC7942"/>.</t>

<t>An open source implementation of the GOB in the Linux kernel IOAM
subsystem is available and is aligned with the default, trailer-based
mode of the specification in this document: tail placement of the GOB,
GOB Trailer as the last word of the option, and unmodified
RemainingLen semantics. The namespace-implied mode of
<xref target="namespace-implied"/> is not yet implemented. The implementation covers
encapsulation, transit and decapsulation processing, and includes a
dedicated eBPF program type for programmable processing of the GOB
Payload. The eBPF program context exposes only the GOB Payload, so
that the GOB Trailer is not addressable by the program: the
corresponding "<bcp14>MUST NOT</bcp14> modify the GOB Trailer" requirement of this
document is enforced at the eBPF verifier level.</t>

<t>A complete development and test environment, including build
instructions and an interactive demonstration of in-flight aggregation
(minimum, maximum, sum and count of a per-node metric carried in the
GOB Payload), is available at
https://github.com/netgroup/ioam-gob-kernel-playground. The
demonstration was presented at the IETF 126 hackathon, within the
project "In-Network Telemetry Aggregation Using new IOAM extensions".</t>

<t>An earlier implementation and experimental evaluation, based on the
-01 revision of this document (with the GOB placed at the head of the
option), is described in <xref target="mayer26noms"/>.</t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>The GOB introduces a global metadata region that may be read or modified
by on-path nodes. Unauthorized access to, or modification of, the GOB
Payload can affect telemetry interpretation, service behavior, or policy
enforcement.</t>

<t>For this reason, deployments of the GOB <bcp14>SHOULD</bcp14> be limited to controlled
or trusted domains, consistent with the limited-domain assumptions often
applied to IOAM deployments.</t>

<t>The GOB Trailer is not protected by any checksum or authentication
mechanism. A misbehaving or malicious on-path node could corrupt the
GOB Trailer; in particular, an inflated GOB Len value could cause a
decapsulating node to interpret recorded node data as GOB Payload. The
validity check of <xref target="internal-pto-offsets"/> rejects GOB sizes that are
inconsistent with the option length and with the current RemainingLen
value, and <bcp14>MUST</bcp14> be applied by every GOB-aware node before parsing the
GOB. Deployments <bcp14>MAY</bcp14> additionally cross-check the received GOB Len and
Schema values against per-namespace configuration.</t>

<t>The security implications of the GOB Payload also depend on the Schema
in use. Some schemas may carry purely observational metadata, while
others may influence packet treatment or convey more sensitive
information. Schema-specific specifications <bcp14>SHOULD</bcp14> describe any
additional confidentiality, integrity, or authorization requirements.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document defines the Global Opaque Block (GOB) as an extension to
the IOAM Pre-allocated Trace Option.</t>

<t>As discussed in <xref target="backward-compatibility"/>, the GOB is transparent to
legacy IOAM transit nodes: it is placed outside the region that such
nodes can address, and the semantics of all existing PTO fields are
preserved.</t>

<t>In this light, this document proposes to reuse the existing codepoint
of the IOAM Pre-allocated Trace-Option, defining the G bit and the Ver
field within the Reserved octet of the PTO fixed header, in the
positions specified in <xref target="g-bit-ver"/>. Since <xref target="RFC9197"/> requires
transit nodes to ignore the Reserved field, this approach does not
affect legacy transit behavior. However, <xref target="RFC9197"/> also requires the
encapsulating node to set the Reserved field to zero: the reuse of the
PTO codepoint therefore requires a formal update of the definition of
the Reserved octet of the PTO, allocating its least significant bit as
the G bit and the two preceding bits as the Ver field, while the
remaining five bits stay reserved.</t>

<t>As a subordinate fallback, should the update of the PTO Reserved octet
definition not be acceptable, a new codepoint can be defined for a PTO
variant that supports the Global Opaque Block. In this case, the
presence or absence of the GOB would still be indicated by the G bit,
while the use of a distinct codepoint provides explicit protocol
separation from the current PTO format and avoids any redefinition of
the existing PTO Reserved octet. Note, however, that this fallback
weakens the main benefit of the tail placement: a legacy transit node
that does not recognize the new codepoint would skip the option
entirely, instead of processing the node data space as it does under
the codepoint-reuse approach.</t>

<t>The namespace-implied mode of <xref target="namespace-implied"/> is orthogonal to
the choice above: it relies on values of the existing "IOAM
Namespace-ID" registry, where each registered (or operator-configured)
GOB-implying value specifies the implied GOB size and schema, and it
can use the G bit as in-band confirmation under whichever of the two
approaches is selected. Notably, its pure namespace-based variant,
with the Reserved octet left at zero, requires neither the update of
the Reserved octet nor a new codepoint: it can be deployed under
<xref target="RFC9197"/> as currently specified. A future version of this document
may request Namespace-ID registrations for standardized compact
records.</t>

<t>In addition, <xref target="schema-semantics"/> divides the 24-bit Schema value space
into an operator-assigned range (0x000000 to 0x7FFFFF) and an
IANA-assigned range (0x800000 to 0xFFFFFE), with 0xFFFFFF reserved to
indicate that no schema is associated with the GOB. A future version of
this document is expected to request the creation of a "GOB Schema
Identifiers" registry covering the IANA-assigned range.</t>

<t>This version of the document does not request IANA actions. Future
versions may request updates to the relevant IOAM <xref target="IANA-ioam-types"/>
or IPv6 <xref target="IANA-ipv6-parameters"/> registries, depending on which
standardization approach is selected.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC8200">
  <front>
    <title>Internet Protocol, Version 6 (IPv6) Specification</title>
    <author fullname="S. Deering" initials="S." surname="Deering"/>
    <author fullname="R. Hinden" initials="R." surname="Hinden"/>
    <date month="July" year="2017"/>
    <abstract>
      <t>This document specifies version 6 of the Internet Protocol (IPv6). It obsoletes RFC 2460.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="86"/>
  <seriesInfo name="RFC" value="8200"/>
  <seriesInfo name="DOI" value="10.17487/RFC8200"/>
</reference>
<reference anchor="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>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="RFC9486">
  <front>
    <title>IPv6 Options for In Situ Operations, Administration, and Maintenance (IOAM)</title>
    <author fullname="S. Bhandari" initials="S." role="editor" surname="Bhandari"/>
    <author fullname="F. Brockners" initials="F." role="editor" surname="Brockners"/>
    <date month="September" year="2023"/>
    <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 outlines how IOAM Data-Fields are encapsulated in IPv6.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9486"/>
  <seriesInfo name="DOI" value="10.17487/RFC9486"/>
</reference>
<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>

<reference anchor="IANA-ioam-types" >
  <front>
    <title>IOAM Data Field Types</title>
    <author initials="" surname="IANA" fullname="IANA">
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
  <format type="HTML" target="https://www.iana.org/assignments/ioam/ioam.xhtml#data-field-types"/>
</reference>
<reference anchor="IANA-ipv6-parameters" >
  <front>
    <title>Internet Protocol Version 6 (IPv6) Parameters</title>
    <author initials="" surname="IANA" fullname="IANA">
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
  <format type="HTML" target="https://www.iana.org/assignments/ipv6-parameters/ipv6-parameters.xhtml"/>
</reference>


    </references>

    <references title='Informative References' anchor="sec-informative-references">

<reference anchor="draft-eip-arch" >
  <front>
    <title>Extensible In-band Processing (EIP) Architecture and Framework</title>
    <author initials="S." surname="Salsano" fullname="Stefano Salsano">
      <organization></organization>
    </author>
    <author initials="H." surname="ElBakoury" fullname="Hesham ElBakoury">
      <organization></organization>
    </author>
    <author initials="D. R." surname="Lopez" fullname="Diego R. Lopez">
      <organization></organization>
    </author>
    <date year="2026"/>
  </front>
  <format type="HTML" target="https://datatracker.ietf.org/doc/draft-eip-arch/"/>
<refcontent>Internet-Draft draft-eip-arch</refcontent></reference>
<reference anchor="salsano25cscn" >
  <front>
    <title>Integrating Extensible In-Band Processing (EIP) into the IOAM Framework: A Unified Approach to In-Packet Telemetry and Metadata</title>
    <author initials="S." surname="Salsano" fullname="Stefano Salsano">
      <organization></organization>
    </author>
    <author initials="A." surname="Mayer" fullname="Andrea Mayer">
      <organization></organization>
    </author>
    <author initials="G." surname="Sidoretti" fullname="Giulio Sidoretti">
      <organization></organization>
    </author>
    <author initials="P." surname="Loreti" fullname="Pierpaolo Loreti">
      <organization></organization>
    </author>
    <author initials="L." surname="Bracciale" fullname="Lorenzo Bracciale">
      <organization></organization>
    </author>
    <author initials="H." surname="ElBakoury" fullname="Hesham ElBakoury">
      <organization></organization>
    </author>
    <author initials="D. R." surname="Lopez" fullname="Diego R. Lopez">
      <organization></organization>
    </author>
    <date year="2025"/>
  </front>
<refcontent>IEEE CSCN 2025 Conference</refcontent></reference>
<reference anchor="mayer26noms" >
  <front>
    <title>Integrating the Global Opaque Block into the IOAM Framework: A Unified Approach to In-Packet Telemetry and Metadata</title>
    <author initials="A." surname="Mayer" fullname="Andrea Mayer">
      <organization></organization>
    </author>
    <author initials="S." surname="Salsano" fullname="Stefano Salsano">
      <organization></organization>
    </author>
    <author initials="G." surname="Sidoretti" fullname="Giulio Sidoretti">
      <organization></organization>
    </author>
    <author initials="P." surname="Loreti" fullname="Pierpaolo Loreti">
      <organization></organization>
    </author>
    <author initials="L." surname="Bracciale" fullname="Lorenzo Bracciale">
      <organization></organization>
    </author>
    <author initials="H." surname="ElBakoury" fullname="Hesham ElBakoury">
      <organization></organization>
    </author>
    <author initials="D. R." surname="Lopez" fullname="Diego R. Lopez">
      <organization></organization>
    </author>
    <date year="2026"/>
  </front>
<refcontent>IEEE/IFIP NOMS 2026</refcontent></reference>


<reference anchor="RFC7942">
  <front>
    <title>Improving Awareness of Running Code: The Implementation Status Section</title>
    <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
    <author fullname="A. Farrel" initials="A." surname="Farrel"/>
    <date month="July" year="2016"/>
    <abstract>
      <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
      <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="205"/>
  <seriesInfo name="RFC" value="7942"/>
  <seriesInfo name="DOI" value="10.17487/RFC7942"/>
</reference>



    </references>

</references>


<?line 1010?>

<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

<t>The authors thank Alexander Clemm, Ramon Bister and Severin Dellsperger
for the discussions on the relationship between the GOB and the IOAM
Aggregation Trace and Template Options, and for hosting the GOB
demonstration within their IETF 126 Hackathon project. The authors
also thank Giulio Sidoretti for his contribution to the Linux
implementation.</t>

</section>


  </back>

<!-- ##markdown-source:
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
gCXL+dYt/mjr5PQFwrTIxuxHeBdqCZsQAt9eOcAdBOwqczRFdCQuglc3M9pd
p5j3I9DbHT78uTvy2eHIZ79l+V93+F1+yH/L7/Gv+H3+NX/Af/dTPqNn3cPx
/Gb6C//LB/Yj5/yVfOf4c/LLf+T8eW3AocIILn5/JupXYDzS9eEv/Jr/mD/s
s48M3wp4dfoblw8+gnfD99GE8tfjBeH6X3NkEZgwPXnM+f7d+/OD7Huw8z31
njZiafmPRYz5V6YZ/hAlwHeaIj32D+/lQwzXRwL++Cdpfnz2rxjZz/spRvbP
3deVLtaOi/75q43sPyXNCv2y6+c/Dc1C8mn/AWz4H4NSHWeAf+nIdv+ceSf8
XzgyUHXvjwgn/81emTbYHbDJ/Lm9D4y9BOhKQK8CINStvG0CxlUWOrJH/6Vc
/0u57vrv959Zv37m4fH944PPqmXD+P7ya5HvF/30yLfrcT1N+9c7f/tFj/uZ
o/vli/v4845O/Bza3d1JO/crju4X0+5T7QvO+Ww2u/mCf/Lzz7uu3b9+XfvL
2k53LOyPvPq8o5Ofl3a/Jsd+Kk+0/2J58gb//cW0++zC+NlnteL56ecd3aNf
wRCAMNrF6xefzZh/88VnGVyfcDdabsmmv3ufAu5jI/tMZGP8+MWz/TdfTB4c
8P/5/a6fB1OIi1G6UNZ812XQUYN/w9988UXPR3iMQG9fktVk2d5+zhPTNpDx
gbYlPqvWv2YulxDmz2OjKSs7TJsJh9E6K9Yy5qEg2eWTVb1s0BGFzH18E0H1
XLTVShuGmXtIhDUNwSEmXLVVs8Gl8tB83SJMTHvof1lwwIwM4VaqECDIVG6A
psx8zDhk0/RZLOaGVEk3ZkkSd0OtDsvStJCe2vKFAs/LZXljzC/UtQy1jSOJ
Y+bTyuscbfIpKB5YaUDysB2pYwrgZsa8r0qEKb6/NSgY8nslYTEyaKXP1l8p
vQFYZ0XjQIhns5h6YLVql5jLYh9L4uYZT8LqqIAaTfgpgEr0kX4FDvYi22U7
67oAa2+zSilf7CV4LbtGbzHXCMCfGuF9kIApS58oi8CARNtABZpbSI+mTJQg
CHFZuQU5C6QwJkIj0a1PweI+zN0tSj+kDHYEmiFewKd3jhj7Ms/NxmrWQe2P
z5IQwxT1o0c+MdXb8JjOpJD8Q/+SWHkB9PZ7yC9hm5eIGb1ZruCNmBLwpQsG
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
ahGZVNcQeQuAS58lgudTL7Ty3Je9j+Q39njWDI5mAUCE4NxipdhCm+wUTZwR
BooVlk5eYQTEw3ylg915JRvdRfyVAyyQbK+U0a0HWcYk43yjmppBqx0Qh/EM
cA+VMaJCEV3LNWUFA0Opdrpo1HLluFguAVeBSLP9tWrVerOe8LV4R7/Yzdof
NLRpfcu0qEjXEk786xng+YkvB5MeOzq2cq6zR7dvL5VbbeazSq9vt9Itjd50
t5UW6+lSz6fE2dOuEdsllqpSWXM5i+vUQCvR9uTJxVN+9/A+X4nqrXAr7MuU
xyg1ZrP2TtrpK+9rXiC2ypktP06k4N/Z4CqhKo1NrgiS3XLpdfmnnwk/SWoR
hjK9c5dDe750wlYeE9nPDXlensKadQjyMUGic+/I+L7GuQXI+g0CF7/1iQSS
8Jm6zWOYO3R1PIJ4LuNZw1F8zaEZ5BTzM2hrz/h3rdi4lTbYrynkT/Uk3VWF
PTnp8z+q8gC8jItU9u+ZcIwyVgnnQtYYmNxb5jnPFzM/xRgLmtjCoo0Yff3i
yFAP2p3L3DIAyWMgvVZjSZlBOLAPEdhxT8vfPQ1xBEALdkGnOoCpdiTGnfb2
WhpPZgP1pFdntCNwAkTiWp9eAjaFFMzGrcAOJqImnQ0ox7WyRCMQtoavBZjS
0BwyXzHgcyhD1cZsOhf5OUA3YGcVTadAzCyakN/ENC85sv45YOWjUhh6gTrz
v2KSL8XBhS1jtSAAfkJu3Mi/I9w3wCW8dwZtBVU7tlplJ5UQ9CFHyndeyJUz
S4nC1PWwi+gygAts+00Ag2Hm24R54s7442wfQtKsQItVRls7pQkXmcosrd7z
KsUSNqUjQR3DHCVYk/aXDRIBrYaqsPjKjCEYvWVI1MdhfMSLn+t1CLjY7Ngq
wNI1W67n0avNZIpHlDMMPtNdsJ0ogOSBu9h/gXQrJLjbK7nlCHGH7IcC7cay
JmszP6wU/O356J65g6wEDmIZHh6JhK4kNpyYJLT3JPAXyDLhrejUBZZ89eNX
xyPCdWewe/exIehkpc6KHkpM/vPO9l/UObVWttpYG9TAbkxLHi4oqtDYSBUa
yfMj7zZ5hZQjNnP1AM3SqGyNZDgZXFnzzzw3CpnAmNYj9AciUoBVYxlHlvVC
s2XS05ed0WQRYmFX6PwYHwul+tTVpEjG3lDWRmDogKghXGHC3fnoY+a39sCg
O88zDYaIb0Q4wEZm7TN9pVMPiYxbzrISMAXCNGXa41ioQxORKvn3IbPpVWuv
4Cjo0Rl/rq9BjE1K1BQIgjAKvuOoS+iZ7KNq5VjCMZlHfsukwBUjgJRfpiwP
E9/lM1FNANmEmrOIWg/5nJ1LMYlROcgJwDGacGYrz89s9fjR4aJDcoVAKmh1
44mgNmyHQOhYH8PS8aELsL/xeuvElmcb+hijXps5QjEQiiWaBth1ArWim4Ze
XM4WqFTOj2UECDj5qpIdBrIgYg82bCJsbOlHPjy1AoKmxaHnn2dgxF3sFFP9
QpOyhbQhRGxZtx/KI1XT0IGMY+ciYyWdLzHyeyNLpqdZxFBUjAiCWaQr3TAr
O+E9hBj6Cwo8VdKTk3SlFXYN3QZ0QLGPCqFUEp1qHSZ8FVjE+5sQJfSLyK6l
eCt9rxM0AOeylQsVN2QZQDhKxTo5a7OypS3YScs24DbLlfUEfqu6zJ5hoV/o
JG/HmrndI+AD7D/gXwpF7FTWEF80JbYN8uTm9q27Mjl4fLZxK71Etev1W7XS
YMqLub6SqGqMpD4bbTBtQiY8LA0exFWkzPdC7mYbEhhQXZnnraB+KaYpg1Uk
64Oy73fItOZYepW1Y+/Bx0NTdAYMFvRPwKOPt1lG2lK5CqJLw7641iwQV4aO
7b5W6ZUGtt4SgP1z9BuN0rWVyketM5EzJk5blBjF1qP+cb1eobRzyrIGPlbW
wI9DsrI4bzqPPK8FoaQhDlLAI4oW4B/tD0xGRLD2JqNn6/qUOq33ztw7w+j8
Den1/bHU+oEPzbCxNO/+WFL9wJebxCxbzAk6zYII/fTzkUdpzUpLCstdPfzd
6Uh2ZE8wxf0CCb6HvjI5AScBcmNs4j+KKgYhMzLngATpnTOebOUk9mgQaF8L
CnOFJBzzd5P7EK6kLWxTc7NGXoF2Q7vv/XscDIabIC5pP3wApx4bT4Xvuqv7
U1AkawDjkUOJs1KAfidHCB3plhiYpX0nQgKYzK2cfxmbTqcctQO7xY8rCLg3
sl6iB8HeH1HBr6y/2VuIxspwFgh5HVTK+5YfN/KdQNHxbSPX6wl/Lda65Y9Q
vBHIWiLd+WPZNLaTBgrmYvUPeQfk57WBOMRAK9XFPkVBbQf7B+VsHiAjxwPr
SOS6gxBA6PIzSX24NUnpENjpBfCi9axMCtw9D4E77oN1FAb2NGBofxIhnqlN
ozQ/V7U20jlFrwSbBGI1ar4J6M2YMmBltG7G/h9oQ59Ne6oAAA==

-->

</rfc>

