Internet-Draft Fixed IOAM Option July 2026
Mizrahi, et al. Expires 22 January 2027 [Page]
Workgroup:
IPPM
Internet-Draft:
draft-mbci-ippm-ioam-template-option-03
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 22 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  | Template-Aux  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~       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 are can be defined by an operator for a specific deployment.
Template-Aux:
An 8-bit length field for template-dependent usage. If a template does not make use of the data field, the field SHOULD be populated with the length of the template data in multiples of 4 octets. (Please note that since the template format is fixed and defined per the template ID, and the IOAM option header includes a field that designates the overal option data length, the length of the template data is in fact already implied.)
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           |  TmplID: Agg  |     FEP       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |          IOAM Data Param                      | AggrF |  Flags|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Aggregate                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                Auxil-data Node-Id             |  Hop Count    |
   +---------------------------------------------------------------+


Figure 2: Aggregation Template

The fields of the template correspond to their counterparts that are defined in [I-D.cxx-ippm-ioamaggr], along with a more detailed discussion. For their readers convenience, the most important aspects of the definition are included here.

FEP (Future Extension Point
: This field is reserved for future extensions. It is similar to a reserved field with the difference that implementations may choose to customize it for their purpose. It can be used, for example, to define operator-specific or proprietary sub-templates for specific categories of aggregation. The FEP value SHOULD be set to 0 if there is no specific use. IOAM transit nodes MUST NOT change it. (Note, it is an item for discussion whether to set the FEP value to 12 instead of 0, i.e. to the length of the template data.)
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, maintained in an IOAM data parameter registry. Note, it is conceivable to subject IOAM data parameters to standardization and/or introduce a separate IANA registry at some point in the future. Furthermore, it is conceivable that the IOAM data parameter ID space will be divided to allow coexistence for both standardized as well as proprietary IOAM data parameters.
AggrF (Aggregation Function):
This 4-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 aggregation functions are defined: Sum (0), Min (1), Max (2), Average (3). (Please note that other aggregation functions are possible, e.g. count, but their inclusion is subject for further discussion.)
Flags:

This 4-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: Aggregation Function 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 aggregation functions min and max, this field is used to identify the node at which the the min or max was encountered. In 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 can be accessed at https://github.com/INSRapperswil/green-path-optimizer.

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>.
[RFC7942]
Sheffer, Y. and A. Farrel, "Improving Awareness of Running Code: The Implementation Status Section", BCP 205, RFC 7942, DOI 10.17487/RFC7942, , <https://www.rfc-editor.org/info/rfc7942>.
[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, L., 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-06, , <https://datatracker.ietf.org/doc/html/draft-cxx-ippm-ioamaggr-06>.
[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-06, , <https://datatracker.ietf.org/doc/html/draft-filsfils-ippm-path-tracing-06>.
[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-08, , <https://datatracker.ietf.org/doc/html/draft-mzbc-ippm-transit-measurement-option-08>.
[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