Internet-Draft Fixed IOAM Option June 2026
Mizrahi, et al. Expires 1 January 2027 [Page]
Workgroup:
IPPM
Internet-Draft:
draft-mbci-ippm-ioam-template-option-02
Published:
Intended Status:
Standards Track
Expires:
Authors:
T. Mizrahi
Huawei
F. Brockners
Cisco
A. Clemm
Sympotech
J. Iurman
University of Liege
S. Bhandari
Databricks
T. Zhou
Huawei
R. Bister
Ostschweizer Fachhochschule - OST

In Situ Operations, Administration, and Maintenance (IOAM) Template Option

Abstract

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.

Status of This Memo

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 1 January 2027.

Table of Contents

1. Introduction

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.

2. Conventions

2.1. Requirement Language

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.

2.2. Terminology

Abbreviations used in this document:

IOAM:
In-situ Operations, Administration, and Maintenance
OAM:
Operations, Administration, and Maintenance

The terms Option-Type, encapsulating node, decapsulating node, and transit node are defined in [RFC9197].

3. Use Cases

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.

4. Requirements for the IOAM Template Option-Type

This section lists requirements for the IOAM Template Option-Type:

5. In situ Template Option-Type

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        ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 1: Template Option-Type

An IOAM node that complies to this draft MUST support the following fields, as depicted in Figure 1:

Namespace-ID:
A 16-bit namespace identifier, as defined in [RFC9197].
Template-ID:
An 8-bit identifier that specifies the template that follows. A new registry is defined for this field, as specified in Section 7. The value 0 has been assigned, indicating "No Option Data". Assignments of values 1 to 127 are controlled by IANA. Values 128 to 255 can be defined by an operator for a specific deployment.
Length:
An 8-bit length that specifies the size of the Template-Data in multiples of 4 octets.
Template-Data:
The data that follows the Template-ID has a constant length. The semantics and length of the data are determined by the Template-ID. The option data might consist of more than one sub-field.

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.

6. Examples

The section lists examples of how the template option can be used.

6.1. IOAM Data Aggregation Along The Path

