MPLS Working Group                                        R. Gandhi, Ed.
Internet-Draft                                                    Z. Ali
Intended status: Standards Track                            F. Brockners
Expires: January 13, 2022                            Cisco Systems, Inc.
                                                                  B. Wen
                                                                V. Kozak
                                                                 Comcast
                                                           July 12, 2021


           MPLS Data Plane Encapsulation for In-situ OAM Data
                       draft-gandhi-mpls-ioam-00

Abstract

   In-situ Operations, Administration, and Maintenance (IOAM) records
   operational and telemetry information in the data packet while the
   packet traverses a path between two nodes in the network.  This
   document defines how IOAM data fields are transported with MPLS data
   plane encapsulation using new Generic Associated Channel (G-ACh).

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 January 13, 2022.

Copyright Notice

   Copyright (c) 2021 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



Gandhi, et al.          Expires January 13, 2022                [Page 1]


Internet-Draft       In-situ OAM for MPLS Data plane           July 2021


   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Conventions . . . . . . . . . . . . . . . . . . . . . . . . .   3
     2.1.  Requirement Language  . . . . . . . . . . . . . . . . . .   3
     2.2.  Abbreviations . . . . . . . . . . . . . . . . . . . . . .   3
   3.  MPLS Extensions for IOAM Data Fields  . . . . . . . . . . . .   3
     3.1.  IOAM Generic Associated Channel . . . . . . . . . . . . .   3
     3.2.  IOAM Indicator Labels . . . . . . . . . . . . . . . . . .   5
   4.  Edge-to-Edge IOAM . . . . . . . . . . . . . . . . . . . . . .   5
     4.1.  Edge-to-Edge IOAM Indicator Label . . . . . . . . . . . .   5
     4.2.  Procedure for Edge-to-Edge IOAM . . . . . . . . . . . . .   6
     4.3.  Edge-to-Edge IOAM Indicator Label Allocation  . . . . . .   6
   5.  Hop-by-Hop IOAM . . . . . . . . . . . . . . . . . . . . . . .   7
     5.1.  Hop-by-Hop IOAM Indicator Label . . . . . . . . . . . . .   7
     5.2.  Procedure for Hop-by-Hop IOAM . . . . . . . . . . . . . .   7
     5.3.  Hop-by-Hop IOAM Indicator Label Allocation  . . . . . . .   8
   6.  Considerations for IOAM Indicator Label . . . . . . . . . . .   8
     6.1.  Considerations for ECMP . . . . . . . . . . . . . . . . .   8
     6.2.  Node Capability . . . . . . . . . . . . . . . . . . . . .   9
     6.3.  Nested MPLS Encapsulation . . . . . . . . . . . . . . . .   9
   7.  MPLS Encapsulation with Control Word and Another G-ACh for
       IOAM Data Fields  . . . . . . . . . . . . . . . . . . . . . .   9
   8.  Security Considerations . . . . . . . . . . . . . . . . . . .  11
   9.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  11
   10. References  . . . . . . . . . . . . . . . . . . . . . . . . .  12
     10.1.  Normative References . . . . . . . . . . . . . . . . . .  12
     10.2.  Informative References . . . . . . . . . . . . . . . . .  13
   Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .  13
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  13

1.  Introduction

   In-situ Operations, Administration, and Maintenance (IOAM) records
   operational and telemetry information within the packet while the
   packet traverses a particular network domain.  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
   [I-D.ietf-ippm-ioam-data], and can be used for various use-cases for
   OAM.  The IOAM data fields are further updated in
   [I-D.ietf-ippm-ioam-direct-export] for direct export use-cases and in
   [I-D.ietf-ippm-ioam-flags] for Loopback and Active flags.



Gandhi, et al.          Expires January 13, 2022                [Page 2]


Internet-Draft       In-situ OAM for MPLS Data plane           July 2021


   This document defines how IOAM data fields are transported with MPLS
   data plane encapsulations using new Generic Associated Channel
   (G-ACh).

