| rfc9359.original | rfc9359.txt | |||
|---|---|---|---|---|
| IPPM Working Group X. Min | Internet Engineering Task Force (IETF) X. Min | |||
| Internet-Draft ZTE Corp. | Request for Comments: 9359 ZTE Corp. | |||
| Intended status: Standards Track G. Mirsky | Category: Standards Track G. Mirsky | |||
| Expires: 25 May 2023 Ericsson | ISSN: 2070-1721 Ericsson | |||
| L. Bo | L. Bo | |||
| China Telecom | China Telecom | |||
| 21 November 2022 | April 2023 | |||
| Echo Request/Reply for Enabled In-situ OAM Capabilities | Echo Request/Reply for Enabled In Situ OAM (IOAM) Capabilities | |||
| draft-ietf-ippm-ioam-conf-state-10 | ||||
| Abstract | Abstract | |||
| This document describes a generic format for use in echo request/ | This document describes a generic format for use in echo request/ | |||
| reply mechanisms, which can be used within an In situ Operations, | reply mechanisms, which can be used within an IOAM-Domain, allowing | |||
| Administration, and Maintenance (IOAM) domain, allowing the IOAM | the IOAM encapsulating node to discover the enabled IOAM capabilities | |||
| encapsulating node to discover the enabled IOAM capabilities of each | of each IOAM transit and IOAM decapsulating node. The generic format | |||
| IOAM transit and IOAM decapsulating node. The generic format is | is intended to be used with a variety of data planes such as IPv6, | |||
| intended to be used with a variety of data planes such as IPv6, MPLS, | MPLS, Service Function Chain (SFC), and Bit Index Explicit | |||
| Service Function Chain (SFC) and Bit Index Explicit Replication | Replication (BIER). | |||
| (BIER). | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
| 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 | This document is a product of the Internet Engineering Task Force | |||
| and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
| time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
| material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on 25 May 2023. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc9359. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2022 IETF Trust and the persons identified as the | Copyright (c) 2023 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | ||||
| Please review these documents carefully, as they describe your rights | carefully, as they describe your rights and restrictions with respect | |||
| and restrictions with respect to this document. Code Components | to this document. Code Components extracted from this document must | |||
| extracted from this document must include Revised BSD License text as | include Revised BSD License text as described in Section 4.e of the | |||
| described in Section 4.e of the Trust Legal Provisions and are | Trust Legal Provisions and are provided without warranty as described | |||
| provided without warranty as described in the Revised BSD License. | in the Revised BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
| 2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 2. Conventions | |||
| 2.1. Requirements Language . . . . . . . . . . . . . . . . . . 5 | 2.1. Requirements Language | |||
| 2.2. Abbreviations . . . . . . . . . . . . . . . . . . . . . . 5 | 2.2. Abbreviations | |||
| 3. IOAM Capabilities Formats . . . . . . . . . . . . . . . . . . 6 | 3. IOAM Capabilities Formats | |||
| 3.1. IOAM Capabilities Query Container . . . . . . . . . . . . 6 | 3.1. IOAM Capabilities Query Container | |||
| 3.2. IOAM Capabilities Response Container . . . . . . . . . . 7 | 3.2. IOAM Capabilities Response Container | |||
| 3.2.1. IOAM Pre-allocated Tracing Capabilities Object . . . 8 | 3.2.1. IOAM Pre-allocated Tracing Capabilities Object | |||
| 3.2.2. IOAM Incremental Tracing Capabilities Object . . . . 9 | 3.2.2. IOAM Incremental Tracing Capabilities Object | |||
| 3.2.3. IOAM Proof-of-Transit Capabilities Object . . . . . . 10 | 3.2.3. IOAM Proof of Transit Capabilities Object | |||
| 3.2.4. IOAM Edge-to-Edge Capabilities Object . . . . . . . . 11 | 3.2.4. IOAM Edge-to-Edge Capabilities Object | |||
| 3.2.5. IOAM DEX Capabilities Object . . . . . . . . . . . . 12 | 3.2.5. IOAM DEX Capabilities Object | |||
| 3.2.6. IOAM End-of-Domain Object . . . . . . . . . . . . . . 12 | 3.2.6. IOAM End-of-Domain Object | |||
| 4. Operational Guide . . . . . . . . . . . . . . . . . . . . . . 13 | 4. Operational Guide | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 | 5. IANA Considerations | |||
| 5.1. IOAM SoP Capability Registry . . . . . . . . . . . . . . 14 | 5.1. IOAM SoP Capability Registry | |||
| 5.2. IOAM TSF Capability Registry . . . . . . . . . . . . . . 15 | 5.2. IOAM TSF Capability Registry | |||
| 6. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | 6. Security Considerations | |||
| 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 16 | 7. References | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 | 7.1. Normative References | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 17 | 7.2. Informative References | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 17 | Acknowledgements | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18 | Authors' Addresses | |||
| 1. Introduction | 1. Introduction | |||
| In situ Operations, Administration, and Maintenance (IOAM) ([RFC9197] | In situ Operations, Administration, and Maintenance (IOAM) ([RFC9197] | |||
| [RFC9326]) defines data fields that record OAM information within the | [RFC9326]) defines data fields that record OAM information within the | |||
| packet while the packet traverses a particular network domain, called | packet while the packet traverses a particular network domain, called | |||
| an IOAM domain. IOAM can complement or replace other OAM mechanisms, | an "IOAM-Domain". IOAM can complement or replace other OAM | |||
| such as ICMP or other types of probe packets. | mechanisms, such as ICMP or other types of probe packets. | |||
| As specified in [RFC9197], within the IOAM domain, the IOAM data may | As specified in [RFC9197], within the IOAM-Domain, the IOAM data may | |||
| be updated by network nodes that the packet traverses. The device | be updated by network nodes that the packet traverses. The device | |||
| which adds an IOAM header to the packet is called an "IOAM | that adds an IOAM header to the packet is called an "IOAM | |||
| encapsulating node". In contrast, the device which removes an IOAM | encapsulating node". In contrast, the device that removes an IOAM | |||
| header is referred to as an "IOAM decapsulating node". Nodes within | header is referred to as an "IOAM decapsulating node". Nodes within | |||
| the domain that are aware of IOAM data and read and/or write and/or | the domain that are aware of IOAM data and that read, write, and/or | |||
| process IOAM data are called "IOAM transit nodes". IOAM | process IOAM data are called "IOAM transit nodes". IOAM | |||
| encapsulating or decapsulating nodes can also serve as IOAM transit | encapsulating or decapsulating nodes can also serve as IOAM transit | |||
| nodes at the same time. IOAM encapsulating or decapsulating nodes | nodes at the same time. IOAM encapsulating or decapsulating nodes | |||
| are also referred to as IOAM domain edge devices, which can be hosts | are also referred to as IOAM-Domain "edge devices", which can be | |||
| or network devices. [RFC9197] defines four IOAM option types, and | hosts or network devices. [RFC9197] defines four IOAM option types, | |||
| [RFC9326] introduces a new IOAM option type called the Direct Export | and [RFC9326] introduces a new IOAM option type called the "Direct | |||
| (DEX) Option-Type, which is different from the other four IOAM option | Export (DEX) Option-Type", which is different from the other four | |||
| types defined in [RFC9197] on how to collect the operational and | IOAM option types defined in [RFC9197] regarding how to collect the | |||
| telemetry information defined in [RFC9197]. | operational and telemetry information defined in [RFC9197]. | |||
| As specified in [RFC9197], IOAM is focused on "limited domains" as | As specified in [RFC9197], IOAM is focused on "limited domains" as | |||
| defined in [RFC8799]. In a limited domain, a control entity that has | defined in [RFC8799]. In a limited domain, a control entity that has | |||
| control over every IOAM device may be deployed. If that's the case, | control over every IOAM device may be deployed. If that's the case, | |||
| the control entity can provision both the explicit transport path and | the control entity can provision both the explicit transport path and | |||
| the IOAM header applied to data packet at every IOAM encapsulating | the IOAM header applied to the data packet at every IOAM | |||
| node. | encapsulating node. | |||
| In a case when a control entity that has control over every IOAM | In a case when a control entity that has control over every IOAM | |||
| device is not deployed in the IOAM domain, the IOAM encapsulating | device is not deployed in the IOAM-Domain, the IOAM encapsulating | |||
| node needs to discover the enabled IOAM capabilities at the IOAM | node needs to discover the enabled IOAM capabilities at the IOAM | |||
| transit and decapsulating nodes. For example, what types of IOAM | transit and decapsulating nodes: for example, what types of IOAM | |||
| tracing data can be added or exported by the transit nodes along the | tracing data can be added or exported by the transit nodes along the | |||
| transport path of the data packet IOAM is applied to. The IOAM | transport path of the data packet IOAM is applied to. The IOAM | |||
| encapsulating node can then add the correct IOAM header to the data | encapsulating node can then add the correct IOAM header to the data | |||
| packet according to the discovered IOAM capabilities. Specifically, | packet according to the discovered IOAM capabilities. Specifically, | |||
| the IOAM encapsulating node first identifies the types and lengths of | the IOAM encapsulating node first identifies the types and lengths of | |||
| IOAM options included in the IOAM data fields according to the | IOAM options included in the IOAM data fields according to the | |||
| discovered IOAM capabilities. Then the IOAM encapsulating node can | discovered IOAM capabilities. Then the IOAM encapsulating node can | |||
| add the IOAM header to the data packet based on the identified types | add the IOAM header to the data packet based on the identified types | |||
| and lengths of IOAM options included in the IOAM data fields. The | and lengths of IOAM options included in the IOAM data fields. The | |||
| IOAM encapsulating node may use NETCONF/YANG or IGP to discover these | IOAM encapsulating node may use NETCONF/YANG or IGP to discover these | |||
| IOAM capabilities. However, NETCONF/YANG or IGP has some | IOAM capabilities. However, NETCONF/YANG or IGP has some | |||
| limitations: | limitations: | |||
| * When NETCONF/YANG is used in this scenario, each IOAM | * When NETCONF/YANG is used in this scenario, each IOAM | |||
| encapsulating node (including the host when it takes the role of | encapsulating node (including the host when it takes the role of | |||
| an IOAM encapsulating node) needs to implement a NETCONF Client, | an IOAM encapsulating node) needs to implement a NETCONF Client, | |||
| each IOAM transit and IOAM decapsulating node (including the host | and each IOAM transit and IOAM decapsulating node (including the | |||
| when it takes the role of an IOAM decapsulating node) needs to | host when it takes the role of an IOAM decapsulating node) needs | |||
| implement a NETCONF Server, the complexity can be an issue. | to implement a NETCONF Server, so complexity can be an issue. | |||
| Furthermore, each IOAM encapsulating node needs to establish | Furthermore, each IOAM encapsulating node needs to establish a | |||
| NETCONF Connection with each IOAM transit and IOAM decapsulating | NETCONF Connection with each IOAM transit and IOAM decapsulating | |||
| node, the scalability can be an issue. | node, so scalability can be an issue. | |||
| * When IGP is used in this scenario, the IGP and IOAM domains don't | * When IGP is used in this scenario, the IGP and IOAM-Domains don't | |||
| always have the same coverage. For example, when the IOAM | always have the same coverage. For example, when the IOAM | |||
| encapsulating node or the IOAM decapsulating node is a host, the | encapsulating node or the IOAM decapsulating node is a host, the | |||
| availability can be an issue. Furthermore, it might be too | availability can be an issue. Furthermore, it might be too | |||
| challenging to reflect enabled IOAM capabilities at the IOAM | challenging to reflect enabled IOAM capabilities at the IOAM | |||
| transit and IOAM decapsulating node if these are controlled by a | transit and IOAM decapsulating node if these are controlled by a | |||
| local policy depending on the identity of the IOAM encapsulating | local policy depending on the identity of the IOAM encapsulating | |||
| node. | node. | |||
| This document specifies formats and objects that can be used in the | This document specifies formats and objects that can be used in the | |||
| extension of echo request/reply mechanisms used in IPv6 (including | extension of echo request/reply mechanisms used in IPv6 (including | |||
| Segment Routing with IPv6 data plane (SRv6)), MPLS (including Segment | Segment Routing over IPv6 (SRv6) data plane), MPLS (including Segment | |||
| Routing with MPLS data plane (SR-MPLS)), SFC and BIER environments, | Routing over MPLS (SR-MPLS) data plane), Service Function Chain | |||
| which can be used within the IOAM domain, allowing the IOAM | (SFC), and Bit Index Explicit Replication (BIER) environments, which | |||
| encapsulating node to discover the enabled IOAM capabilities of each | can be used within the IOAM-Domain, allowing the IOAM encapsulating | |||
| IOAM transit and IOAM decapsulating node. | node to discover the enabled IOAM capabilities of each IOAM transit | |||
| and IOAM decapsulating node. | ||||
| The following documents contain references to the echo request/reply | The following documents contain references to the echo request/reply | |||
| mechanisms used in IPv6 (including SRv6), MPLS (including SR-MPLS), | mechanisms used in IPv6 (including SRv6), MPLS (including SR-MPLS), | |||
| SFC and BIER environments: | SFC, and BIER environments: | |||
| * [RFC4443] ("Internet Control Message Protocol (ICMPv6) for the | * "Internet Control Message Protocol (ICMPv6) for the Internet | |||
| Internet Protocol Version 6 (IPv6) Specification"), [RFC4620] | Protocol Version 6 (IPv6) Specification" [RFC4443] | |||
| ("IPv6 Node Information Queries"), [RFC4884] ("Extended ICMP to | ||||
| Support Multi-Part Messages") and [RFC8335] ("PROBE: A Utility for | ||||
| Probing Interfaces") | ||||
| * [RFC8029] ("Detecting Multiprotocol Label Switched (MPLS) Data- | * "IPv6 Node Information Queries" [RFC4620] | |||
| Plane Failures") | ||||
| * [I-D.ietf-sfc-multi-layer-oam] ("Active OAM for Service Function | * "Extended ICMP to Support Multi-Part Messages" [RFC4884] | |||
| Chaining (SFC)") | ||||
| * [I-D.ietf-bier-ping] ("BIER Ping and Trace") | * "PROBE: A Utility for Probing Interfaces" [RFC8335] | |||
| * "Detecting Multiprotocol Label Switched (MPLS) Data-Plane | ||||
| Failures" [RFC8029] | ||||
| * "Active OAM for Service Function Chaining (SFC)" [OAM-for-SFC] | ||||
| * "BIER Ping and Trace" [BIER-PING] | ||||
| It is expected that the specification of the instantiation of each of | It is expected that the specification of the instantiation of each of | |||
| these extensions will be done in the form of an RFC jointly designed | these extensions will be done in the form of an RFC jointly designed | |||
| by the working group that develops or maintains the echo request/ | by the working group that develops or maintains the echo request/ | |||
| reply protocol and the IETF IP Performance Measurement (IPPM) Working | reply protocol and the IETF IP Performance Measurement (IPPM) Working | |||
| Group. | Group. | |||
| Note that in this document the echo request/reply mechanism used in | In this document, note that the echo request/reply mechanism used in | |||
| IPv6 does not mean ICMPv6 Echo Request/Reply [RFC4443], but means | IPv6 does not mean ICMPv6 Echo Request/Reply [RFC4443] but does mean | |||
| IPv6 Node Information Query/Reply [RFC4620]. | IPv6 Node Information Query/Reply [RFC4620]. | |||
| Fate sharing is a common requirement for all kinds of active OAM | Fate sharing is a common requirement for all kinds of active OAM | |||
| packets, echo request is among them, in this document that means echo | packets, including echo requests. In this document, that means an | |||
| request is required to traverse a path of IOAM data packet. This | echo request is required to traverse the path of an IOAM data packet. | |||
| requirement can be achieved by, e.g., applying same explicit path or | This requirement can be achieved by, e.g., applying the same explicit | |||
| ECMP processing to both echo request and IOAM data packet. Specific | path or ECMP processing to both echo request and IOAM data packets. | |||
| to apply same ECMP processing to both echo request and IOAM data | Specifically, the same ECMP processing can be applied to both echo | |||
| packet, one possible way is to populate the same value(s) of ECMP | request and IOAM data packets, by populating the same value or values | |||
| affecting field(s) in the echo request. | in any ECMP affecting fields of the packets. | |||
| 2. Conventions | 2. Conventions | |||
| 2.1. Requirements Language | 2.1. Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 2.2. Abbreviations | 2.2. Abbreviations | |||
| BIER: Bit Index Explicit Replication | BIER: Bit Index Explicit Replication | |||
| BGP: Border Gateway Protocol | BGP: Border Gateway Protocol | |||
| DEX: Direct Export | DEX: Direct Export | |||
| ECMP: Equal-Cost Multipath | ECMP: Equal-Cost Multipath | |||
| E2E: Edge to Edge | E2E: Edge to Edge | |||
| ICMP: Internet Control Message Protocol | ICMP: Internet Control Message Protocol | |||
| IGP: Interior Gateway Protocol | IGP: Interior Gateway Protocol | |||
| IOAM: In situ Operations, Administration, and Maintenance | IOAM: In situ Operations, Administration, and Maintenance | |||
| LSP: Label Switched Path | LSP: Label Switched Path | |||
| MPLS: Multi-Protocol Label Switching | MPLS: Multiprotocol Label Switching | |||
| MTU: Maximum Transmission Unit | MTU: Maximum Transmission Unit | |||
| NTP: Network Time Protocol | NETCONF: Network Configuration Protocol | |||
| OAM: Operations, Administration, and Maintenance | NTP: Network Time Protocol | |||
| PCEP: Path Computation Element (PCE) Communication Protocol | OAM: Operations, Administration, and Maintenance | |||
| POSIX: Portable Operating System Interface | PCEP: Path Computation Element Communication Protocol | |||
| POT: Proof of Transit | ||||
| PTP: Precision Time Protocol | POSIX: Portable Operating System Interface | |||
| SR-MPLS: Segment Routing with MPLS data plane | POT: Proof of Transit | |||
| SRv6: Segment Routing with IPv6 data plane | PTP: Precision Time Protocol | |||
| SFC: Service Function Chain | SoP: Size of POT | |||
| TTL: Time to Live, this is also the Hop Limit field in the IPv6 | SR-MPLS: Segment Routing over MPLS | |||
| header | ||||
| SRv6: Segment Routing over IPv6 | ||||
| SFC: Service Function Chain | ||||
| TTL: Time to Live (this is also the Hop Limit field in the IPv6 | ||||
| header) | ||||
| TSF: TimeStamp Format | ||||
| 3. IOAM Capabilities Formats | 3. IOAM Capabilities Formats | |||
| 3.1. IOAM Capabilities Query Container | 3.1. IOAM Capabilities Query Container | |||
| For echo request, IOAM Capabilities Query uses a container which has | For echo requests, the IOAM Capabilities Query uses a container that | |||
| the following format: | has the following format: | |||
| 0 1 2 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 | 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 Capabilities Query Container Header . | . IOAM Capabilities Query Container Header . | |||
| . . | . . | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| . . | . . | |||
| . List of IOAM Namespace-IDs . | . List of IOAM Namespace-IDs . | |||
| . . | . . | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 1: IOAM Capabilities Query Container of Echo Request | Figure 1: IOAM Capabilities Query Container of an Echo Request | |||
| When this container is present in the echo request sent by an IOAM | When this container is present in the echo request sent by an IOAM | |||
| encapsulating node, that means the IOAM encapsulating node requests | encapsulating node, the IOAM encapsulating node requests that the | |||
| the receiving node to reply with its enabled IOAM capabilities. If | receiving node reply with its enabled IOAM capabilities. If there is | |||
| there is no IOAM capability to be reported by the receiving node, | no IOAM capability to be reported by the receiving node, then this | |||
| then this container MUST be ignored by the receiving node, which | container MUST be ignored by the receiving node. This means the | |||
| means the receiving node MUST send an echo reply without IOAM | receiving node MUST send an echo reply without IOAM capabilities or | |||
| capabilities or no echo reply, in the light of whether the echo | no echo reply, in the light of whether the echo request includes | |||
| request includes other containers than the IOAM Capabilities Query | containers other than the IOAM Capabilities Query Container. A list | |||
| Container. A list of IOAM Namespace-IDs (one or more Namespace-IDs) | of IOAM Namespace-IDs (one or more Namespace-IDs) MUST be included in | |||
| MUST be included in this container in the echo request, and if | this container in the echo request; if present, the Default- | |||
| present, the Default-Namespace-ID 0x0000 MUST be placed at the | Namespace-ID 0x0000 MUST be placed at the beginning of the list of | |||
| beginning of the list of IOAM Namespace-IDs. The IOAM encapsulating | IOAM Namespace-IDs. The IOAM encapsulating node requests only the | |||
| node requests only the enabled IOAM capabilities that match one of | enabled IOAM capabilities that match one of the Namespace-IDs. | |||
| the Namespace-IDs. Inclusion of the Default-Namespace-ID 0x0000 | Inclusion of the Default-Namespace-ID 0x0000 elicits replies only for | |||
| elicits replies only for capabilities that are configured with the | capabilities that are configured with the Default-Namespace-ID | |||
| Default-Namespace-ID 0x0000.The Namespace-ID has the same definition | 0x0000. The Namespace-ID has the same definition as what's specified | |||
| as what's specified in Section 4.3 of [RFC9197]. | in Section 4.3 of [RFC9197]. | |||
| The IOAM Capabilities Query Container has a container header that is | The IOAM Capabilities Query Container has a container header that is | |||
| used to identify the type and optionally length of the container | used to identify the type and, optionally, the length of the | |||
| payload, and the container payload (List of IOAM Namespace-IDs) is | container payload. The container payload (List of IOAM Namespace- | |||
| zero-padded to align to a 4-octet boundary. Since the Default- | IDs) is zero-padded to align with a 4-octet boundary. Since the | |||
| Namespace-ID of 0x0000 is mandated to appear first in the list, any | Default-Namespace-ID 0x0000 is mandated to appear first in the list, | |||
| other occurrences of 0x0000 MUST be disregarded. | any other occurrences of 0x0000 MUST be disregarded. | |||
| The length, structure, and definition of the IOAM Capabilities Query | The length, structure, and definition of the IOAM Capabilities Query | |||
| Container Header depends on the specific deployment environment. | Container Header depend on the specific deployment environment. | |||
| 3.2. IOAM Capabilities Response Container | 3.2. IOAM Capabilities Response Container | |||
| For echo reply, IOAM Capabilities Response uses a container which has | For echo replies, the IOAM Capabilities Response uses a container | |||
| the following format: | that has the following format: | |||
| 0 1 2 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 | 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 Capabilities Response Container Header . | . IOAM Capabilities Response Container Header . | |||
| . . | . . | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| . . | . . | |||
| . List of IOAM Capabilities Objects . | . List of IOAM Capabilities Objects . | |||
| . . | . . | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 2: IOAM Capabilities Response Container of Echo Reply | Figure 2: IOAM Capabilities Response Container for an Echo Reply | |||
| When this container is present in the echo reply sent by an IOAM | When this container is present in the echo reply sent by an IOAM | |||
| transit node or IOAM decapsulating node, that means the IOAM function | transit node or IOAM decapsulating node, the IOAM function is enabled | |||
| is enabled at this node, and this container contains the enabled IOAM | at this node, and this container contains the enabled IOAM | |||
| capabilities of the sender. A list of IOAM capabilities objects (one | capabilities of the sender. A list of IOAM capabilities objects (one | |||
| or more objects) which contains the enabled IOAM capabilities MUST be | or more objects) that contains the enabled IOAM capabilities MUST be | |||
| included in this container of echo reply except the sender encounters | included in this container of the echo reply unless the sender | |||
| an error (e.g., no matched Namespace-ID). | encounters an error (e.g., no matched Namespace-ID). | |||
| The IOAM Capabilities Response Container has a container header that | The IOAM Capabilities Response Container has a container header that | |||
| is used to identify the type and optionally length of the container | is used to identify the type and, optionally, the length of the | |||
| payload. The container header MUST be defined such that it falls on | container payload. The container header MUST be defined such that it | |||
| a four-octet boundary. | falls on a 4-octet boundary. | |||
| The length, structure, and definition of the IOAM Capabilities | The length, structure, and definition of the IOAM Capabilities | |||
| Response Container Header depends on the specific deployment | Response Container Header depends on the specific deployment | |||
| environment. | environment. | |||
| Based on the IOAM data fields defined in [RFC9197] and [RFC9326], six | Based on the IOAM data fields defined in [RFC9197] and [RFC9326], six | |||
| types of objects are defined in this document. The same type of | types of objects are defined in this document. The same type of | |||
| object MAY be present in the IOAM Capabilities Response Container | object MAY be present in the IOAM Capabilities Response Container | |||
| more than once, only if with a different Namespace-ID. | more than once, only if listed with a different Namespace-ID. | |||
| Similar to the container, each object has an object header that is | Similar to the container, each object has an object header that is | |||
| used to identify the type and length of the object payload. The | used to identify the type and length of the object payload. The | |||
| object payload MUST be defined such that it falls on a four-octet | object payload MUST be defined such that it falls on a 4-octet | |||
| boundary. | boundary. | |||
| The length, structure, and definition of Object Header depends on the | The length, structure, and definition of the object header depends on | |||
| specific deployment environment. | the specific deployment environment. | |||
| 3.2.1. IOAM Pre-allocated Tracing Capabilities Object | 3.2.1. IOAM Pre-allocated Tracing Capabilities Object | |||
| 0 1 2 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 | 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 Pre-allocated Tracing Capabilities Object Header . | . IOAM Pre-allocated Tracing Capabilities Object Header . | |||
| . . | . . | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | IOAM-Trace-Type | Reserved |W| | | IOAM-Trace-Type | Reserved |W| | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Namespace-ID | Ingress_MTU | | | Namespace-ID | Ingress_MTU | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Ingress_if_id (short or wide format) ...... | | | Ingress_if_id (short or wide format) ...... | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 3: IOAM Pre-allocated Tracing Capabilities Object | Figure 3: IOAM Pre-allocated Tracing Capabilities Object | |||
| When this Object is present in the IOAM Capabilities Response | When the IOAM Pre-allocated Tracing Capabilities Object is present in | |||
| Container, that means the sending node is an IOAM transit node and | the IOAM Capabilities Response Container, the sending node is an IOAM | |||
| the IOAM pre-allocated tracing function is enabled at this IOAM | transit node, and the IOAM pre-allocated tracing function is enabled | |||
| transit node. | at this IOAM transit node. | |||
| IOAM-Trace-Type field has the same definition as what's specified in | The IOAM-Trace-Type field has the same definition as what's specified | |||
| Section 4.4 of [RFC9197]. | in Section 4.4 of [RFC9197]. | |||
| Reserved field is reserved for future use and MUST be set to zero, | The Reserved field MUST be zeroed on transmission and ignored on | |||
| and MUST be ignored when non-zero. | receipt. | |||
| W flag indicates whether Ingress_if_id is in short or wide format. | The W flag indicates whether Ingress_if_id is in short or wide | |||
| The W-bit is set if the Ingress_if_id is in wide format. The W-bit | format. The W-bit is set if the Ingress_if_id is in wide format. | |||
| is clear if the Ingress_if_id is in short format. | The W-bit is clear if the Ingress_if_id is in short format. | |||
| Namespace-ID field has the same definition as what's specified in | The Namespace-ID field has the same definition as what's specified in | |||
| Section 4.3 of [RFC9197], it MUST be one of the Namespace-IDs listed | Section 4.3 of [RFC9197]. It MUST be one of the Namespace-IDs listed | |||
| in the IOAM Capabilities Query Object of the echo request. | in the IOAM Capabilities Query Object of the echo request. | |||
| Ingress_MTU field has 16 bits and specifies the MTU (in octets) of | The Ingress_MTU field has 16 bits and specifies the MTU (in octets) | |||
| the ingress interface from which the sending node received echo | of the ingress interface from which the sending node received the | |||
| request. | echo request. | |||
| Ingress_if_id field has 16 bits (in short format) or 32 bits (in wide | The Ingress_if_id field has 16 bits (in short format) or 32 bits (in | |||
| format) and specifies the identifier of the ingress interface from | wide format) and specifies the identifier of the ingress interface | |||
| which the sending node received echo request. If the W-bit is | from which the sending node received the echo request. If the W-bit | |||
| cleared that indicates Ingress_if_id field has 16 bits, then the 16 | is cleared, the Ingress_if_id field has 16 bits; then the 16 bits | |||
| bits following the Ingress_if_id field are reserved for future use | following the Ingress_if_id field are reserved for future use, MUST | |||
| and MUST be set to zero, and MUST be ignored when non-zero. | be set to zero, and MUST be ignored when non-zero. | |||
| 3.2.2. IOAM Incremental Tracing Capabilities Object | 3.2.2. IOAM Incremental Tracing Capabilities Object | |||
| 0 1 2 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 | 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 Incremental Tracing Capabilities Object Header . | . IOAM Incremental Tracing Capabilities Object Header . | |||
| . . | . . | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | IOAM-Trace-Type | Reserved |W| | | IOAM-Trace-Type | Reserved |W| | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Namespace-ID | Ingress_MTU | | | Namespace-ID | Ingress_MTU | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Ingress_if_id (short or wide format) ...... | | | Ingress_if_id (short or wide format) ...... | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 4: IOAM Incremental Tracing Capabilities Object | Figure 4: IOAM Incremental Tracing Capabilities Object | |||
| When this Object is present in the IOAM Capabilities Response | When the IOAM Incremental Tracing Capabilities Object is present in | |||
| Container, that means the sending node is an IOAM transit node and | the IOAM Capabilities Response Container, the sending node is an IOAM | |||
| the IOAM incremental tracing function is enabled at this IOAM transit | transit node, and the IOAM incremental tracing function is enabled at | |||
| node. | this IOAM transit node. | |||
| IOAM-Trace-Type field has the same definition as what's specified in | The IOAM-Trace-Type field has the same definition as what's specified | |||
| Section 4.4 of [RFC9197]. | in Section 4.4 of [RFC9197]. | |||
| Reserved field is reserved for future use and MUST be set to zero, | The Reserved field MUST be zeroed on transmission and ignored on | |||
| and MUST be ignored when non-zero. | receipt. | |||
| W flag indicates whether Ingress_if_id is in short or wide format. | The W flag indicates whether Ingress_if_id is in short or wide | |||
| The W-bit is set if the Ingress_if_id is in wide format. The W-bit | format. The W-bit is set if the Ingress_if_id is in wide format. | |||
| is clear if the Ingress_if_id is in short format. | The W-bit is clear if the Ingress_if_id is in short format. | |||
| Namespace-ID field has the same definition as what's specified in | The Namespace-ID field has the same definition as what's specified in | |||
| Section 4.3 of [RFC9197], it MUST be one of the Namespace-IDs listed | Section 4.3 of [RFC9197]. It MUST be one of the Namespace-IDs listed | |||
| in the IOAM Capabilities Query Object of the echo request. | in the IOAM Capabilities Query Object of the echo request. | |||
| Ingress_MTU field has 16 bits and specifies the MTU (in octets) of | The Ingress_MTU field has 16 bits and specifies the MTU (in octets) | |||
| the ingress interface from which the sending node received echo | of the ingress interface from which the sending node received the | |||
| request. | echo request. | |||
| Ingress_if_id field has 16 bits (in short format) or 32 bits (in wide | The Ingress_if_id field has 16 bits (in short format) or 32 bits (in | |||
| format) and specifies the identifier of the ingress interface from | wide format) and specifies the identifier of the ingress interface | |||
| which the sending node received echo request. If the W-bit is | from which the sending node received the echo request. If the W-bit | |||
| cleared that indicates Ingress_if_id field has 16 bits, then the 16 | is cleared, the Ingress_if_id field has 16 bits; then the 16 bits | |||
| bits following the Ingress_if_id field are reserved for future use | following the Ingress_if_id field are reserved for future use, MUST | |||
| and MUST be set to zero, and MUST be ignored when non-zero. | be set to zero, and MUST be ignored when non-zero. | |||
| 3.2.3. IOAM Proof-of-Transit Capabilities Object | 3.2.3. IOAM Proof of Transit Capabilities Object | |||
| 0 1 2 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 | 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 Proof-of-Transit Capabilities Object Header . | . IOAM Proof of Transit Capabilities Object Header . | |||
| . . | . . | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Namespace-ID | IOAM-POT-Type |SoP| Reserved | | | Namespace-ID | IOAM-POT-Type |SoP| Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 5: IOAM Proof-of-Transit Capabilities Object | Figure 5: IOAM Proof of Transit Capabilities Object | |||
| When this Object is present in the IOAM Capabilities Response | When the IOAM Proof of Transit Capabilities Object is present in the | |||
| Container, that means the sending node is an IOAM transit node and | IOAM Capabilities Response Container, the sending node is an IOAM | |||
| the IOAM Proof of Transit function is enabled at this IOAM transit | transit node and the IOAM Proof of Transit function is enabled at | |||
| node. | this IOAM transit node. | |||
| Namespace-ID field has the same definition as what's specified in | The Namespace-ID field has the same definition as what's specified in | |||
| Section 4.3 of [RFC9197], it MUST be one of the Namespace-IDs listed | Section 4.3 of [RFC9197]. It MUST be one of the Namespace-IDs listed | |||
| in the IOAM Capabilities Query Object of the echo request. | in the IOAM Capabilities Query Object of the echo request. | |||
| IOAM-POT-Type field has the same definition as what's specified in | The IOAM-POT-Type field has the same definition as what's specified | |||
| Section 4.5 of [RFC9197]. | in Section 4.5 of [RFC9197]. | |||
| SoP (Size of POT) field has two bits, which means the size of "PktID" | The SoP (Size of POT) field has two bits that indicate the size of | |||
| and "Cumulative" data that are specified in Section 4.5 of [RFC9197]. | "PktID" and "Cumulative" data, which are specified in Section 4.5 of | |||
| This document defines SoP as follows: | [RFC9197]. This document defines SoP as follows: | |||
| 0b00 means 64-bit "PktID" and 64-bit "Cumulative" data. | 0b00: 64-bit "PktID" and 64-bit "Cumulative" data | |||
| 0b01~0b11: Reserved for future standardization | 0b01~0b11: reserved for future standardization | |||
| Reserved field is reserved for future use and MUST be set to zero, | The Reserved field MUST be zeroed on transmission and ignored on | |||
| and MUST be ignored when non-zero. | receipt. | |||
| 3.2.4. IOAM Edge-to-Edge Capabilities Object | 3.2.4. IOAM Edge-to-Edge Capabilities Object | |||
| 0 1 2 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 | 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 Edge-to-Edge Capabilities Object Header . | . IOAM Edge-to-Edge Capabilities Object Header . | |||
| . . | . . | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Namespace-ID | IOAM-E2E-Type | | | Namespace-ID | IOAM-E2E-Type | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| |TSF| Reserved | Reserved | | |TSF| Reserved | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 6: IOAM Edge-to-Edge Capabilities Object | Figure 6: IOAM Edge-to-Edge Capabilities Object | |||
| When this Object is present in the IOAM Capabilities Response | When the IOAM Edge-to-Edge Capabilities Object is present in the IOAM | |||
| Container, that means the sending node is an IOAM decapsulating node | Capabilities Response Container, the sending node is an IOAM | |||
| and IOAM edge-to-edge function is enabled at this IOAM decapsulating | decapsulating node and IOAM edge-to-edge function is enabled at this | |||
| node. | IOAM decapsulating node. | |||
| Namespace-ID field has the same definition as what's specified in | The Namespace-ID field has the same definition as what's specified in | |||
| Section 4.3 of [RFC9197], it MUST be one of the Namespace-IDs listed | Section 4.3 of [RFC9197]. It MUST be one of the Namespace-IDs listed | |||
| in the IOAM Capabilities Query Object of the echo request. | in the IOAM Capabilities Query Object of the echo request. | |||
| IOAM-E2E-Type field has the same definition as what's specified in | The IOAM-E2E-Type field has the same definition as what's specified | |||
| Section 4.6 of [RFC9197]. | in Section 4.6 of [RFC9197]. | |||
| TSF field specifies the timestamp format used by the sending node. | The TSF field specifies the timestamp format used by the sending | |||
| Aligned with three possible timestamp formats specified in Section 5 | node. Aligned with three possible timestamp formats specified in | |||
| of [RFC9197], this document defines TSF as follows: | Section 5 of [RFC9197], this document defines TSF as follows: | |||
| 0b00: PTP truncated timestamp format | 0b00: PTP truncated timestamp format | |||
| 0b01: NTP 64-bit timestamp format | 0b01: NTP 64-bit timestamp format | |||
| 0b10: POSIX-based timestamp format | 0b10: POSIX-based timestamp format | |||
| 0b11: Reserved for future standardization | 0b11: Reserved for future standardization | |||
| Reserved field is reserved for future use and MUST be set to zero, | The Reserved field MUST be zeroed on transmission and ignored on | |||
| and MUST be ignored when non-zero. | receipt. | |||
| 3.2.5. IOAM DEX Capabilities Object | 3.2.5. IOAM DEX Capabilities Object | |||
| 0 1 2 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 | 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 DEX Capabilities Object Header . | . IOAM DEX Capabilities Object Header . | |||
| . . | . . | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | IOAM-Trace-Type | Reserved | | | IOAM-Trace-Type | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Namespace-ID | Reserved | | | Namespace-ID | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 7: IOAM DEX Capabilities Object | Figure 7: IOAM DEX Capabilities Object | |||
| When this Object is present in the IOAM Capabilities Response | When the IOAM DEX Capabilities Object is present in the IOAM | |||
| Container, that means the sending node is an IOAM transit node and | Capabilities Response Container, the sending node is an IOAM transit | |||
| the IOAM direct exporting function is enabled at this IOAM transit | node and the IOAM direct exporting function is enabled at this IOAM | |||
| node. | transit node. | |||
| IOAM-Trace-Type field has the same definition as what's specified in | The IOAM-Trace-Type field has the same definition as what's specified | |||
| Section 3.2 of [RFC9326]. | in Section 3.2 of [RFC9326]. | |||
| Namespace-ID field has the same definition as what's specified in | The Namespace-ID field has the same definition as what's specified in | |||
| Section 4.3 of [RFC9197], it MUST be one of the Namespace-IDs listed | Section 4.3 of [RFC9197]. It MUST be one of the Namespace-IDs listed | |||
| in the IOAM Capabilities Query Object of the echo request. | in the IOAM Capabilities Query Object of the echo request. | |||
| Reserved field is reserved for future use and MUST be set to zero, | The Reserved field MUST be zeroed on transmission and ignored on | |||
| and MUST be ignored when non-zero. | receipt. | |||
| 3.2.6. IOAM End-of-Domain Object | 3.2.6. IOAM End-of-Domain Object | |||
| 0 1 2 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 | 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 End-of-Domain Object Header . | . IOAM End-of-Domain Object Header . | |||
| . . | . . | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| | Namespace-ID | Must Be Zero | | | Namespace-ID | Reserved | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 8: IOAM End-of-Domain Object | Figure 8: IOAM End-of-Domain Object | |||
| When this Object is present in the IOAM Capabilities Response | When the IOAM End-of-Domain Object is present in the IOAM | |||
| Container, that means the sending node is an IOAM decapsulating node. | Capabilities Response Container, the sending node is an IOAM | |||
| Unless the IOAM Edge-to-Edge Capabilities Object is present, which | decapsulating node. Unless the IOAM Edge-to-Edge Capabilities Object | |||
| also indicates that the sending node is an IOAM decapsulating node, | is present, which also indicates that the sending node is an IOAM | |||
| the End-of-Domain Object MUST be present in the IOAM Capabilities | decapsulating node, the IOAM End-of-Domain Object MUST be present in | |||
| Response Container sent by an IOAM decapsulating node. When the IOAM | the IOAM Capabilities Response Container sent by an IOAM | |||
| edge-to-edge function is enabled at the IOAM decapsulating node, it's | decapsulating node. When the IOAM edge-to-edge function is enabled | |||
| RECOMMENDED to include only the IOAM Edge-to-Edge Capabilities Object | at the IOAM decapsulating node, including only the IOAM Edge-to-Edge | |||
| but not the IOAM End-of-Domain Object. | Capabilities Object, not the IOAM End-of-Domain Object, is | |||
| RECOMMENDED. | ||||
| Namespace-ID field has the same definition as what's specified in | The Namespace-ID field has the same definition as what's specified in | |||
| Section 4.3 of [RFC9197], it MUST be one of the Namespace-IDs listed | Section 4.3 of [RFC9197]. It MUST be one of the Namespace-IDs listed | |||
| in the IOAM Capabilities Query Container. | in the IOAM Capabilities Query Container. | |||
| Reserved field MUST be zeroed on transmission and ignored on receipt. | ||||
| 4. Operational Guide | 4. Operational Guide | |||
| Once the IOAM encapsulating node is triggered to discover the enabled | Once the IOAM encapsulating node is triggered to discover the enabled | |||
| IOAM capabilities of each IOAM transit and IOAM decapsulating node, | IOAM capabilities of each IOAM transit and IOAM decapsulating node, | |||
| the IOAM encapsulating node will send echo requests that include the | the IOAM encapsulating node will send echo requests that include the | |||
| IOAM Capabilities Query Container. First, with TTL equal to 1 to | IOAM Capabilities Query Container as follows: | |||
| reach the closest node, which may be an IOAM transit node or not. | ||||
| Then with TTL equal to 2 to reach the second-nearest node, which also | * First, with TTL equal to 1 to reach the closest node (which may or | |||
| may be an IOAM transit node or not. And further, increasing by 1 the | may not be an IOAM transit node). | |||
| TTL every time the IOAM encapsulating node sends a new echo request, | ||||
| until the IOAM encapsulating node receives an echo reply sent by the | * Then, with TTL equal to 2 to reach the second-nearest node (which | |||
| IOAM decapsulating node, which contains the IOAM Capabilities | also may or may not be an IOAM transit node). | |||
| Response Container including the IOAM Edge-to-Edge Capabilities | ||||
| Object or the IOAM End-of-Domain Object. As a result, the echo | * Then, further increasing by 1 the TTL every time the IOAM | |||
| requests sent by the IOAM encapsulating node will reach all nodes one | encapsulating node sends a new echo request, until the IOAM | |||
| by one along the transport path of IOAM data packet. Alternatively, | encapsulating node receives an echo reply sent by the IOAM | |||
| if the IOAM encapsulating node knows precisely all the IOAM transit | decapsulating node (which contains the IOAM Capabilities Response | |||
| and IOAM decapsulating nodes beforehand, once the IOAM encapsulating | Container including the IOAM Edge-to-Edge Capabilities Object or | |||
| node is triggered to discover the enabled IOAM capabilities, it can | the IOAM End-of-Domain Object). | |||
| send an echo request to each IOAM transit and IOAM decapsulating node | ||||
| directly, without TTL expiration. | As a result, the echo requests sent by the IOAM encapsulating node | |||
| will reach all nodes one by one along the transport path of IOAM data | ||||
| packet. | ||||
| Alternatively, if the IOAM encapsulating node knows precisely all the | ||||
| IOAM transit and IOAM decapsulating nodes beforehand, once the IOAM | ||||
| encapsulating node is triggered to discover the enabled IOAM | ||||
| capabilities, it can send an echo request to each IOAM transit and | ||||
| IOAM decapsulating node directly, without TTL expiration. | ||||
| The IOAM encapsulating node may be triggered by the device | The IOAM encapsulating node may be triggered by the device | |||
| administrator, the network management system, the network controller, | administrator, the network management system, the network controller, | |||
| or data traffic. The specific triggering mechanisms are outside the | or data traffic. The specific triggering mechanisms are outside the | |||
| scope of this document. | scope of this document. | |||
| Each IOAM transit and IOAM decapsulating node that receives an echo | Each IOAM transit and IOAM decapsulating node that receives an echo | |||
| request containing the IOAM Capabilities Query Container will send an | request containing the IOAM Capabilities Query Container will send an | |||
| echo reply to the IOAM encapsulating node. For the echo reply, there | echo reply to the IOAM encapsulating node. For the echo reply, there | |||
| is an IOAM Capabilities Response Container containing one or more | is an IOAM Capabilities Response Container containing one or more | |||
| Objects. The IOAM Capabilities Query Container of the echo request | Objects. The IOAM Capabilities Query Container of the echo request | |||
| would be ignored by the receiving node unaware of IOAM. | would be ignored by the receiving node unaware of IOAM. | |||
| Note that the mechanism defined in this document applies to all kinds | Note that the mechanism defined in this document applies to all kinds | |||
| of IOAM option types, whether the four types of IOAM option defined | of IOAM option types, whether the four types of IOAM options defined | |||
| in [RFC9197] or the DEX type of IOAM option defined in [RFC9326], | in [RFC9197] or the DEX type of IOAM option defined in [RFC9326]. | |||
| specifically, when applied to the IOAM DEX option, it allows the IOAM | Specifically, when applied to the IOAM DEX option, the mechanism | |||
| encapsulating node to discover which nodes along the transport path | allows the IOAM encapsulating node to discover which nodes along the | |||
| support IOAM direct exporting and which trace data types are | transport path support IOAM direct exporting and which trace data | |||
| supported to be directly exported at these nodes. | types are supported to be directly exported at these nodes. | |||
| 5. IANA Considerations | 5. IANA Considerations | |||
| This document requests the following IANA Actions. | IANA has created a registry named "In Situ OAM (IOAM) Capabilities". | |||
| IANA is requested to create a registry group named "In-Situ OAM | ||||
| (IOAM) Capabilities Parameters". | ||||
| This group will include the following registries: | This registry includes the following subregistries: | |||
| * IOAM SoP Capability | * IOAM SoP Capability | |||
| * IOAM TSF Capability | * IOAM TSF Capability | |||
| New registries in this group can be created via RFC Required process | ||||
| as per [RFC8126]. | ||||
| The subsequent subsections detail the registries herein contained. | The subsequent subsections detail the registries herein contained. | |||
| Considering the Containers/Objects defined in this document would be | Considering the Containers/Objects defined in this document that | |||
| carried in different types of Echo Request/Reply messages, such as | would be carried in different types of Echo Request/Reply messages, | |||
| ICMPv6 or LSP Ping, it is intended that the registries for Container/ | such as ICMPv6 or LSP Ping, it is intended that the registries for | |||
| Object Type would be requested in subsequent documents. | Container/Object Type would be requested in subsequent documents. | |||
| 5.1. IOAM SoP Capability Registry | 5.1. IOAM SoP Capability Registry | |||
| This registry defines 4 code points for the IOAM SoP Capability field | This registry defines four codepoints for the IOAM SoP Capability | |||
| for identifying the size of "PktID" and "Cumulative" data as | field for identifying the size of "PktID" and "Cumulative" data as | |||
| explained in Section 4.5 of [RFC9197]. | explained in Section 4.5 of [RFC9197]. | |||
| A new entry in this registry requires the following fields: | A new entry in this registry requires the following fields: | |||
| * SoP: size of POT; a two-bit binary field as defined in | * SoP (Size of POT): a 2-bit binary field as defined in | |||
| Section 3.2.3 | Section 3.2.3. | |||
| * Description: a terse description of the meaning of this SoP value | * Description: a terse description of the meaning of this SoP value. | |||
| The registry initially contains the following value: | The registry initially contains the following value: | |||
| SoP Description | +======+=============================================+ | |||
| ---- ----------- | | SoP | Description | | |||
| 0b00 64-bit "PktID" and 64-bit "Cumulative" data | +======+=============================================+ | |||
| | 0b00 | 64-bit "PktID" and 64-bit "Cumulative" data | | ||||
| +------+---------------------------------------------+ | ||||
| 0b01 - 0b11 are available for assignment via IETF Review process as | Table 1: SoP and Description | |||
| per [RFC8126]. | ||||
| 0b01 - 0b11 are available for assignment via the IETF Review process | ||||
| as per [RFC8126]. | ||||
| 5.2. IOAM TSF Capability Registry | 5.2. IOAM TSF Capability Registry | |||
| This registry defines 4 code points for the IOAM TSF Capability field | This registry defines four codepoints for the IOAM TSF Capability | |||
| for identifying the timestamp format as explained in Section 5 of | field for identifying the timestamp format as explained in Section 5 | |||
| [RFC9197]. | of [RFC9197]. | |||
| A new entry in this registry requires the following fields: | A new entry in this registry requires the following fields: | |||
| * TSF: timestamp format; a two-bit binary field as defined in | * TSF (TimeStamp Format): a 2-bit binary field as defined in | |||
| Section 3.2.4 | Section 3.2.4. | |||
| * Description: a terse description of the meaning of this TSF value | * Description: a terse description of the meaning of this TSF value. | |||
| The registry initially contains the following values: | The registry initially contains the following values: | |||
| TSF Description | +======+================================+ | |||
| ---- ----------- | | TSF | Description | | |||
| 0b00 PTP Truncated Timestamp Format | +======+================================+ | |||
| 0b01 NTP 64-bit Timestamp Format | | 0b00 | PTP Truncated Timestamp Format | | |||
| 0b10 POSIX-based Timestamp Format | +------+--------------------------------+ | |||
| | 0b01 | NTP 64-bit Timestamp Format | | ||||
| +------+--------------------------------+ | ||||
| | 0b10 | POSIX-based Timestamp Format | | ||||
| +------+--------------------------------+ | ||||
| 0b11 is available for assignment via IETF Review process as per | Table 2: TSF and Description | |||
| 0b11 is available for assignment via the IETF Review process as per | ||||
| [RFC8126]. | [RFC8126]. | |||
| 6. Security Considerations | 6. Security Considerations | |||
| Overall, the security needs for IOAM capabilities query mechanisms | Overall, the security needs for IOAM capabilities query mechanisms | |||
| used in different environments are similar. | used in different environments are similar. | |||
| To avoid potential Denial-of-Service (DoS) attacks, it is RECOMMENDED | To avoid potential Denial-of-Service (DoS) attacks, it is RECOMMENDED | |||
| that implementations apply rate-limiting to incoming echo requests | that implementations apply rate-limiting to incoming echo requests | |||
| and replies. | and replies. | |||
| To protect against unauthorized sources using echo request messages | To protect against unauthorized sources using echo request messages | |||
| to obtain IOAM Capabilities information, implementations MUST provide | to obtain IOAM Capabilities information, implementations MUST provide | |||
| a means of checking the source addresses of echo request messages | a means of checking the source addresses of echo request messages | |||
| against an access list before accepting the message. | against an access list before accepting the message. | |||
| A deployment MUST ensure that border filtering drops inbound echo | A deployment MUST ensure that border-filtering drops inbound echo | |||
| requests with an IOAM Capabilities Container Header from outside of | requests with an IOAM Capabilities Container Header from outside of | |||
| the domain, and drops outbound echo request/replies with IOAM | the domain and that drops outbound echo requests or replies with IOAM | |||
| Capabilities Headers leaving the domain. | Capabilities Headers leaving the domain. | |||
| A deployment MUST support the configuration option to enable/disable | A deployment MUST support the configuration option to enable or | |||
| the IOAM Capabilities Discovery feature defined in this document. By | disable the IOAM Capabilities Discovery feature defined in this | |||
| default, the IOAM Capabilities Discovery feature MUST be disabled. | document. By default, the IOAM Capabilities Discovery feature MUST | |||
| be disabled. | ||||
| The integrity protection on IOAM Capabilities information carried in | The integrity protection on IOAM Capabilities information carried in | |||
| echo reply messages can be achieved by the underlying transport. For | echo reply messages can be achieved by the underlying transport. For | |||
| example, if the environment is an IPv6 network, the IP Authentication | example, if the environment is an IPv6 network, the IP Authentication | |||
| Header [RFC4302] or IP Encapsulating Security Payload Header | Header [RFC4302] or IP Encapsulating Security Payload Header | |||
| [RFC4303] can be used. | [RFC4303] can be used. | |||
| The collected IOAM Capabilities information by queries may be | The collected IOAM Capabilities information by queries may be | |||
| considered confidential. An implementation can use secure underlying | considered confidential. An implementation can use secure underlying | |||
| transport of echo request/reply to provide privacy protection. For | transport of echo requests or replies to provide privacy protection. | |||
| example, if the environment is an IPv6 network, confidentiality can | For example, if the environment is an IPv6 network, confidentiality | |||
| be achieved by using the IP Encapsulating Security Payload Header | can be achieved by using the IP Encapsulating Security Payload Header | |||
| [RFC4303]. | [RFC4303]. | |||
| An implementation can also directly secure the data carried in echo | An implementation can also directly secure the data carried in echo | |||
| requests and replies if needed, the specific mechanism on how to | requests and replies if needed, the specific mechanism on how to | |||
| secure the data is beyond the scope of this document. | secure the data is beyond the scope of this document. | |||
| An implementation can also check whether the fields in received echo | An implementation can also check whether the fields in received echo | |||
| requests and replies strictly conform to the specifications, e.g., | requests and replies strictly conform to the specifications, e.g., | |||
| whether the list of IOAM Namespace-IDs includes duplicate entries, | whether the list of IOAM Namespace-IDs includes duplicate entries and | |||
| whether the received Namespace-ID is an operator-assigned or IANA- | whether the received Namespace-ID is an operator-assigned or IANA- | |||
| assigned one, once a check fails, an exception event indicating the | assigned one, once a check fails, an exception event indicating the | |||
| checked field should be reported to the management. | checked field should be reported to the management. | |||
| Except for what's described above, the security issues discussed in | Except for what's described above, the security issues discussed in | |||
| [RFC9197] provide a good guidance on implementation of this | [RFC9197] provide good guidance on implementation of this | |||
| specification. | specification. | |||
| 7. Acknowledgements | 7. References | |||
| The authors would like to acknowledge Tianran Zhou, Dhruv Dhody, | ||||
| Frank Brockners, Cheng Li, Gyan Mishra, Marcus Ihlar, Martin Duke, | ||||
| Chris Lonvick, Eric Vyncke, Alvaro Retana, Paul Wouters, Roman | ||||
| Danyliw, Lars Eggert, Warren Kumari, John Scudder, Robert Wilton, | ||||
| Erik Kline, Zaheduzzaman Sarker and Murray Kucherawy for their | ||||
| careful review and helpful comments. | ||||
| The authors appreciate the f2f discussion with Frank Brockners on | ||||
| this document. | ||||
| The authors would like to acknowledge Tommy Pauly and Ian Swett for | ||||
| their good suggestion and guidance. | ||||
| 8. References | ||||
| 8.1. Normative References | 7.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for | |||
| Writing an IANA Considerations Section in RFCs", BCP 26, | Writing an IANA Considerations Section in RFCs", BCP 26, | |||
| RFC 8126, DOI 10.17487/RFC8126, June 2017, | RFC 8126, DOI 10.17487/RFC8126, June 2017, | |||
| <https://www.rfc-editor.org/info/rfc8126>. | <https://www.rfc-editor.org/info/rfc8126>. | |||
| skipping to change at page 17, line 37 ¶ | skipping to change at line 793 ¶ | |||
| Ed., "Data Fields for In Situ Operations, Administration, | Ed., "Data Fields for In Situ Operations, Administration, | |||
| and Maintenance (IOAM)", RFC 9197, DOI 10.17487/RFC9197, | and Maintenance (IOAM)", RFC 9197, DOI 10.17487/RFC9197, | |||
| May 2022, <https://www.rfc-editor.org/info/rfc9197>. | May 2022, <https://www.rfc-editor.org/info/rfc9197>. | |||
| [RFC9326] Song, H., Gafni, B., Brockners, F., Bhandari, S., and T. | [RFC9326] Song, H., Gafni, B., Brockners, F., Bhandari, S., and T. | |||
| Mizrahi, "In Situ Operations, Administration, and | Mizrahi, "In Situ Operations, Administration, and | |||
| Maintenance (IOAM) Direct Exporting", RFC 9326, | Maintenance (IOAM) Direct Exporting", RFC 9326, | |||
| DOI 10.17487/RFC9326, November 2022, | DOI 10.17487/RFC9326, November 2022, | |||
| <https://www.rfc-editor.org/info/rfc9326>. | <https://www.rfc-editor.org/info/rfc9326>. | |||
| 8.2. Informative References | 7.2. Informative References | |||
| [I-D.ietf-bier-ping] | [BIER-PING] | |||
| Kumar, N., Pignataro, C., Akiya, N., Zheng, L., Chen, M., | Nainar, N. K., Pignataro, C., Akiya, N., Zheng, L., Chen, | |||
| and G. Mirsky, "BIER Ping and Trace", Work in Progress, | M., and G. Mirsky, "BIER Ping and Trace", Work in | |||
| Internet-Draft, draft-ietf-bier-ping-07, 11 May 2020, | Progress, Internet-Draft, draft-ietf-bier-ping-08, 6 March | |||
| <https://www.ietf.org/archive/id/draft-ietf-bier-ping- | 2023, <https://datatracker.ietf.org/doc/html/draft-ietf- | |||
| 07.txt>. | bier-ping-08>. | |||
| [I-D.ietf-sfc-multi-layer-oam] | [OAM-for-SFC] | |||
| Mirsky, G., Meng, W., Ao, T., Khasnabish, B., Leung, K., | Mirsky, G., Meng, W., Ao, T., Khasnabish, B., Leung, K., | |||
| and G. Mishra, "Active OAM for Service Function Chaining | and G. Mishra, "Active OAM for Service Function Chaining | |||
| (SFC)", Work in Progress, Internet-Draft, draft-ietf-sfc- | (SFC)", Work in Progress, Internet-Draft, draft-ietf-sfc- | |||
| multi-layer-oam-22, 25 July 2022, | multi-layer-oam-23, 23 March 2023, | |||
| <https://www.ietf.org/archive/id/draft-ietf-sfc-multi- | <https://datatracker.ietf.org/doc/html/draft-ietf-sfc- | |||
| layer-oam-22.txt>. | multi-layer-oam-23>. | |||
| [RFC4302] Kent, S., "IP Authentication Header", RFC 4302, | [RFC4302] Kent, S., "IP Authentication Header", RFC 4302, | |||
| DOI 10.17487/RFC4302, December 2005, | DOI 10.17487/RFC4302, December 2005, | |||
| <https://www.rfc-editor.org/info/rfc4302>. | <https://www.rfc-editor.org/info/rfc4302>. | |||
| [RFC4303] Kent, S., "IP Encapsulating Security Payload (ESP)", | [RFC4303] Kent, S., "IP Encapsulating Security Payload (ESP)", | |||
| RFC 4303, DOI 10.17487/RFC4303, December 2005, | RFC 4303, DOI 10.17487/RFC4303, December 2005, | |||
| <https://www.rfc-editor.org/info/rfc4303>. | <https://www.rfc-editor.org/info/rfc4303>. | |||
| [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet | [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet | |||
| skipping to change at page 18, line 29 ¶ | skipping to change at line 834 ¶ | |||
| [RFC4620] Crawford, M. and B. Haberman, Ed., "IPv6 Node Information | [RFC4620] Crawford, M. and B. Haberman, Ed., "IPv6 Node Information | |||
| Queries", RFC 4620, DOI 10.17487/RFC4620, August 2006, | Queries", RFC 4620, DOI 10.17487/RFC4620, August 2006, | |||
| <https://www.rfc-editor.org/info/rfc4620>. | <https://www.rfc-editor.org/info/rfc4620>. | |||
| [RFC4884] Bonica, R., Gan, D., Tappan, D., and C. Pignataro, | [RFC4884] Bonica, R., Gan, D., Tappan, D., and C. Pignataro, | |||
| "Extended ICMP to Support Multi-Part Messages", RFC 4884, | "Extended ICMP to Support Multi-Part Messages", RFC 4884, | |||
| DOI 10.17487/RFC4884, April 2007, | DOI 10.17487/RFC4884, April 2007, | |||
| <https://www.rfc-editor.org/info/rfc4884>. | <https://www.rfc-editor.org/info/rfc4884>. | |||
| [RFC8029] Kompella, K., Swallow, G., Pignataro, C., Ed., Kumar, N., | [RFC8029] Kompella, K., Swallow, G., Pignataro, C., Ed., Kumar, N., | |||
| Aldrin, S., Chen, M., and RFC Publisher, "Detecting | Aldrin, S., and M. Chen, "Detecting Multiprotocol Label | |||
| Multiprotocol Label Switched (MPLS) Data-Plane Failures", | Switched (MPLS) Data-Plane Failures", RFC 8029, | |||
| RFC 8029, DOI 10.17487/RFC8029, March 2017, | DOI 10.17487/RFC8029, March 2017, | |||
| <https://www.rfc-editor.org/info/rfc8029>. | <https://www.rfc-editor.org/info/rfc8029>. | |||
| [RFC8335] Bonica, R., Thomas, R., Linkova, J., Lenart, C., and M. | [RFC8335] Bonica, R., Thomas, R., Linkova, J., Lenart, C., and M. | |||
| Boucadair, "PROBE: A Utility for Probing Interfaces", | Boucadair, "PROBE: A Utility for Probing Interfaces", | |||
| RFC 8335, DOI 10.17487/RFC8335, February 2018, | RFC 8335, DOI 10.17487/RFC8335, February 2018, | |||
| <https://www.rfc-editor.org/info/rfc8335>. | <https://www.rfc-editor.org/info/rfc8335>. | |||
| [RFC8799] Carpenter, B. and B. Liu, "Limited Domains and Internet | [RFC8799] Carpenter, B. and B. Liu, "Limited Domains and Internet | |||
| Protocols", RFC 8799, DOI 10.17487/RFC8799, July 2020, | Protocols", RFC 8799, DOI 10.17487/RFC8799, July 2020, | |||
| <https://www.rfc-editor.org/info/rfc8799>. | <https://www.rfc-editor.org/info/rfc8799>. | |||
| Acknowledgements | ||||
| The authors would like to acknowledge Tianran Zhou, Dhruv Dhody, | ||||
| Frank Brockners, Cheng Li, Gyan Mishra, Marcus Ihlar, Martin Duke, | ||||
| Chris Lonvick, Éric Vyncke, Alvaro Retana, Paul Wouters, Roman | ||||
| Danyliw, Lars Eggert, Warren Kumari, John Scudder, Robert Wilton, | ||||
| Erik Kline, Zaheduzzaman Sarker, Murray Kucherawy, and Donald | ||||
| Eastlake 3rd for their careful review and helpful comments. | ||||
| The authors appreciate the f2f discussion with Frank Brockners on | ||||
| this document. | ||||
| The authors would like to acknowledge Tommy Pauly and Ian Swett for | ||||
| their good suggestion and guidance. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Xiao Min | Xiao Min | |||
| ZTE Corp. | ZTE Corp. | |||
| Nanjing | Nanjing | |||
| China | China | |||
| Phone: +86 25 88013062 | Phone: +86 25 88013062 | |||
| Email: xiao.min2@zte.com.cn | Email: xiao.min2@zte.com.cn | |||
| Greg Mirsky | Greg Mirsky | |||
| Ericsson | Ericsson | |||
| United States of America | United States of America | |||
| Email: gregimirsky@gmail.com | Email: gregimirsky@gmail.com | |||
| Lei Bo | Lei Bo | |||
| China Telecom | China Telecom | |||
| Beijing | Beijing | |||
| China | China | |||
| Phone: +86 10 50902903 | Phone: +86 10 50902903 | |||
| End of changes. 135 change blocks. | ||||
| 367 lines changed or deleted | 389 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||