| Internet-Draft | Abbreviated Title | November 2025 |
| Parikh, et al. | Expires 16 May 2026 | [Page] |
The purpose of this memo is to describe a new IOAM Node Data Field type, called Flex Field, for In-Situ Operations, Administration, and Maintenance (IOAM). This option type, under IOAM Trace Option-Types will allow one to append variable length node data in an IOAM packet, along a network path.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 16 May 2026.¶
Copyright (c) 2025 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) 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.¶
In Situ Operations, Administration, and Maintenance (IOAM) is used for recording and collecting operational and telemetry information while the packet traverses a path between two points in the network. [RFC9197] defines the data fields and associated data types for IOAM. Currently, every node data field (but one) defined in there is of fixed length, i.e. 4-octet or 8-octet, the only variable length field in that document is for the Opaque State Snapshot (Section 4.4.2.13. of [RFC9197]).¶
What if a network operator wants to add important variable length node data, from the nodes along a network path, in an IOAM packet? This memo proposes a new option type for In-Situ Operations, Administration, and Maintenance (IOAM) [RFC9197], to address that.¶
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 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
As we had discussed in the previous section, the [RFC9197] talks about IOAM data fields and different IOAM nodes types.¶
The term "in situ", in IOAM, 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 (which uses the data plane) is used to complement mechanisms, such as Ping or Traceroute (which use the control plane).¶
Now, many applications, interested in telemetry data across a
path are not only interested in the entire path's comprehensive
telemetry, (to paint a more holistic picture), but also in each
individual node's telemetry.
For example:¶
And so, as discussed above, using IOAM, which traverses in the data plane, we would get an accurate idea of how the above mentioned telemetry metrics would look, for actual data plane packets/traffic.¶
Now, due to the nature of this field, and how it is designed, it will have an upper limit when it comes to "how many nodes (data) can this field accomodate" and we have decided to keep it at 255 (with variable length). This should idealy be able to address an administrative domain's needs. And it is and will be both, backwards compatible with existing IOAM data field definitions and forward compatible for if any new data fields are introduced in the future.¶
So, as discussed above, we will be using XX (undefined) [---preferrably the 21st bit, so it's next to the opaque state snapshot, for easy processing---] bit for, the IOAM-Trace-Type field present in the "Pre-allocated and Incremental Trace-Option headers" (Section 4.4.1. of [RFC9197]), to represent the new Flex Field defined in this document.¶
And, due to the nature of this field, when present, the Node Length (Section 4.4.1. of [RFC9197]) present in the IOAM Header, will exclude the length of this field. With this, logic processor will know that the actual bits 0-11 are done and can start on the XX bit (i.e. this document) with it's own length.¶
This section defines a new node data field for IOAM Flex Field Option Type. And like other IOAM Option Types [RFC9197], this field can be transported by a variety of transport protocols, including NSH, Segment Routing, Geneve, BIER, IPv6, etc. [RFC9378]¶
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Hop Count | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Namespace-ID | Flags | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | | Data | ~ ~ . . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+¶
TBD¶
As discussed in [RFC9378], IOAM is focused on "limited domains", as defined in [RFC8799]. IOAM is not targeted for a deployment on the global Internet, which would incur additional considerations such as the crossing of Trust Boundaries, authentication of IOAM data, or the desire to obfuscate domain internals to outside parties. The part of the network that employs IOAM is referred to as the "IOAM-Domain".¶