2.  Conventions

2.1.  Requirement Language

   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.

2.2.  Abbreviations

   Abbreviations used in this document:

   ECMP      Equal Cost Multi-Path

   E2E       Edge-To-Edge

   G-ACh     Generic Associated Channel

   HbH       Hop-by-Hop

   IOAM      In-situ Operations, Administration, and Maintenance

   MPLS      Multiprotocol Label Switching

   OAM       Operations, Administration, and Maintenance

   POT       Proof-of-Transit

   PW        PseudoWire

3.  MPLS Extensions for IOAM Data Fields

3.1.  IOAM Generic Associated Channel

   The IOAM data fields are defined in [I-D.ietf-ippm-ioam-data].  The
   IOAM data fields are carried in the MPLS header as shown in Figure 1.
   More than one trace options can be present in the IOAM data fields.
   G-ACh [RFC5586] provides a mechanism to transport OAM and other
   control messages over MPLS data plane.  The IOAM G-ACh header
   [RFC5586] with new IOAM G-ACh type is added immediately after the
   MPLS label stack in the MPLS header as shown in Figure 1, before the
   IOAM data fields.  The G-ACh label (GAL) [RFC5586] is not added in
   the MPLS label stack.



Gandhi, et al.          Expires January 13, 2022                [Page 3]


Internet-Draft       In-situ OAM for MPLS Data plane           July 2021


   This document updates the following paragraph in Section 2.1 of
   [RFC5586]: "The G-ACh MUST NOT be used to transport user traffic" to
   "The G-ACh MAY be used with user traffic".

    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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+
    |0 0 0 1|Version|   Reserved    |          IOAM G-ACh           |  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  |
    | Reserved      | Block Number  | IOAM-OPT-Type |IOAM Length    |  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  I
    |                                                               |  O
    |                                                               |  A
    ~                 IOAM Option and Data Space                    ~  M
    |                                                               |  |
    |                                                               |  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+
    |                                                               |
    |                                                               |
    |                 Payload + Padding                             |
    |                                                               |
    |                                                               |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Figure 1: IOAM Generic Associated Channel with IOAM Data Fields

   The IOAM data fields are encapsulated using the following fields in
   the MPLS header:

   IP Version Number 0001b:  The first four octets are IP Version Field
     part of a G-ACh header, as defined in [RFC5586].

   Version:  The Version field is set to 0, as defined in [RFC4385].

   IOAM G-ACh:  Generic Associated Channel (G-ACh) Type (value TBA3) for
     IOAM [RFC5586].

   Reserved:  Reserved Bits MUST be set to zero upon transmission and
     ignored upon receipt.

   Block Number:  The Block Number can be used to aggregate the IOAM
     data collected in data plane, e.g. compute measurement metrics for
     each block of a flow.  It is also used to correlate the IOAM data
     on different nodes.

   IOAM-OPT-Type:  8-bit field defining the IOAM Option type, as defined
     in Section 8.1 of [I-D.ietf-ippm-ioam-data].



Gandhi, et al.          Expires January 13, 2022                [Page 4]


Internet-Draft       In-situ OAM for MPLS Data plane           July 2021


   IOAM Length:  8-bit unsigned integer.  Length of IOAM in 4-octet
     units, including IOAM header.

   IOAM Option and Data Space:  IOAM option header and data is present
     as defined by the IOAM-OPT-Type field, and is defined in Section 5
     of [I-D.ietf-ippm-ioam-data].

3.2.  IOAM Indicator Labels

   An IOAM Indicator Label is used to indicate the presence of the IOAM
   data fields in the MPLS header.  There are two IOAM types defined in
   this document: Edge-to-Edge (E2E) and Hop-by-Hop (HbH) IOAM.  If only
   edge nodes need to process IOAM data then E2E IOAM Indicator Label is
   used so that intermediate nodes can ignore it.  If both edge and
   intermediate nodes need to process IOAM data then HbH IOAM Indicator
   Label is used.  Different IOAM Indicator Labels allow to optimize the
   IOAM processing on intermediate nodes by checking if IOAM data fields
   need to be processed.