[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=3    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          IOAM Data Param      |  Aggregator   |     Flags     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Aggregate                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Auxil-data Node-Id             |  Hop Count    |
   +---------------------------------------------------------------+

Figure 2: Aggregation Template
IOAM Data Param:
This field identifies the data parameter that is to be aggregated across the nodes. It MUST be set by the IOAM encapsulating node. IOAM transit nodes MUST NOT change it. Identification of data parameters is dependent on the administrative domain and assigned by the network administrator. It is conceivable to subject this to standardization and/or the introduction of a separate IANA registry at some point in the future.
Aggregator:
This 8-bit field identifies the aggregation function that is to be applied. Its value MUST be set by the IOAM encapsulating node. IOAM transit nodes MUST not change it. The following aggregators are defined: Sum, Min, Max, Average.
Flags:

This 8-bit field allows to indicate errors that were encountered when attempting to perform the requested aggregation along the path. An intermediate node that encounters an error during processing of the IOAM Aggregation that prevents it from updating the aggregate as requested MUST set the corresponding flag to 1. In order to facilitate troubleshooting, it also MUST set the value of the Auxil-data Node-ID field in the template to its own Node-ID. The encapsulating node MUST set the value of Flags to zero upon transmission. When an intermediate node encounters receives a packet in which any of the Flags are non-zero, the node MUST NOT perform further IOAM operations on that packet; instead, the IOAM data MUST be forwarded as-is unchanged. The following flags are defined:

Flag 1: Aggregator not supported
Flag 2: Unsupported IOAM data parameter
Flag 3: Unsupported Namespace
Flag 4: Any other error
Aggregate:
This 32-bit field contains the aggregated value. Its value is initialized by the encapsulating node,in general by simply recording the value of its data parameter that is to be aggregated. The field is updated by each subsequent node pre the requested aggregation, including IOAM transit nodes as well as the IOAM decapsulating node (prior to performing decapsulation).
Auxil-data Node ID
: For certain aggregators such as min and max, this field can be used to identify the node at which the the min or max was encountered. In the case of errors that are encountered along the path, this field is used to indicate the node at which the error occurred, as indicated when a corresponding error flag has been set.
Hop Count
: Records the number of nodes along the path that successfully processed the IOAM aggregation request. It is set to 1 by the encapsulating node and is incremented by each subsequent node. One use for this concerns facilitating the computation of an average (by dividing a sum by the number of nodes).

Please note that the template for IOAM data aggregation is included here only to illustrate possible use cases for the IOAM template option. For a more detailed discussion of IOAM data aggregation, of the data parameter fields involved, as well as of associated design decisions, please refer to [I-D.cxx-ippm-ioamaggr].

6.2. Transit Measurement Template

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                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 3: Transit Measurement Template
Accumulated Delay:
represents the sum of the transit delay values in nanoseconds along the path of the packet, including the current node.
Hop Count/Status Bitmap:
indicates the devices along the path that have experienced congestion. Hop Count is a one-octet field that indicates the number of hops since the encapsulating node, and is updated by each transit node. Status Bitmap is a three octet field that represents the congestion status of each transit node along the path. The value '1' indicates that the current packet was enqueued in a queue that is congested.

7. IANA Considerations

To be added to a future version of this document.

8. Implementation Status

A Proof-of-Concept of the template option along with the aggregation trace template has been implemented at OST. It is planned to have the Proof-of-Concept feature in a hackathon project at IETF 126 July 2026 in Vienna. More details will be provided in a future version of the document.

9. Security Considerations

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.

10. References

10.1. Normative References

[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.
[RFC9197]
Brockners, F., Ed., Bhandari, S., Ed., and T. Mizrahi, Ed., "Data Fields for In Situ Operations, Administration, and Maintenance (IOAM)", RFC 9197, DOI 10.17487/RFC9197, , <https://www.rfc-editor.org/info/rfc9197>.

10.2. Informative References

[I-D.cxx-ippm-ioamaggr]
Clemm, A., Metzger, Bister, R., and S. Dellsperger, "Aggregation Trace Option for In-situ Operations, Administration, and Maintenance (IOAM)", Work in Progress, Internet-Draft, draft-cxx-ippm-ioamaggr-05, , <https://datatracker.ietf.org/doc/html/draft-cxx-ippm-ioamaggr-05>.
[I-D.filsfils-ippm-path-tracing]
Filsfils, C., Abdelsalam, A., Camarillo, P., Yufit, M., Su, Y., Matsushima, S., Valentine, M., and Dhamija, "Path Tracing in SRv6 networks", Work in Progress, Internet-Draft, draft-filsfils-ippm-path-tracing-05, , <https://datatracker.ietf.org/doc/html/draft-filsfils-ippm-path-tracing-05>.
[I-D.mzbc-ippm-transit-measurement-option]
Mizrahi, T., Zhou, T., Belkar, S., and R. Cohen, "The Transit Measurement Option", Work in Progress, Internet-Draft, draft-mzbc-ippm-transit-measurement-option-07, , <https://datatracker.ietf.org/doc/html/draft-mzbc-ippm-transit-measurement-option-07>.
[I-D.ravi-ippm-csig]
Ravi, A., Dukkipati, N., Mehta, N., and J. Kumar, "Congestion Signaling (CSIG)", Work in Progress, Internet-Draft, draft-ravi-ippm-csig-01, , <https://datatracker.ietf.org/doc/html/draft-ravi-ippm-csig-01>.
[I-D.shi-ippm-congestion-measurement-data]
Fioccola, G., Zhou, T., Zhao, G., and Z. Li, "Data Fields for Congestion Measurement", Work in Progress, Internet-Draft, draft-shi-ippm-congestion-measurement-data-06, , <https://datatracker.ietf.org/doc/html/draft-shi-ippm-congestion-measurement-data-06>.
[I-D.xiao-ippm-ioam-trace-extensions]
Min, X., Liu, Y., and C. Lin, "Extensions to IOAM Trace Option for Carrying Fixed-Size Data", Work in Progress, Internet-Draft, draft-xiao-ippm-ioam-trace-extensions-03, , <https://datatracker.ietf.org/doc/html/draft-xiao-ippm-ioam-trace-extensions-03>.

Authors' Addresses

Tal Mizrahi
Huawei
Matam
Haifa 3190501
Israel
Frank Brockners
Cisco Systems, Inc.
Hansaallee 249, 3rd Floor
40549 DUESSELDORF
Germany
Alexander Clemm
Sympotech
Los Gatos, CA,
United States of America
Justin Iurman
University of Liege
10, Allee de la decouverte (B28)
4000 Sart-Tilman
Belgium
Shwetha Bhandari
Databricks
Angkor West Building Bagmane Capital Tech Park Ferns City Doddanekkundi
Mahadevpura Bengaluru, Karnataka 560048
India
Tianran Zhou
Huawei
156 Beiqing Rd.
Beijing
100095
China
Ramon Bister
Ostschweizer Fachhochschule - OST
Switzerland