Internet-Draft | Fixed IOAM Option | July 2025 |
Mizrahi, et al. | Expires 6 January 2026 | [Page] |
In situ measurement is performed by incorporating performance related information into in-flight data packets. This document specifies a new IOAM Option-Type that has a fixed length and can be updated by transit nodes along the path. It enables lightweight monitoring while maintaining a constant length that is not changed in-flight and is not affected by the number of hops in the network.¶
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 6 January 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) [RFC9197] is used for measuring and monitoring a network by incorporating measurement and operational data into some or all of the data packets. [RFC9197] has defined several Option-Types, intended for different purposes.¶
This document introduces a new IOAM Option-Type that can be incorporated into data packets and updated by transit nodes along the path. Compared to existing IOAM Trace Option-Types, the new Option-Type provides performance information using data fields that have a constant length.¶
There are several in-progress proposals that use a fixed-size telemetry header, including [I-D.cxx-ippm-ioamaggr], [I-D.mzbc-ippm-transit-measurement-option], [I-D.xiao-ippm-ioam-trace-extensions], [I-D.filsfils-ippm-path-tracing], [I-D.ravi-ippm-csig], and [I-D.shi-ippm-congestion-measurement-data]. These proposals can potentially benefit from the IOAM Option-Type that is presented in this document.¶
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.¶
Abbreviations used in this document:¶
The terms Option-Type, encapsulating node, decapsulating node, and transit node are defined in [RFC9197].¶
There is a set of use cases that the current IOAM Option-Types do not support. This section lists a set of use cases for the IOAM Template Option-Type.¶
Aggregated information: aggregated information across several nodes, e.g., [I-D.cxx-ippm-ioamaggr]. Many applications interested in telemetry data across a path are not focused on individual node's telemetry, but on an aggregated metric that can provide a more holistic picture. Aggregating IOAM data along a network path meets this requirement. IOAM nodes do not only retrieve information, but also perform functions such as sum, average, minimum, or maximum of a given data parameter and carry the result to the next IOAM node in an IOAM data field.¶
Congestion information: information relating to the congestion status can be collected from nodes along the path, e.g., [I-D.ravi-ippm-csig] providing a finer level of granularity than conventional ECN while limiting the congestion status to a fixed size.¶
Combined information: a combination of aggregated information and congestion-related information can be collected along the path, e.g., [I-D.mzbc-ippm-transit-measurement-option], while using a fixed size.¶
This section lists requirements for the IOAM Template Option-Type:¶
Templates supported MUST have a fixed length and fixed structure. Fixed length and structure are to simplify parsing of the Option-Type.¶
Each templates is a composition of one or more data fields.¶
Data fields within a template can have different sizes (e.g., 8 bits, 16 bits, 32 bits).¶
Templates MUST align to 4 octet boundaries. If necessary, padding fields are used to guarantee 4-octet alignment.¶
Data fields within a Template can be read-only for IOAM nodes or read-write for IOAM nodes, depending on their use.¶
The IOAM Template Option-Type SHOULD support IETF defined (IANA registry) Templates for use-cases which are defined by the IETF as well as custom/deployment specific templates, that are defined by the operator and are specific to a deployment.¶
This document defines a new IOAM Option-Type, the Template Option-Type. The length of the Template Option-Type MUST NOT be modified by IOAM transit nodes. However, IOAM transit nodes MAY modify the option data in the Template Option-Type. Figure 1 presents the format of this Option-Type.¶
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Namespace-ID | Template-ID | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Template-Data depending on the Template-ID value ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
An IOAM node that complies to this draft MUST support the following fields, as depicted in Figure 1:¶
The specification of the Template-ID values and the corresponding option data formats is outside the scope of this document.¶
As in [RFC9197], the Template Option-Type can be incorporated into all or a subset of the traffic that is forwarded by the encapsulating node. Notably, this option adds a fixed and low overhead to data packets, which remains constant along the path.¶
The section lists examples of how the template option can be used.¶
[I-D.cxx-ippm-ioamaggr] describes use cases to aggregate IOAM data along a network path. Rather than just collecting data at IOAM nodes, data is collected and processed by the IOAM nodes - using functions like sum, average, minimum, or maximum of a given data parameter - and the result stored in a data field called "Aggregate" (see below). The Template Option can be used to support this use-case with the following example template:¶
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Namespace-ID | TBD_1 | Length=2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IOAM Data Param | Aggregator | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Aggregate | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The use case that is presented in [I-D.mzbc-ippm-transit-measurement-option] provides aggregated transit delay information, as well as congestion status of transit nodes, as shown in the following template:¶
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Namespace-ID | TBD_2 | Length=2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Accumulated Delay | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Hop Count | Status Bitmap | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
To be added to a future version of this document.¶
The security considerations of IOAM in general are discussed in [RFC9197]. The Template Option-Type may be used for reconnaissance, which in turn can facilitate other types of attacks. As in other types of IOAM data fields, a malicious attacker can manipulate the field values in order to create a false illusion of nonexistent network issues or prevent the detection of actual ones.¶