4.  Edge-to-Edge IOAM

4.1.  Edge-to-Edge IOAM Indicator Label

   The E2E IOAM Indicator Label is used to indicate the presence of the
   E2E IOAM data fields in the MPLS header as shown in Figure 2.

    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(1)                             | TC  |S|  TTL          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    .                                                               .
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Label(n)                             | TC  |S|  TTL          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  E2E IOAM Indicator Label             | TC  |1|  TTL          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                Packet as shown in Figure 1                    |
    .                                                               .
    +---------------------------------------------------------------+

                 Figure 2: MPLS Encapsulation for E2E IOAM

   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
   [I-D.ietf-ippm-ioam-data].  The E2E IOAM data fields SHOULD NOT carry




Gandhi, et al.          Expires January 13, 2022                [Page 5]


Internet-Draft       In-situ OAM for MPLS Data plane           July 2021


   any IOAM Option-Type that require IOAM processing on the intermediate
   nodes as it will not be processed by them.

4.2.  Procedure for Edge-to-Edge IOAM

   The E2E IOM procedure is summarized as following:

   o  The encapsulating node inserts the E2E IOAM Indicator Label and
      one or more IOAM data fields in the MPLS header.

   o  The intermediate nodes do not process IOAM data fields.

   o  The decapsulating node "punts the timestamped copy" of the
      received packet as is including the IOAM data fields when the node
      recognizes the IOAM Indicator Label.  The copy of the packet is
      punted with receive timestamp to the slow path for IOAM data
      fields processing.  The receive timestamp is required by the
      various E2E OAM use-cases, including streaming telemetry.  Note
      that it is not necessarily punted to the control-plane.

   o  The decapsulating node processes the IOAM data fields using the
      procedures defined in [I-D.ietf-ippm-ioam-data].  An example of
      IOAM processing is to export the data fields, send data fields via
      streaming telemetry, etc.

   o  The decapsulating node also pops the IOAM Indicator Label and the
      IOAM data fields from the received packet.  The decapsulated
      packet is forwarded downstream or terminated locally similar to
      the regular data packets.

4.3.  Edge-to-Edge IOAM Indicator Label Allocation

   The E2E IOAM Indicator Label is used to indicate the presence of the
   E2E IOAM data fields in the MPLS header.  The E2E IOAM Indicator
   Label can be allocated using one of the following three methods:

   o  Label assigned by IANA with value TBA1 from the Extended Special-
      Purpose MPLS Values [RFC9017].

   o  Label allocated by a Controller from the global table of the
      decapsulating node.  The Controller provisions the label on both
      encapsulating and decapsulating nodes.

   o  Label allocated by the decapsulating node and signalled or
      advertised in the network.  The signaling and/or advertisement
      extension for this is outside the scope of this document.





Gandhi, et al.          Expires January 13, 2022                [Page 6]


Internet-Draft       In-situ OAM for MPLS Data plane           July 2021


5.  Hop-by-Hop IOAM

5.1.  Hop-by-Hop IOAM Indicator Label

   The HbH IOAM Indicator Label is used to indicate the presence of the
   HbH IOAM data fields in the MPLS header as shown in Figure 3.

    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(1)                             | TC  |S|  TTL          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    .                                                               .
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Label(n)                             | TC  |S|  TTL          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  HbH IOAM Indicator Label             | TC  |1|  TTL          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                Packet as shown in Figure 1                    |
    .                                                               .
    +---------------------------------------------------------------+

                 Figure 3: MPLS Encapsulation for HbH IOAM

   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, IOAM Incremental Trace Option-Type and IOAM Proof of
   Transit (POT) Option-Type, as well as Edge-to-Edge Option-Type
   [I-D.ietf-ippm-ioam-data].

