Internet-Draft IOAM Using MNA February 2025
Gandhi & Mirsky Expires 17 August 2025 [Page]
Workgroup:
MPLS Working Group
Internet-Draft:
draft-ietf-mpls-mna-ioam-00
Published:
Intended Status:
Standards Track
Expires:
Authors:
R. Gandhi, Ed.
Cisco Systems, Inc.
G. Mirsky, Ed.
Ericsson

Supporting In Situ Operations, Administration and Maintenance Using MPLS Network Actions

Abstract

In situ Operations, Administration, and Maintenance (IOAM), defined in RFC 9197, is an on-path telemetry method to collect and transport the operational state and telemetry information using, for example, Preallocated or Incremental IOAM Option, that can be used to calculate various performance metrics. RFC 9326 defined the IOAM Direct Export (IOAM-DEX) Option in which the operational state and telemetry information are collected according to the specified profile and exported in a manner and format defined by a local policy.

MPLS Network Actions (MNA) techniques are meant to indicate actions to be performed on any combination of Label Switched Paths (LSPs), MPLS packets, and the node itself, and also to transfer data needed for these actions. This document explores the MNA mechanisms to collect and transport the on-path operational state, and telemetry information IOAM data fields, including IOAM-DEX Option.

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 17 August 2025.

Table of Contents

1. Introduction

In situ OAM (IOAM) [RFC9197] is an on-path telemetry method to collect and transport the operational state and telemetry information that can be used to calculate various performance metrics. Several IOAM Option types (e.g., Pre-allocated and Incremental) use the user packet to collect the operational state and telemetry information. Such a mechanism transports the collected information to an IOAM decapsulating node (typically located at the edge of the IOAM domain within the data packet). IOAM Direct Export (IOAM-DEX) [RFC9326] is an IOAM Option type. In IOAM-DEX, the operational state and telemetry information are collected according to the specified profile and exported in a manner and format defined by a local policy.

MPLS Network Actions (MNA) techniques [I-D.ietf-mpls-mna-fwk] indicate actions to be performed on any combination of Label Switched Paths (LSPs), MPLS packets, the node itself, and also allow for the transfer of data needed for these actions. [I-D.ietf-mpls-mna-hdr] defines mechanisms for carrying Network Action Sub-Stack (NAS) as part of the MPLS label stack, i.e., In-Stack Data (ISD) MNA solution. [I-D.jags-mpls-ps-mna-hdr] defines mechanisms for carrying MNA and Ancillary Data (AD) outside the MPLS label stack, i.e., as Post-Stack Data (PSD) MNA solution. [I-D.ietf-mpls-mna-usecases] describes various use cases that can be realized using MNA techniques, including IOAM Pre-allocated, Incremental, and IOAM-DEX Option types.

This document describes how MNA can be used for collecting and transporting on-path operational state and telemetry information using IOAM data fields for IOAM Option types, including IOAM-DEX. Specifying the mechanism of exporting collected information in case of the IOAM-DEX Option is outside the scope of this document.

2. Conventions Used in this Document

2.1. Acronyms

OAM: Operatons, Administration, and Maintenance

HBH: Hop-By-Hop

I2E: Ingress-To-Egress

IHS: Ingress-To-Egress (I2E), Hop-By-Hop (HBH) or Select Scope

IOAM: In situ OAM

IOAM-DEX: IOAM Direct Export

IOAM-DEX-ISD-MNA: IOAM Direct Export as In-Stack Data MPLS Network Action

ISD: In-Stack Data

PSD: Post-Stack Data

PSH: Post-Stack Header

LSP: Label Switched Path

LSE: Label Stack Entry

MPLS: Multiprotocol Label Switching

MNA: MPLS Network Action

NAI: Network Action Indicator

NAS: Network Action Sub-stack

NASL: Network Action Sub-stack Length

2.2. Requirements 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.

3. Applicability of IOAM Option Types in an MPLS Network

Pre-allocated, Incremental, and Edge-to-Edge IOAM Option types [RFC9197] use user packets to collect and transport the operational state and telemetry information. In some environments, for example, data center networks, this technique is useful as the available bandwidth and the use of jumbo frames can accommodate the increase of the packet payload. This document dedefines the PSD MNA-based ([I-D.jags-mpls-ps-mna-hdr]) solution supporting Pre-allocated, Incremental, and Edge-to-Edge IOAM Option types (Section 4.1).

