Internet-Draft | In-situ OAM for MPLS Data plane | November 2022 |
Gandhi, et al. | Expires 9 May 2023 | [Page] |
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. This document defines how IOAM data fields are transported with MPLS data plane encapsulation using MPLS Network Action (MNA) and follows the MNA framework defined in draft-ietf-mpls-mna-fwk.¶
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 9 May 2023.¶
Copyright (c) 2022 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. The term "in-situ" refers to the fact that the IOAM data fields are added to the data packets rather than being sent within the probe packets specifically dedicated to OAM. The IOAM data fields are defined in [RFC9197]. The IOAM data fields are further updated in [I-D.ietf-ippm-ioam-direct-export] for direct export use-cases.¶
This document defines how IOAM data fields are transported with MPLS data plane encapsulations using MPLS Network Action (MNA) and follows the framework defined in [I-D.ietf-mpls-mna-fwk].¶
[I-D.jags-mpls-mna-hdr] defines mechanisms for carrying MNA header and Network Actions Sub-Stack (NASS) above the Bottom of the label stack (BOS) and [I-D.song-mpls-extension-header] defines mechanisms for carrying Post-Stack Data (PSD) in MPLS extension headers (EHs) after the Bottom of the label stack. This document uses these two mechanisms and describes the procedures for carrying IOAM data fields in an MPLS header.¶
Note: This document uses MNA encoding solutions defined in Individual Internet Drafts as examples. The MNA encoding will be updated to align with the MNA solutions in the WG adopted Internet Drafts when they are available.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
The MPLS Network Action (MNA) terminology defined in [I-D.ietf-mpls-mna-fwk] are used in this document.¶
Abbreviations used in this document:¶
Post-Stack Network Action Presence Indicator (P flag)¶
Equal Cost Multi-Path¶
Edge-To-Edge¶
Hop-By-Hop¶
Ingress-to-Egress, Hop-By-Hop or Select Scope¶
In-situ Operations, Administration, and Maintenance¶
Multiprotocol Label Switching¶
MPLS Network Action¶
Operations, Administration, and Maintenance¶
Proof-of-Transit¶
The IOAM extension headers containing different IOAM-Data-Fields are added in the MPLS packet as shown in Figure 1. The IOAM-Data-Fields MUST follow the definitions corresponding to the IOAM-Option-Types (e.g., see Section 4.4 of [RFC9197] and Section 3 of [I-D.ietf-ippm-ioam-direct-export]).¶
An IOAM extension header uses Extension Header (EH) defined in [I-D.song-mpls-extension-header].¶
The 4-Octet Common Header CH) is added with the following fields in the MPLS header as defined in [I-D.song-mpls-extension-header]:¶
IOAM-Data-Fields are added in EHs containing the following fields:¶
The P flag for PNI (Post-Stack Network Action Presence Indicator) defined in [I-D.jags-mpls-mna-hdr] is used in this document to indicate the presence of IOAM Post-Stack Network Action and Ancillary Data.¶
A Post-Stack Network Action Presence Indicator (P flag) MUST be set to "1" to indicate the presence of IOAM-Data-Fields in the MPLS header.¶
The IHS scope field defined in [I-D.jags-mpls-mna-hdr] is used to indicate that E2E or HBH or Select processing is required for the Post-Stack 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 optimize the IOAM data processing on the intermediate nodes and avoids the need to parse all IOAM-Data-Fields to detect HBH option types.¶
The MNA Label used in this document is a Base Special Purpose Label (bSPL value TBA1 to be assigned by IANA), and is referred to as Network Action Sub-Stack Indicator (NASI) in [I-D.jags-mpls-mna-hdr].¶
The Post-Stack Network Action Presence Indicator (P flag) is set to "1" to indicate the presence of IOAM-Data-Fields and the IHS scope is set to "I2E, value 0x0" to indicate the scope of E2E IOAM-Data-Fields in the MPLS header as shown in Figure 2. Note that there may be additional Network Action (NA) LSEs added in the MNA Sub-Stack and NASL is updated based on the number of LSEs after the second LSE.¶
The E2E IOAM-Data-Fields carry the 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) [RFC9197] as well as Direct Export (DEX) Option-Type (value 4, yet to be assigned by IANA) defined in [I-D.ietf-ippm-ioam-direct-export]. The E2E 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 since IHS scope is set to "I2E, value 0x0".¶
The E2E IOM Network Action procedure is summarized as following:¶
The Post-Stack Network Action Presence Indicator (P flag) is set to "1" to indicate the presence of IOAM-Data-Fields and the IHS scope is set to "HBH, value 0x1" to indicate the scope of HBH IOAM-Data-Fields in the MPLS header as shown in Figure 3. Note that there may be additional Network Action (NA) LSEs added in the MNA Sub-Stack and NASL is updated based on the number of LSEs after the second LSE.¶
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 Direct Export (DEX) Option-Type (value 4, yet to be assigned by IANA) defined in [I-D.ietf-ippm-ioam-direct-export].¶
The Hop-By-Hop IOAM Network Action procedure is summarized as following:¶
Both HBH and E2E IOAM EHs may be added in an MPLS header. In this case the HBH IOAM EHs MUST be added after the BOS and before the E2E IOAM EHs. When an intermediate node that processes the HBH IOAM EHs, encounters the first E2E IOAM EH, it will stop processing of the E2E EH.¶
The procedure for carrying the IOAM for Select Scope is the same as HBH Scope IOAM except the IHS scope is set to "Select, value 0x2". In this case, only the select nodes will process the IOAM-Data-Fields.¶
The encapsulating node needs to make sure the IOAM-Data-Fields do not start with a well-known IP Version Number (e.g. 0x4 for IPv4 and 0x6 for IPv6) as that can alter the hashing function for ECMP that uses the IP header. This is achieved by using the Common Header (CH) with a different IP Version Number (value TBA4) after the MPLS label stack.¶
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.¶
When a packet is received with MPLS Encapsulated IOAM Network Action, the nested MPLS encapsulating node that supports a different IOAM Network Action, the node MUST add a new MNA Label (with Sub-Stack) with the supported IOAM Network Action as part of the new MPLS encapsulation.¶
The security considerations of IOAM in general are discussed in [RFC9197] and apply to the procedure defined in this document.¶
IOAM is considered a "per domain" feature, where one or several operators decide on configuring IOAM according to their needs. IOAM is intended for deployment in limited domains [RFC8799]. As such, it assumes that a node involved in IOAM operation has previously verified the integrity of the path. Still, operators need to properly secure the IOAM domain to avoid malicious configuration and use, which could include injecting malicious IOAM packets into the domain.¶
The encoding of Next-Header uses the same value registry for IPv4/ IPv6 protocol numbers. The value TBA2 for IOAM as Next Header shall be assigned by IANA from the "Protocol Numbers" registry (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml).¶
The authors would like to thank Patrick Khordoc, Sagar Soni, Shwetha Bhandari, Clarence Filsfils, and Vengada Prasad Govindan for the discussions on IOAM. The authors would also like to thank Tarek Saad, Loa Andersson, Greg Mirsky, Stewart Bryant, Xiao Min, 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 reviews.¶