5.2.  Procedure for Hop-by-Hop IOAM

   The HbH IOAM procedure is summarized as following:

   o  The encapsulating node inserts the HbH IOAM Indicator Label and
      one or more IOAM data fields in the MPLS header.

   o  The intermediate node enabled with HbH IOAM functions processes
      the data packet including the IOAM data fields as defined in
      [I-D.ietf-ippm-ioam-data] when the node recognizes the HbH IOAM
      Indicator Label present in the MPLS header.  The intermediate node
      may 'punt the timestamped copy' of the received data packet
      including the IOAM data fields as required by the IOAM data fields
      processing.  The copy of the packet is punted with receive
      timestamp to the slow path for IOAM processing.





Gandhi, et al.          Expires January 13, 2022                [Page 7]


Internet-Draft       In-situ OAM for MPLS Data plane           July 2021


   o  The intermediate node forwards a copy of the processed data packet
      downstream.

   o  The decapsulating node "punts the timestamped copy" of the
      received data packet as is including the IOAM data fields when the
      node recognizes the IOAM Indicator Label.  The copy of the packet
      is punted with receive timestamp to the slow path for IOAM data
      fields processing.  The receive timestamp is required by the
      various E2E OAM use-cases, including streaming telemetry.  Note
      that it is not necessarily punted to the control-plane.

   o  The decapsulating node processes the IOAM data fields using the
      procedures defined in [I-D.ietf-ippm-ioam-data].  An example of
      IOAM processing is to export the data fields, send data fields via
      streaming telemetry, etc.

   o  The decapsulating node also pops the IOAM Indicator Label and the
      IOAM data fields from the received packet.  The decapsulated
      packet is forwarded downstream or terminated locally similar to
      the regular data packets.

5.3.  Hop-by-Hop IOAM Indicator Label Allocation

   The HbH IOAM Indicator Label is used to indicate the presence of the
   HbH IOAM data fields in the MPLS header.  The HbH IOAM Indicator
   Label can be allocated using one of the following three methods:

   o  Label assigned by IANA with value TBA2 from the Extended Special-
      Purpose MPLS Values [RFC9017].

   o  Label allocated by a Controller from the network-wide global
      table.  The Controller provisions the labels on all nodes
      participating in IOAM functions along the data traffic path.

   o  Labels allocated by the intermediate and decapsulating nodes and
      signalled or advertised in the network.  The signaling and/or
      advertisement extension for this is outside the scope of this
      document.

6.  Considerations for IOAM Indicator Label

6.1.  Considerations for ECMP

   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 IOAM G-ACh with IP
   Version Number 0001b after the MPLS label stack [RFC5586].



Gandhi, et al.          Expires January 13, 2022                [Page 8]


Internet-Draft       In-situ OAM for MPLS Data plane           July 2021


   Note that the hashing function for ECMP that uses the labels from the
   MPLS header may now include the IOAM Indicator Label.

   When entropy label [RFC6790] is used for hashing function for ECMP,
   the procedure defined in this document does not alter the hashing
   function.

6.2.  Node Capability

   The decapsulating node that has to pop the IOAM Indicator Label, 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 of the MPLS header.

6.3.  Nested MPLS Encapsulation

   The data packets with IOAM data fields carry only one IOAM Indicator
   Label in the MPLS header.  Any intermediate node that adds additional
   MPLS encapsulation in the MPLS header may further update the IOAM
   data fields in the header without inserting another IOAM Indicator
   Label.  When a packet is received with a HbH IOAM Indicator Label,
   the nested MPLS encapsulating node can add a HbH and/or E2E IOAM
   Option-Type.  However, when a packet is received with an E2E IOAM
   Indicator Label, the nested MPLS encapsulating node SHOULD NOT add a
   HbH IOAM Option-Type, as intermediate nodes will not process it.