However, for some use cases, e.g., mobile backhaul, in which network resources are closely controlled, collecting and transporting the telemetry information withon a data packet may noticeably decrease the cost-efficiency of network operations. Although the operational state and telemetry information are essential for network automation (Section 4 of [RFC8969]), its delivery is not as critical as user packets. As such, collecting and transporting the operational state and telemetry information using the management plane is a viable option for some environments. IOAM-DEX [RFC9326] is capable of collecting all of IOAM data fields defined in [RFC9197]. The processing and transport of the collected information are controlled by a local policy which is outside the scope of this specification. The performance considerations discussed in Section 5 of [RFC9326] are applicable here. In this document, the realizations of IOAM-DEX using ISD MNA approach ([I-D.ietf-mpls-mna-hdr] and PSD MNA ([I-D.jags-mpls-ps-mna-hdr]) are defined in Section 4.2 and Section 4.1 respectivly.

4. Realization of IOAM as an MPLS Network Action

4.1. Signaling of IOAM as a Post-Stack Data MPLS Network Action

The presence of a PSD MNA is signaled using a Network Action Sub-stack is defined in [I-D.jags-mpls-ps-mna-hdr] and is shown in Figure 1

  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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |               MNA Label               | TC  |0|  TTL          |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |  Opcode     |      Data (Format B)    |P|IHS|0|U| NASL  | NAL |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |  Opcode     |      Data (Format C)          |0|U| Data  | NAL |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                Label                  | TC  |1|  TTL          |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                Post-Stack Header (Optional)                   |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ~                           IOAM                                ~
 ~                      Post-stack Data                          ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ~                          Payload                              ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: An Example of Network Action Sub-Stack Signaling a Post Stack Data MNA.

The MNA Label is defined in [I-D.ietf-mpls-mna-hdr].

The IHS scope field defined in [I-D.ietf-mpls-mna-hdr] is used to indicate that I2E or HBH or Select processing is required for the Network Action and Ancillary Data.

If both edge and intermediate nodes need to process the IOAM data fields then IHS scope MUST be set to "HBH, value 0x1". If only edge nodes need to process the IOAM data fields then IHS scope MUST be set to "I2E, value 0x0". The HBH scope allows to skip the IOAM data processing on the intermediate nodes i.e., avoids the need to parse all IOAM data fields to detect the HBH option type.

The U Flag for Unknown Action Handling is specified in [I-D.ietf-mpls-mna-hdr].

The Network Action Sub-Stack Length (NASL) is set as specified in [I-D.ietf-mpls-mna-hdr].

Opcode (7 bits) value is TBA1 (for In-Stack Network Action with PSD for IOAM) carrying IOAM Option-Type(s) defined in [RFC9197]. Opcode value is TBA2 (for In-Stack Network Action with PSD for IOAM DEX) carrying the IOAM DEX Option-Type defined in [RFC9326]. The In-Stack IOAM and IOAM DEX Network Actions can be carried in Format B or Format C LSE.

A packet may carry more than one In-Stack Network Actions with PSD for IOAM and IOAM DEX in an MNA Sub-Stack (for example, for different IOAM Option-Types). There may be a different In-Stack Network Actions (other than for the IOAM) in an MNA Sub-Stack.

Data (10 bits, next to the Opcode field) in LSE contains the offset for PSD for this In-Stack Network Action in 4-octets units after BOS LSE to the start of the Post-Stack Network Action Opcode. Due to the Post-Stack Header, minimum value for the offset is 1 (i.e, 4-octets).

Additional IOM data fields may be added in the In-Stack NAS addtional data LSE Format D as required by the network action.

Length of Network Action (NAL) is set to 0 if no additional LSE Format D is added for the network action.

The Post-Stack Network Action encoding contains IOAM Post-Stack Network Action Opcode, length in number of 4-octet units, and IOAM Option-Type with IOAM data fields in ancillary data as shown in Figure 2. The IOAM data fields MUST follow the definitions corresponding to their IOAM-Option-Types (e.g., see Section 4.4 of [RFC9197] and Section 3 of [RFC9326]).

  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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |              Label                    | TC  |1|  TTL          |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |N N N N|Version| PS-HDR-LEN    | TYPE = POST-STACK-HDR-MNA = 1 |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|
 |PS-NA-OPCODE |R|U|   PS-NAL    |R|R| BLOCK-NUMBER|IOAM-OPT-TYPE|
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 ~                         IOAM Data                             ~
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: An Example of Post-Stack Data MNA Carrying IOAM.

The PSD MNA carrying IOAM is shown in Figure 2. The following fields defined in [I-D.jags-mpls-ps-mna-hdr]:

NNNN:
The value of the first nibble is defined in [I-D.jags-mpls-ps-mna-hdr].
PS-HDR-LEN (8 bits):
IOAM PSD MNA Total Length in four-octet units. This excludes the Post-Stack Header.
TYPE:
TYPE is defined for POST-STACK-HDR-MNA (value 1) in [I-D.jags-mpls-ps-mna-hdr].

The Post-Stack Network Action encoding contains IOAM Post-Stack Network Action Opcode, length in number of 4-octet units, and IOAM Option-Type with IOAM data fields in ancillary data as shown in Figure 1. The IOAM data fields MUST follow the definitions corresponding to their IOAM-Option-Types (e.g., see Section 4.4 of [RFC9197] and Section 3 of [RFC9326]).

 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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |  Label                                | TC  |1|  TTL          |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+
 |N N N N|Version| PS-HDR-LEN    | TYPE = POST-STACK-HDR-MNA = 1 |PSH
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|<-+
 |PS-NA-OPCODE |R|U|   PS-NAL    |R|R| BLOCK-NUMBER|IOAM-OPT-TYPE|  |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  I
 |                                                               |  O
 |                                                               |  A
 ~   IOAM Option and Data Space [RFC9197] [RFC9326]              ~  M
 |                                                               |  |
 |                                                               |  |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+
 .                                                               .
 .                                                               .
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+
 |PS-NA-OPCODE |R|U|   PS-NAL    |R|R| BLOCK-NUMBER|IOAM-OPT-TYPE|  |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  I
 |                                                               |  O
 |                                                               |  A
 ~   IOAM Option and Data Space [RFC9197] [RFC9326]              ~  M
 |                                                               |  |
 |                                                               |  |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+
 |                                                               |
 |                                                               |
 ~                 Optional Payload + Padding                    ~
 |                                                               |
 |                                                               |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: Example Post-Stack Network Actions with IOAM and IOAM Direct Export Data Fields

The Post-Stack Header (PSH) is added with the following fields as defined in [I-D.jags-mpls-ps-mna-hdr].

NNNN:
The first 4-bit (value TBA6) as defined in [I-D.jags-mpls-ps-mna-hdr].
PS-HDR-LEN (8 bits):
Post-Stack Header Total Length in 4-octet units. This excludes the Post-Stack Header.
TYPE:
TYPE is defined for POST-STACK-HDR-MNA (value 1) in [I-D.jags-mpls-ps-mna-hdr].

An IOAM data fields is added in the Post-Stack Network Action containing the following fields:

PS-NA-OPCODE:
IANA allocated value TBA3 (Post-Stack Network Action for IOAM) for IOAM Option-Type defined in [RFC9197], and TBA4 (Post-Stack Network Action for IOAM DEX) for IOAM DEX Option-Type defined [RFC9326]. Editor's Note: Post-Stack Network Action Opcode value TBA3 can be the same value as In-Stack Network Action Opcode value TBA1 and opcode TBA4 can be the same value as opcode TBA2 to avoid creating a mapping table.
IOAM-OPT-TYPE:
7-bit field defining the IOAM Option-Type, as defined in the "IOAM Option-Type Registry" specified in [RFC9197] and [RFC9326]).
IOAM-HDR-LEN:
7-bit unsigned integer. Length of the IOAM data fields in 4-octet units. This excludes the first 4-octet unit starting from PS-NA-OPCODE.
IOAM Option and Data Space:
IOAM data fields as specified by the IOAM-OPT-Type field. IOAM data fields are defined corresponding to the IOAM-Option-Type (e.g., see Section 4.4 of [RFC9197] and Section 3 of [RFC9326].
U:
The Unknown Post-Stack Network Action handling including unsupported IOAM Option-Type or IOAM data fields handling.
BLOCK-NUMBER:
The Block Number for alternate marking method can be used to aggregate the IOAM data collected in data plane, e.g., to compute measurement metrics for each block of a data flow. It is also used to correlate the IOAM data on different nodes.

4.2. Realization of IOAM-DEX as an In-Stack Data MPLS Network Action

[I-D.ietf-mpls-mna-usecases] recognizes the importance of IOAM in MPLS networks and lists it as one of the use cases that might be supported using MNA techniques. [I-D.ietf-mpls-mna-fwk] defines the architectural elements that compose MNA. This document uses all the elements of the IOAM-DEX Option-Type format defined in [RFC9326] to support IOAM-DEX in an MPLS network using MPLS Network Action (MNA) framework [I-D.ietf-mpls-mna-fwk] and architecture as in-stack data (ISD) MNA [I-D.ietf-mpls-mna-hdr]. The IOAM-DEX in MNA header is using LSE Format D, as defined in Section 4.4 [I-D.ietf-mpls-mna-hdr] mapping IOAM-DEX Optin Type format [RFC9326]. In addition to the requirement to preserve the Bottom of Stack field, the most significant bit in LSE Format D is always set to 1 avoiding a possible mix-up of the LSE with one of the Base Special Purpose Labels. The format of IOAM-DEX in MNA is shown in Figure 4.

 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|         Namespace-ID          |    Resv   |0|     Flags     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|            IOAM-Trace-Type-MNA            |S|O|R| Ext-Flags |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Flow ID MNA                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                 Sequence Number MNA (Optional)                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 4: IOAM-DEX Option Type Format for the In-Stack Data MPLS Network Action Framework

Where fields are defined as follows:

  • Namespace-ID is a 16-bit identifier of the IOAM Namespace, as defined in [RFC9197].
  • S is a one-bit the Bottom of Stack [RFC3032].
  • Flags is an eight-bit field comprised of eight one-bit subfields. The subfields in the Flags field are allocated by IANA in IOAM DEX Flags registry, as defined in Section 4.2 of [RFC9326].
  • IOAM-Trace-Type-MNA is a 22-bit field. The interpretation of bit positions in the IOAM-Trace-Type-MNA is as specified in IANA's IOAM Trace-Type registry [IANA-IOAM-Trace-Type] from Bit 0 through Bit 21.
  • O is the one-bit flag identical to the interpretation of Bit 22 variable-length Opaque State Snapshot in IANA's IOAM Trace-Type registry [IANA-IOAM-Trace-Type].
  • R (Reserved) is a one-bit flag identical to the interpretation of Bit 23 in IANA's IOAM Trace-Type registry [IANA-IOAM-Trace-Type]. It MUST be zeroed on the transmission and ignored on receipt. Similarly to [RFC9197], it is reserved to allow for future extensions of the IOAM-Trace-Type-MNA bit field.
  • The concatenation of IOAM-Trace-Type-MNA, O, and R fields, explained above, is identical to IOAM-Trace-Type in the interpretation of its bits, assigned in IANA's IOAM Trace-Type registry [IANA-IOAM-Trace-Type]. Also, note that the Bit 7 field, i.e., checksum complement, is handled as defined in [RFC9326].
  • Ext-Flags is a six-bit field comprised of six one-bit subfields. The allocation of the subfields in the Ext-Flags field is according to Section 4.3 of [RFC9326]. The allocated flags indicate the presence of the optional Flow ID and/or Sequence Number fields in the IOAM-DEX-ISD-MNA header. The length of the Ext-Flags field in IOAM-DEX Option-Type in MNA is shorter by two one-bit fields compared to the length of the Extension Flags field defined in Section 3.2 of [RFC9326]. Mapping of these two bit positins is for further study. Figure 5 displays the detailed format of the Ext-Flags field.
  • Optional fields, i.e., Flow ID and Sequence Number, according to [RFC9326], immediately follow the Reserved field used to align optional fields at the four-octet word boundary. In the case of IOAM-DEX in MNA, such alignment can be achieved without using padding.
  • Flow ID MNA is an optional four-octet field. The semantics of the Flow ID MNA field is as of the Flow ID field defined in Section 3.2 of [RFC9326]. The most significant bit MUST be set to 1. Bit 23 MUST be set according to the definition of Bottom of Stack field in [RFC3032].
  • Sequence Number MNA is an optional four-octet field. The semantics of the Sequence Number MNA field is as of the Sequence Number field defined in Section 3.2 of [RFC9326]. The most significant bit MUST be set to 1. Bit 23 MUST be set according to the definition of Bottom of Stack field in [RFC3032]. In MPLS network environments where a label stack information is used for load-balancing flows, the 19-bit-long part of the Sequence Number MNA, starting from the Bit 1 position of the LSE, MUST remain immutable for a particular packet flow that the value of the Flow ID MNA field identifies. In MPLS networks, where other load-balancing techniques are used, all bits of the Sequence Number MNA field can be variated.
 0 1 2 3 4 5
+-+-+-+-+-+-+
|F|S|U|U|U|U|
+-+-+-+-+-+-+
Figure 5: Ext-Flags Field Format

Where fields are defined as follows:

  • F - one-bit flag. When the flag is set to 1, it indicates the presence of the Flow ID field in the IOAM-DEX-ISD-MNA header.
  • S - one-bit flag. When the flag is set to 1, it indicates the presence of the Sequence Number field in the IOAM-DEX-ISD-MNA header.
  • U - unassigned one-bit flag. It MUST be zeroed on transmission and the value MUST be ignored upon receipt.

To support the direct export of the operational state and telemetry information, the IOAM-DEX-ISD-MNA blob (binary large object), as shown in Figure 4 can be placed as part of the ISD block in an MPLS label stack according to the MNA encoding principles defined in [I-D.ietf-mpls-mna-hdr]. Using the IHS field, the IOAM-DEX-ISD-MNA can be performed in Hop-by-Hop, Ingress-to-Egress, or Select modes [I-D.ietf-mpls-mna-fwk] of collecting the operational state and telemetry information, as MNA Opcode (Figure 6). Policies controlling the processing of the collected operational state and telemetry information, and its transport are outside the scope of this document.

 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               MNA Label               | TC  |0|    TTL        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Opcode = TBA3 |        Data           |P|IHS|0| Res |U|  NASL |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                       IOAM-DEX-ISD-MNA                        ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 6: An Example of IOAM-DEX Encapsulation as an MNA Opcode

Where the enclosed elements are defined as follows:

  • MNA bSPL is a base Special Purpose Label assigned by IANA per the request in [I-D.ietf-mpls-mna-hdr].
  • S - the Bottom of Stack field [RFC3032].
  • P, IHS, Res, U, and NASL fields are as specified in Section 4.2 of [I-D.ietf-mpls-mna-hdr].
  • NASL - number of LSEs that compose the IOAM-DEX-ISD-MNA blob.
  • Opcode is MNA-IOAM-DEX opcode (TBA3) assigned by IANA Section 6.1.
  • IOAM-DEX-ISD-MNA - IOAM Direct Export in In-Stack Data MPLS Network Action encoding

5. Considerations for IOAM and IOAM Direct Export in MPLS Networks

5.1. Ingress-To-Egress Scope IOAM and IOAM Direct Export Network Actions

The I2E IOAM data fields carry the IOAM Option-Type(s) that require processing on the encapsulating and decapsulating nodes only.

The IOAM Option-Type carried can be IOAM Edge-To-Edge Option-Type (value 3) defined in [RFC9197] as well as DEX Option-Type (value 4) defined in [RFC9326]. The I2E IOAM data fields SHOULD NOT carry any IOAM Option-Type that require IOAM processing on the intermediate nodes as it will not be processed by them when IHS scope is set to "I2E, value 0x0".

5.1.1. Procedure

The I2E IOAM and IOAM Direct Export Network Action procedure is summarized as following:

  • The encapsulating node inserts an MNA Sub-Stack with the MNA Label (bSPL value TBA5) with IHS scope set to "I2E, value 0x0", one or more In-Stack Network Actions with PSD and one or more IOAM data fields in the Post-Stack Network Actions in the MPLS packet.
  • The intermediate nodes do not process the HBH IOAM data fields.
  • The decapsulating node MAY punt the IOAM data fields from the packet with the receive timestamp to the slow path for processing. The receive timestamp is required by the various I2E OAM use-cases, including streaming telemetry. Note that the packet is not necessarily punted to the control-plane.
  • The decapsulating node processes the IOAM data fields using the procedures defined in [RFC9197] and [RFC9326]. An example of IOAM processing is to export the IOAM data fields for streaming telemetry.
  • The decapsulating node MUST remove the Network Actions and IOAM data fields from the received packet. The decapsulated packet is forwarded downstream or terminated locally similar to the regular data packets.

5.2. Hop-By-Hop Scope IOAM and IOAM Direct Export Network Actions

The HBH IOAM data fields carry the Option-Type(s) that require processing at the intermediate and/or encapsulating and decapsulating nodes.

The IOAM Option-Type carried can be IOAM Pre-allocated Trace Option-Type (value 0), IOAM Incremental Trace Option-Type (value 1) and IOAM Proof of Transit (POT) Option-Type (value 2), and Edge-To-Edge Option-Type (value 3) defined in [RFC9197] as well as DEX Option-Type (value 4) defined in [RFC9326].

Editor's note: IPv6 option is not supported for HBH IOAM Incremental Trace Option-Type (value 1). Similarly, MPLS network action is also not supported for HBH IOAM Incremental Trace Option-Type (value 1).

5.2.1. Procedure

The Hop-By-Hop IOAM and IOAM Direct Export Network Action procedure is summarized as following:

  • The encapsulating node inserts an MNA Sub-Stack containing MNA Label (bSPL value TBA5), with IHS scope set to "HBH, value 0x1", one or more In-Stack Network Actions for IOAM with PSD, and one or more IOAM data fields in the Post-Stack Network Actions in the MPLS packet.
  • The intermediate node enabled with HBH IOAM function processes the data packet including the IOAM data fields as defined in [RFC9197] and [RFC9326] when the node recognizes the HBH scope in the MNA Sub-Stack.
  • The intermediate node MAY punt the IOAM data fields from the packet with the receive timestamp to the slow path for processing when the node recognizes the HBH scope. The receive timestamp is required by the various HBH OAM use-cases, including streaming telemetry. Note that the packet is not necessarily punted to the control-plane.
  • The intermediate node forwards the data packet downstream.
  • The processing on the decapsulating node is same as I2E case.

Both HBH and I2E Scope IOAM may be required in an MPLS packet. In this case, the Post-Stack Network action with HBH IOAM data fields MUST be added after the BOS and before the Post-Stack Network Action with I2E IOAM data fields. This way, the RLD for the intermediate nodes is minimized.

5.3. Node Capability

The decapsulating node that has to remove the IOAM data fields and perform the IOAM function may not be capable of supporting it. The encapsulating node needs to know if the decapsulating node can support the IOAM function. The signaling extension for this capability exchange is outside the scope of this document.

The intermediate node that is not capable of supporting the IOAM functions defined in this document, can simply skip the IOAM processing.

The node that does not recognize the MNA Label received at the top of the label stack will drop the packet.

5.4. Nested MPLS Encapsulation

When a packet is received with MPLS Encapsulated Network Action for IOAM, the nested MPLS encapsulating node that needs to add different Network Action for IOAM, the node MUST add a new MNA Sub-Stack with the Network Action for IOAM as part of the new MPLS encapsulation.

5.5. Readable Label Depth Consideration

The encapsulating node needs to make sure that the IOAM data fields in Post-Stack Network Action are added within the Readable Label Depth (RLD) of the downstream MNA capable nodes in order for them to be able to process the IOAM.

6. IANA Considerations

6.1. IOAM, IOAM-DEX as PSD MNA, and IOAM-DEX-ISD-MNA as an MPLS Network Action Opcodes

IANA is requested to codepoints from its Network Action Opcodes registry (creation requested in [I-D.ietf-mpls-mna-hdr]) as specified in Table 1.

Table 1: IOAM-DEX as an In-Stack Data MPLS Network Action Opcode
Opcode Description Reference
TBA1 In-Stack Network Action with PSD for IOAM This document
TBA2 In-Stack Network Action with PSD for IOAM Direct Export This document
TBA3 IOAM-DEX as an In-Stack Data MPLS Network Action Indicator This document

6.2. Post-Stack Network Action Opcodes

The IOM and IOAM DEX Network Action Opcodes from Post-Stack Network Action Opcode registry (to be created by in [I-D.jags-mpls-ps-mna-hdr]) are defined in this document as follows.

Editor's Note: Post-Stack Network Action Opcode value TBA3 can be the same value as In-Stack Network Action Opcode value TBA1 and opcode TBA4 can be the same value as opcode TBA2 to avoid creating a mapping table.

Table 2: Post-Stack Network Action Opcodes
Value Description Reference
TBA4 Post-Stack Network Action for IOAM This document
TBA5 Post-Stack Network Action for IOAM Direct Export This document

7. Security Considerations

Security considerations discussed in [RFC9197], [RFC9326], and [I-D.ietf-mpls-mna-fwk] apply to this document.

The usage of MPLS extensions defined in this document for IOAM is intended for deployment in a single network administrative domain. As such, it assumes that the operator enabling the IOAM operation has previously verified the integrity of the path. Still, operators need to properly secure the IOAM in the domain to avoid malicious configuration and use, which could include injecting malicious IOAM packets into the domain.

8. References

8.1. Normative References

[I-D.ietf-mpls-mna-fwk]
Andersson, L., Bryant, S., Bocci, M., and T. Li, "MPLS Network Actions (MNA) Framework", Work in Progress, Internet-Draft, draft-ietf-mpls-mna-fwk-15, , <https://datatracker.ietf.org/doc/html/draft-ietf-mpls-mna-fwk-15>.
[I-D.ietf-mpls-mna-hdr]
Rajamanickam, J., Gandhi, R., Zigler, R., Song, H., and K. Kompella, "MPLS Network Action (MNA) Sub-Stack Solution", Work in Progress, Internet-Draft, draft-ietf-mpls-mna-hdr-10, , <https://datatracker.ietf.org/doc/html/draft-ietf-mpls-mna-hdr-10>.
[I-D.jags-mpls-ps-mna-hdr]
Rajamanickam, J., Gandhi, R., Zigler, R., Li, T., and J. Dong, "Post-Stack MPLS Network Action (MNA) Solution", Work in Progress, Internet-Draft, draft-jags-mpls-ps-mna-hdr-04, , <https://datatracker.ietf.org/doc/html/draft-jags-mpls-ps-mna-hdr-04>.
[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>.
[RFC3032]
Rosen, E., Tappan, D., Fedorkow, G., Rekhter, Y., Farinacci, D., Li, T., and A. Conta, "MPLS Label Stack Encoding", RFC 3032, DOI 10.17487/RFC3032, , <https://www.rfc-editor.org/info/rfc3032>.
[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>.
[RFC9326]
Song, H., Gafni, B., Brockners, F., Bhandari, S., and T. Mizrahi, "In Situ Operations, Administration, and Maintenance (IOAM) Direct Exporting", RFC 9326, DOI 10.17487/RFC9326, , <https://www.rfc-editor.org/info/rfc9326>.

8.2. Informational References

[I-D.ietf-mpls-mna-usecases]
Saad, T., Makhijani, K., Song, H., and G. Mirsky, "Use Cases for MPLS Network Action Indicators and MPLS Ancillary Data", Work in Progress, Internet-Draft, draft-ietf-mpls-mna-usecases-15, , <https://datatracker.ietf.org/doc/html/draft-ietf-mpls-mna-usecases-15>.
[IANA-IOAM-Trace-Type]
IANA, "IOAM Trace-Type", <https://www.iana.org/assignments/ioam/ioam.xhtml#trace-type>.
[RFC8969]
Wu, Q., Ed., Boucadair, M., Ed., Lopez, D., Xie, C., and L. Geng, "A Framework for Automating Service and Network Management with YANG", RFC 8969, DOI 10.17487/RFC8969, , <https://www.rfc-editor.org/info/rfc8969>.

Acknowledgments

The authors would like to thank Patrick Khordoc, Sagar Soni, Shwetha Bhandari, Vengada Prasad Govindan, Tarek Saad, Stewart Bryant, Xiao Min, Jaganbabu Rajamanickam, and Cheng Li for providing many useful comments. The authors would also like to thank Mach Chen, Andrew Malis, Matthew Bocci, and Nick Delregno for the MPLS-RT expert review of the early version of this document.

Contributors

The following people have substantially contributed to this document:


Zafar Ali
Cisco Systems, Inc.
Email: zali@cisco.com

Loa Andersson
Huawei Technologies
Email: loa@pi.nu

Mohamed Boucadair
Orange
35000 Rennes
France
Email: mohamed.boucadair@orange.com

Frank Brockners
Cisco Systems, Inc.
Hansaallee 249, 3rd Floor
DUESSELDORF, NORDRHEIN-WESTFALEN  40549
Germany
Email: fbrockne@cisco.com

Bruno Decraene
Orange
Email: bruno.decraene@orange.com

Voitek Kozak
Comcast
Email: Voitek_Kozak@comcast.com

Tony Li
Juniper Networks
Email: tony.li@tony.li

Haoyu Song
Futurewei Technologies
United States of America
Email: haoyu.song@futurewei.com

Bin Wen
Comcast
Email: Bin_Wen@cable.comcast.com

Authors' Addresses

Rakesh Gandhi (editor)
Cisco Systems, Inc.
Canada
Greg Mirsky (editor)
Ericsson