7.  MPLS Encapsulation with Control Word and Another G-ACh for IOAM Data
    Fields

   The IOAM data fields, including IOAM G-ACh header are added in the
   MPLS encapsulation immediately after the MPLS header.  Any Control
   Word [RFC4385] or another G-ACh [RFC5586] MUST be added after the
   IOAM data fields in the packet as shown in the Figure 4 and Figure 5,
   respectively.  This allows the intermediate nodes to easily access
   the HbH IOAM data fields located immediately after the MPLS header.
   The decapsulating node can remove the MPLS encapsulation including
   the IOAM data fields and then process the Control Word or another
   G-ACh following it.  The subsequent G-ACh is located through the use
   of the "IOAM Length" field in the IOAM header.






Gandhi, et al.          Expires January 13, 2022                [Page 9]


Internet-Draft       In-situ OAM for MPLS Data plane           July 2021


    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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | IOAM Indicator Label                  | TC  |1|  TTL          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+
    |0 0 0 1|Version| Reserved      | IOAM G-ACh                    |  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  |
    | Reserved      | Block Number  | IOAM-OPT-Type |IOAM Length    |  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  I
    |                                                               |  O
    |                                                               |  A
    ~                 IOAM Option and Data Space                    ~  M
    |                                                               |  |
    |                                                               |  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+
    |0 0 0 0| Specified by PW Encapsulation [RFC4385]               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    |                                                               |
    ~                 Payload + Padding                             ~
    |                                                               |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

     Figure 4: Example MPLS Encapsulation with Generic PW Control Word
                                 with IOAM

























Gandhi, et al.          Expires January 13, 2022               [Page 10]


Internet-Draft       In-situ OAM for MPLS Data plane           July 2021


    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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | IOAM Indicator Label                  | TC  |1|  TTL          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+
    |0 0 0 1|Version| Reserved      | IOAM G-ACh                    |  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  |
    | Reserved      | Block Number  | IOAM-OPT-Type |IOAM Length    |  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  I
    |                                                               |  O
    |                                                               |  A
    ~                 IOAM Option and Data Space                    ~  M
    |                                                               |  |
    |                                                               |  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+
    |0 0 0 1|Version| Reserved      | Channel Type                  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    |                                                               |
    ~                 Payload + Padding                             ~
    |                                                               |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

     Figure 5: Example MPLS Encapsulation with Another G-ACh with IOAM

8.  Security Considerations

   The security considerations of IOAM in general are discussed in
   [I-D.ietf-ippm-ioam-data].

   IOAM is considered a "per domain" feature, where one or several
   operators decide on leveraging and configuring IOAM according to
   their needs.  Still, operators need to properly secure the IOAM
   domain to avoid malicious configuration and use, which could include
   injecting malicious IOAM packets into a domain.

   Routers that support G-ACh are subject to the same security
   considerations as defined in [RFC4385] and [RFC5586].

9.  IANA Considerations

   IANA maintains the "Special-Purpose Multiprotocol Label Switching
   (MPLS) Label Values" registry (see <https://www.iana.org/assignments/
   mpls-label-values/mpls-label-values.xml>).  IANA is requested to
   allocate IOAM Indicator Label value from the "Extended Special-
   Purpose MPLS Label Values" registry:




Gandhi, et al.          Expires January 13, 2022               [Page 11]


Internet-Draft       In-situ OAM for MPLS Data plane           July 2021


           +--------+--------------------------+---------------+
           |  Value |  Description             |  Reference    |
           +--------+--------------------------+---------------+
           | TBA1   | E2E IOAM Indicator Label | This document |
           +--------+--------------------------+---------------+
           | TBA2   | HbH IOAM Indicator Label | This document |
           +--------+--------------------------+---------------+

                   Table 1: IOAM Indicator Label Values

   IANA maintains G-ACh Type Registry (see
   <https://www.iana.org/assignments/g-ach-parameters/g-ach-
   parameters.xhtml>).  IANA is requested to allocate a value for IOAM
   G-ACh Type from "MPLS Generalized Associated Channel (G-ACh) Types
   (including Pseudowire Associated Channel Types)" registry.

                +-------+-----------------+---------------+
                | Value | Description     | Reference     |
                +-------+-----------------+---------------+
                | TBA3  | IOAM G-ACh Type | This document |
                +-------+-----------------+---------------+

                         Table 2: IOAM G-ACh Type

10.  References

10.1.  Normative References

   [I-D.ietf-ippm-ioam-data]
              Brockners, F., Bhandari, S., and T. Mizrahi, "Data Fields
              for In-situ OAM", draft-ietf-ippm-ioam-data-12 (work in
              progress), February 2021.

   [I-D.ietf-ippm-ioam-direct-export]
              Song, H., Gafni, B., Zhou, T., Li, Z., Brockners, F.,
              Bhandari, S., Sivakolundu, R., and T. Mizrahi, "In-situ
              OAM Direct Exporting", draft-ietf-ippm-ioam-direct-
              export-03 (work in progress), February 2021.

   [I-D.ietf-ippm-ioam-flags]
              Mizrahi, T., Brockners, F., Bhandari, S., Sivakolundu, R.,
              Pignataro, C., Kfir, A., Gafni, B., Spiegel, M., and J.
              Lemon, "In-situ OAM Flags", draft-ietf-ippm-ioam-flags-04
              (work in progress), February 2021.







Gandhi, et al.          Expires January 13, 2022               [Page 12]


Internet-Draft       In-situ OAM for MPLS Data plane           July 2021


   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC4385]  Bryant, S., Swallow, G., Martini, L., and D. McPherson,
              "Pseudowire Emulation Edge-to-Edge (PWE3) Control Word for
              Use over an MPLS PSN", RFC 4385, DOI 10.17487/RFC4385,
              February 2006, <https://www.rfc-editor.org/info/rfc4385>.

   [RFC5586]  Bocci, M., Ed., Vigoureux, M., Ed., and S. Bryant, Ed.,
              "MPLS Generic Associated Channel", RFC 5586,
              DOI 10.17487/RFC5586, June 2009,
              <https://www.rfc-editor.org/info/rfc5586>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

10.2.  Informative References

   [RFC6790]  Kompella, K., Drake, J., Amante, S., Henderickx, W., and
              L. Yong, "The Use of Entropy Labels in MPLS Forwarding",
              RFC 6790, DOI 10.17487/RFC6790, November 2012,
              <https://www.rfc-editor.org/info/rfc6790>.

   [RFC9017]  Andersson, L., Kompella, K., and A. Farrel, "Special-
              Purpose Label Terminology", RFC 9017,
              DOI 10.17487/RFC9017, April 2021,
              <https://www.rfc-editor.org/info/rfc9017>.

Acknowledgements

   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.

Authors' Addresses

   Rakesh Gandhi (editor)
   Cisco Systems, Inc.
   Canada

   Email: rgandhi@cisco.com



Gandhi, et al.          Expires January 13, 2022               [Page 13]


Internet-Draft       In-situ OAM for MPLS Data plane           July 2021


   Zafar Ali
   Cisco Systems, Inc.

   Email: zali@cisco.com


   Frank Brockners
   Cisco Systems, Inc.
   Hansaallee 249, 3rd Floor
   DUESSELDORF, NORDRHEIN-WESTFALEN  40549
   Germany

   Email: fbrockne@cisco.com


   Bin Wen
   Comcast

   Email: Bin_Wen@cable.comcast.com


   Voitek Kozak
   Comcast

   Email: Voitek_Kozak@comcast.com


























Gandhi, et al.          Expires January 13, 2022               [Page 14]