| rfc9359xml2.original.xml | rfc9359.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="iso-8859-1"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <?rfc toc="yes"?> | ||||
| <?rfc symrefs="yes" ?> | ||||
| <?rfc sortrefs="yes" ?> | ||||
| <?rfc compact="yes" ?> | ||||
| <?rfc subcompact="no" ?> | ||||
| <rfc category="std" ipr="trust200902" docName="draft-ietf-ippm-ioam-conf-state-1 | ||||
| 0" consensus="true" submissionType="IETF"> | ||||
| <front> | <!DOCTYPE rfc [ | |||
| <title abbrev="Ping Enabled IOAM Capabilities"> Echo Request/Reply for Enabled | <!ENTITY nbsp " "> | |||
| In-situ OAM Capabilities </title> | <!ENTITY zwsp "​"> | |||
| <!ENTITY nbhy "‑"> | ||||
| <!ENTITY wj "⁠"> | ||||
| ]> | ||||
| <author fullname="Xiao Min" initials="X" surname="Min"> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" category=" | |||
| <organization>ZTE Corp.</organization> | std" consensus="true" ipr="trust200902" docName="draft-ietf-ippm-ioam-conf-state | |||
| <address> | -10" number="9359" tocInclude="true" symRefs="true" sortRefs="true" updates="" o | |||
| <postal> | bsoletes="" xml:lang="en" version="3"> | |||
| <street></street> | ||||
| <!-- Reorder these if your country does things differently --> | <!-- xml2rfc v2v3 conversion 3.15.2 --> | |||
| <front> | ||||
| <title abbrev="Ping-Enabled IOAM Capabilities"> Echo Request/Reply for Enabl | ||||
| ed In Situ OAM (IOAM) Capabilities </title> | ||||
| <seriesInfo name="RFC" value="9359"/> | ||||
| <author fullname="Xiao Min" initials="X" surname="Min"> | ||||
| <organization>ZTE Corp.</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street/> | ||||
| <city>Nanjing</city> | <city>Nanjing</city> | |||
| <region/> | ||||
| <code/> | ||||
| <country>China</country> | ||||
| </postal> | ||||
| <phone>+86 25 88013062</phone> | ||||
| <email>xiao.min2@zte.com.cn</email> | ||||
| <region></region> | ||||
| <code></code> | ||||
| <country>China</country> | ||||
| </postal> | ||||
| <phone>+86 25 88013062</phone> | ||||
| <email>xiao.min2@zte.com.cn</email> | ||||
| <!-- uri and facsimile elements may also be added --> | ||||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Greg Mirsky" initials="G" surname="Mirsky"> | ||||
| <author fullname="Greg Mirsky" initials="G" surname="Mirsky"> | ||||
| <organization>Ericsson</organization> | <organization>Ericsson</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street></street> | <street/> | |||
| <!-- Reorder these if your country does things differently --> | ||||
| <city></city> | ||||
| <region></region> | ||||
| <code></code> | ||||
| <country>United States of America</country> | ||||
| </postal> | ||||
| <phone></phone> | ||||
| <email>gregimirsky@gmail.com</email> | <city/> | |||
| <region/> | ||||
| <code/> | ||||
| <country>United States of America</country> | ||||
| </postal> | ||||
| <phone/> | ||||
| <email>gregimirsky@gmail.com</email> | ||||
| <!-- uri and facsimile elements may also be added --> | ||||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Lei Bo" initials="L" surname="Bo"> | ||||
| <author fullname="Lei Bo" initials="L" surname="Bo"> | ||||
| <organization>China Telecom</organization> | <organization>China Telecom</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street></street> | <street/> | |||
| <!-- Reorder these if your country does things differently --> | ||||
| <city>Beijing</city> | <city>Beijing</city> | |||
| <region/> | ||||
| <code/> | ||||
| <country>China</country> | ||||
| </postal> | ||||
| <phone>+86 10 50902903</phone> | ||||
| <email>leibo@chinatelecom.cn</email> | ||||
| <region></region> | ||||
| <code></code> | ||||
| <country>China</country> | ||||
| </postal> | ||||
| <phone>+86 10 50902903</phone> | ||||
| <email>leibo@chinatelecom.cn</email> | ||||
| <!-- uri and facsimile elements may also be added --> | ||||
| </address> | </address> | |||
| </author> | </author> | |||
| <date year="2023" month="April" /> | ||||
| <date year="2022"/> | <area>tsv</area> | |||
| <workgroup>ippm</workgroup> | ||||
| <area>Transport</area> | ||||
| <workgroup>IPPM Working Group</workgroup> | ||||
| <keyword>Request for Comments</keyword> | ||||
| <keyword>RFC</keyword> | ||||
| <keyword>Internet Draft</keyword> | ||||
| <keyword>I-D</keyword> | ||||
| <abstract> | <abstract> | |||
| <t> This document describes a generic format for use in echo request/reply mec | <t> This document describes a generic format for use in echo | |||
| hanisms, which can be used within an In situ Operations, | request/reply mechanisms, which can be used within an IOAM-Domain, allowin | |||
| Administration, and Maintenance (IOAM) domain, allowing the IOAM encapsulating | g the | |||
| node to discover the enabled IOAM capabilities of each | IOAM encapsulating node to discover the enabled IOAM capabilities of | |||
| IOAM transit and IOAM decapsulating node. The generic format is intended to b | each IOAM transit and IOAM decapsulating node. The generic format is | |||
| e used with a variety of data planes such as IPv6, MPLS, | intended to be used with a variety of data planes such as IPv6, MPLS, | |||
| Service Function Chain (SFC) and Bit Index Explicit Replication (BIER).</t> | Service Function Chain (SFC), and Bit Index Explicit Replication | |||
| (BIER).</t> | ||||
| </abstract> | </abstract> | |||
| </front> | ||||
| </front> | <middle> | |||
| <section> | ||||
| <middle> | <name>Introduction</name> | |||
| <t> In situ Operations, Administration, and Maintenance (IOAM) (<xref targ | ||||
| <section title="Introduction"> | et="RFC9197"/> <xref target="RFC9326"/>) defines data fields that | |||
| record OAM information within the packet while the packet traverses a particul | ||||
| <t> In situ Operations, Administration, and Maintenance (IOAM) (<xref target=" | ar network domain, called an "IOAM-Domain". IOAM can complement | |||
| RFC9197"/> <xref target="RFC9326"/>) defines data fields that | ||||
| record OAM information within the packet while the packet traverses a particul | ||||
| ar network domain, called an IOAM domain. IOAM can complement | ||||
| or replace other OAM mechanisms, such as ICMP or other types of probe packets. </t> | or replace other OAM mechanisms, such as ICMP or other types of probe packets. </t> | |||
| <t> As specified in <xref target="RFC9197"/>, within the IOAM-Domain, the | ||||
| <t> As specified in <xref target="RFC9197"/>, within the IOAM domain, the IOAM | IOAM data may be updated by network nodes that | |||
| data may be updated by network nodes that | the packet traverses. The device that adds an IOAM header to the packet is ca | |||
| the packet traverses. The device which adds an IOAM header to the packet is c | lled an "IOAM encapsulating node". In contrast, the device | |||
| alled an "IOAM encapsulating node". In contrast, the device | that removes an IOAM header is referred to as an "IOAM decapsulating node". N | |||
| which removes an IOAM header is referred to as an "IOAM decapsulating node". | odes within the domain that are aware of IOAM data and | |||
| Nodes within the domain that are aware of IOAM data and | that read, write, and/or process IOAM data are called "IOAM transit nodes". IO | |||
| read and/or write and/or process IOAM data are called "IOAM transit nodes". IO | AM encapsulating or decapsulating nodes can also serve as IOAM | |||
| AM encapsulating or decapsulating nodes can also serve as IOAM | transit nodes at the same time. IOAM encapsulating or decapsulating nodes are | |||
| transit nodes at the same time. IOAM encapsulating or decapsulating nodes are | also referred to as IOAM-Domain "edge devices", which can be | |||
| also referred to as IOAM domain edge devices, which can be | ||||
| hosts or network devices. <xref target="RFC9197"/> defines four IOAM option ty pes, and <xref target="RFC9326"/> introduces a new IOAM option | hosts or network devices. <xref target="RFC9197"/> defines four IOAM option ty pes, and <xref target="RFC9326"/> introduces a new IOAM option | |||
| type called the Direct Export (DEX) Option-Type, which is different from the o | type called the "Direct Export (DEX) Option-Type", which is different from the | |||
| ther four IOAM option types defined in <xref target="RFC9197"/> | other four IOAM option types defined in <xref target="RFC9197"/> | |||
| on how to collect the operational and telemetry information defined in <xref t | regarding how to collect the operational and telemetry information defined in | |||
| arget="RFC9197"/>.</t> | <xref target="RFC9197"/>.</t> | |||
| <t> As specified in <xref target="RFC9197"/>, IOAM is focused on "limited | ||||
| <t> As specified in <xref target="RFC9197"/>, IOAM is focused on "limited doma | domains" as defined in <xref target="RFC8799"/>. | |||
| ins" as defined in <xref target="RFC8799"/>. | ||||
| In a limited domain, a control entity that has control over every IOAM device may be deployed. If that's the case, the control entity can | In a limited domain, a control entity that has 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 IOAM header applied to data | provision both the explicit transport path and the IOAM header applied to the | |||
| packet at every IOAM encapsulating node.</t> | data packet at every IOAM encapsulating node.</t> | |||
| <t> In a case when a control entity that has control over every IOAM device is | ||||
| not deployed in the IOAM domain, the IOAM encapsulating node | ||||
| needs to discover the enabled IOAM capabilities at the IOAM transit and decaps | ||||
| ulating nodes. For example, what types of IOAM 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 encapsulating node can then | ||||
| add the correct IOAM header to the data packet according to the discovered IOA | ||||
| M capabilities. Specifically, the IOAM encapsulating node first | ||||
| identifies the types and lengths of IOAM options included in the IOAM data fie | ||||
| lds according to the discovered IOAM capabilities. Then the IOAM | ||||
| encapsulating node can add the IOAM header to the data packet based on the ide | ||||
| ntified types and lengths of IOAM options included in the IOAM | ||||
| data fields. The IOAM encapsulating node may use NETCONF/YANG or IGP to discov | ||||
| er these IOAM capabilities. However, NETCONF/YANG or IGP has some | ||||
| limitations: | ||||
| <list style="symbols"> | <t> In a case when a control entity that has control over every IOAM | |||
| <t> | device is not deployed in the IOAM-Domain, the IOAM encapsulating node | |||
| When NETCONF/YANG is used in this scenario, each IOAM encapsulating node (in | needs to discover the enabled IOAM capabilities at the IOAM transit and | |||
| cluding the host when it takes the role of an IOAM encapsulating | decapsulating nodes: for example, what types of IOAM tracing data can be | |||
| node) needs to implement a NETCONF Client, each IOAM transit and IOAM dec | added or exported by the transit nodes along the transport path of the | |||
| apsulating node (including the host when it takes the role of an | data packet IOAM is applied to. The IOAM encapsulating node can then add | |||
| IOAM decapsulating node) needs to implement a NETCONF Server, the complex | the correct IOAM header to the data packet according to the discovered | |||
| ity can be an issue. Furthermore, each IOAM encapsulating node | IOAM capabilities. Specifically, the IOAM encapsulating node first | |||
| needs to establish NETCONF Connection with each IOAM transit and IOAM dec | identifies the types and lengths of IOAM options included in the IOAM | |||
| apsulating node, the scalability can be an issue. | data fields according to the discovered IOAM capabilities. Then the IOAM | |||
| </t> | encapsulating node can add the IOAM header to the data packet based on | |||
| <t> | the identified types and lengths of IOAM options included in the IOAM | |||
| When IGP is used in this scenario, the IGP and IOAM domains don't always hav | data fields. The IOAM encapsulating node may use NETCONF/YANG or IGP to | |||
| e the same coverage. For example, when the IOAM encapsulating node | discover these IOAM capabilities. However, NETCONF/YANG or IGP has some | |||
| or the IOAM decapsulating node is a host, the availability can be an issu | limitations: | |||
| e. Furthermore, it might be too challenging to reflect enabled IOAM | ||||
| capabilities at the IOAM transit and IOAM decapsulating node if these are | ||||
| controlled by a local policy depending on the identity of the | ||||
| IOAM encapsulating node. | ||||
| </t> | ||||
| </list> | ||||
| </t> | </t> | |||
| <ul spacing="normal"> | ||||
| <t> This document specifies formats and objects that can be used in the extens | <li>When NETCONF/YANG is used in this scenario, each IOAM | |||
| ion of echo request/reply mechanisms used in IPv6 (including Segment | encapsulating node (including the host when it takes the role of an | |||
| Routing with IPv6 data plane (SRv6)), MPLS (including Segment Routing with MPL | IOAM encapsulating node) needs to implement a NETCONF Client, and each | |||
| S data plane (SR-MPLS)), SFC and BIER environments, which can be | IOAM transit and IOAM decapsulating node (including the host when it | |||
| used within the IOAM domain, allowing the IOAM encapsulating node to discover | takes the role of an IOAM decapsulating node) needs to implement a | |||
| the enabled IOAM capabilities of each IOAM transit and IOAM | NETCONF Server, so complexity can be an issue. Furthermore, each IOAM | |||
| encapsulating node needs to establish a NETCONF Connection with each | ||||
| IOAM transit and IOAM decapsulating node, so scalability can be an | ||||
| issue. | ||||
| </li> | ||||
| <li>When IGP is used in this scenario, the IGP and IOAM-Domains don't | ||||
| always have the same coverage. For example, when the IOAM | ||||
| encapsulating node or the IOAM decapsulating node is a host, the | ||||
| availability can be an issue. Furthermore, it might be too challenging | ||||
| to reflect enabled IOAM capabilities at the IOAM transit and IOAM | ||||
| decapsulating node if these are controlled by a local policy depending | ||||
| on the identity of the IOAM encapsulating node. | ||||
| </li> | ||||
| </ul> | ||||
| <t> This document specifies formats and objects that can be used in the ex | ||||
| tension of echo request/reply mechanisms used in IPv6 (including Segment | ||||
| Routing over IPv6 (SRv6) data plane), MPLS (including Segment Routing over MPL | ||||
| S (SR-MPLS) data plane), Service Function Chain (SFC), and Bit Index Explicit R | ||||
| eplication (BIER) environments, which can be | ||||
| used within the IOAM-Domain, allowing the IOAM encapsulating node to discover | ||||
| the enabled IOAM capabilities of each IOAM transit and IOAM | ||||
| decapsulating node.</t> | decapsulating node.</t> | |||
| <t> The following documents contain references to the echo request/reply m | ||||
| <t> The following documents contain references to the echo request/reply mecha | echanisms used in IPv6 (including SRv6), MPLS (including SR-MPLS), SFC, | |||
| nisms used in IPv6 (including SRv6), MPLS (including SR-MPLS), SFC | ||||
| and BIER environments: | and BIER environments: | |||
| <list style="symbols"> | </t> | |||
| <t> | <ul spacing="normal"> | |||
| <xref target="RFC4443"/> ("Internet Control Message Protocol (ICMPv6) for th | <li> "<xref target="RFC4443" format="title"/>" | |||
| e Internet Protocol Version 6 (IPv6) Specification"), | <xref target="RFC4443"/></li> | |||
| <xref target="RFC4620"/> ("IPv6 Node Information Queries"), | <li>"<xref target="RFC4620" format="title"/>" <xref target="RFC4620"/></l | |||
| <xref target="RFC4884"/> ("Extended ICMP to Support Multi-Part Messages") | i> | |||
| and | <li>"<xref target="RFC4884" format="title"/>" <xref target="RFC4884"/></l | |||
| <xref target="RFC8335"/> ("PROBE: A Utility for Probing Interfaces") | i> | |||
| </t> | <li>"<xref target="RFC8335" format="title"/>" <xref target="RFC8335"/></l | |||
| <t> | i> | |||
| <xref target="RFC8029"/> ("Detecting Multiprotocol Label Switched (MPLS) Dat | <li>"<xref target="RFC8029" format="title"/>" | |||
| a-Plane Failures") | <xref target="RFC8029"/></li> | |||
| </t> | <li>"<xref target="I-D.ietf-sfc-multi-layer-oam" format="title"/>" | |||
| <t> | <xref target="I-D.ietf-sfc-multi-layer-oam"/></li> | |||
| <xref target="I-D.ietf-sfc-multi-layer-oam"/> ("Active OAM for Service Funct | <li>"<xref target="I-D.ietf-bier-ping" format="title"/>" | |||
| ion Chaining (SFC)") | <xref target="I-D.ietf-bier-ping"/></li> | |||
| </t> | </ul> | |||
| <t> | <t> It is expected that the specification of the instantiation of each of | |||
| <xref target="I-D.ietf-bier-ping"/> ("BIER Ping and Trace") | these extensions will be done in the form of an RFC jointly designed by | |||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| <t> It is expected that the specification of the instantiation of each of thes | ||||
| e extensions will be done in the form of an RFC jointly designed by | ||||
| the working group that develops or maintains the echo request/reply protocol a nd the IETF IP Performance Measurement (IPPM) Working Group.</t> | the working group that develops or maintains the echo request/reply protocol a nd the IETF IP Performance Measurement (IPPM) Working Group.</t> | |||
| <t>In this document, note that the echo request/reply mechanism used in IP | ||||
| <t> Note that in this document the echo request/reply mechanism used in IPv6 d | v6 does not mean ICMPv6 Echo Request/Reply <xref target="RFC4443"/> but | |||
| oes not mean ICMPv6 Echo Request/Reply <xref target="RFC4443"/>, but | does mean IPv6 Node Information Query/Reply <xref target="RFC4620"/>.</t> | |||
| means IPv6 Node Information Query/Reply <xref target="RFC4620"/>.</t> | <t>Fate sharing is a common requirement for all kinds of active OAM | |||
| packets, including echo requests. In this document, that means an echo | ||||
| <t> Fate sharing is a common requirement for all kinds of active OAM packets, | request is required to traverse the path of an IOAM data packet. This | |||
| echo request is among them, in this document that means echo request | requirement can be achieved by, e.g., applying the same explicit path or | |||
| is required to traverse a path of IOAM data packet. This requirement can be ac | ECMP processing to both echo request and IOAM data | |||
| hieved by, e.g., applying same explicit path or ECMP processing to both | packets. Specifically, the same ECMP processing can be applied to both | |||
| echo request and IOAM data packet. Specific to apply same ECMP processing to b | echo request and IOAM data packets, by populating the same value or values | |||
| oth echo request and IOAM data packet, one possible way is to populate | in any | |||
| the same value(s) of ECMP affecting field(s) in the echo request.</t> | ECMP affecting fields of the packets.</t> | |||
| </section> | ||||
| <section title="Conventions"> | ||||
| <section title="Requirements Language"> | ||||
| <t> The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", " | ||||
| SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | ||||
| "MAY", and "OPTIONAL" in this document are to be interpreted as described | ||||
| in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | ||||
| when, and only when, they appear in all capitals, as shown here.</t> | ||||
| </section> | </section> | |||
| <section> | ||||
| <section title="Abbreviations"> | <name>Conventions</name> | |||
| <t> BIER: Bit Index Explicit Replication</t> | <section> | |||
| <t> BGP: Border Gateway Protocol</t> | <name>Requirements Language</name> | |||
| <t> DEX: Direct Export</t> | <t> | |||
| <t> ECMP: Equal-Cost Multipath</t> | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | |||
| <t> E2E: Edge to Edge</t> | IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
| <t> ICMP: Internet Control Message Protocol</t> | NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14> | |||
| <t> IGP: Interior Gateway Protocol</t> | RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
| <t> IOAM: In situ Operations, Administration, and Maintenance</t> | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | |||
| <t> LSP: Label Switched Path</t> | be interpreted as | |||
| <t> MPLS: Multi-Protocol Label Switching</t> | described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | |||
| <t> MTU: Maximum Transmission Unit</t> | when, and only when, they appear in all capitals, as shown here. | |||
| <t> NTP: Network Time Protocol</t> | </t> | |||
| <t> OAM: Operations, Administration, and Maintenance</t> | </section> | |||
| <t> PCEP: Path Computation Element (PCE) Communication Protocol</t> | <section> | |||
| <t> POSIX: Portable Operating System Interface</t> | <name>Abbreviations</name> | |||
| <t> POT: Proof of Transit</t> | <dl spacing="normal" newline="false"> | |||
| <t> PTP: Precision Time Protocol</t> | <dt>BIER:</dt> | |||
| <t> SR-MPLS: Segment Routing with MPLS data plane</t> | <dd>Bit Index Explicit Replication</dd> | |||
| <t> SRv6: Segment Routing with IPv6 data plane</t> | <dt>BGP:</dt> | |||
| <t> SFC: Service Function Chain</t> | <dd>Border Gateway Protocol</dd> | |||
| <t> TTL: Time to Live, this is also the Hop Limit field in the IPv6 header</ | <dt>DEX:</dt> | |||
| t> | <dd>Direct Export</dd> | |||
| <dt>ECMP:</dt> | ||||
| <dd>Equal-Cost Multipath</dd> | ||||
| <dt>E2E:</dt> | ||||
| <dd>Edge to Edge</dd> | ||||
| <dt>ICMP:</dt> | ||||
| <dd>Internet Control Message Protocol</dd> | ||||
| <dt>IGP:</dt> | ||||
| <dd>Interior Gateway Protocol</dd> | ||||
| <dt>IOAM:</dt> | ||||
| <dd>In situ Operations, Administration, and Maintenance</dd> | ||||
| <dt>LSP:</dt> | ||||
| <dd>Label Switched Path</dd> | ||||
| <dt>MPLS:</dt> | ||||
| <dd>Multiprotocol Label Switching</dd> | ||||
| <dt>MTU:</dt> | ||||
| <dd>Maximum Transmission Unit</dd> | ||||
| <dt>NETCONF:</dt> | ||||
| <dd>Network Configuration Protocol</dd> | ||||
| <dt>NTP:</dt> | ||||
| <dd>Network Time Protocol</dd> | ||||
| <dt>OAM:</dt> | ||||
| <dd>Operations, Administration, and Maintenance</dd> | ||||
| <dt>PCEP:</dt> | ||||
| <dd>Path Computation Element Communication Protocol</dd> | ||||
| <dt>POSIX:</dt> | ||||
| <dd>Portable Operating System Interface</dd> | ||||
| <dt>POT:</dt> | ||||
| <dd>Proof of Transit</dd> | ||||
| <dt>PTP:</dt> | ||||
| <dd>Precision Time Protocol</dd> | ||||
| <dt>SoP:</dt> | ||||
| <dd>Size of POT</dd> | ||||
| <dt>SR-MPLS:</dt> | ||||
| <dd>Segment Routing over MPLS</dd> | ||||
| <dt>SRv6:</dt> | ||||
| <dd>Segment Routing over IPv6</dd> | ||||
| <dt>SFC:</dt> | ||||
| <dd>Service Function Chain</dd> | ||||
| <dt>TTL:</dt> | ||||
| <dd>Time to Live (this is also the Hop Limit field in the IPv6 | ||||
| header)</dd> | ||||
| <dt>TSF:</dt> | ||||
| <dd>TimeStamp Format</dd></dl> | ||||
| </section> | ||||
| </section> | </section> | |||
| <section> | ||||
| </section> | <name>IOAM Capabilities Formats</name> | |||
| <section> | ||||
| <section title="IOAM Capabilities Formats"> | <name>IOAM Capabilities Query Container</name> | |||
| <t> For echo requests, the IOAM Capabilities Query uses a container that | ||||
| <section title="IOAM Capabilities Query Container"> | has the following format:</t> | |||
| <figure anchor="Figure_1"> | ||||
| <t> For echo request, IOAM Capabilities Query uses a container which has | <name>IOAM Capabilities Query Container of an Echo Request</name> | |||
| the following format:</t> | <artwork align="center"><![CDATA[ | |||
| <figure anchor="Figure_1" title="IOAM Capabilities Query Container of Echo | ||||
| Request"> | ||||
| <artwork align="center"><![CDATA[ | ||||
| 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 . | |||
| . . | . . | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t> When this container is present in the echo request sent by an IOAM e | ||||
| <t> When this container is present in the echo request sent by an IOAM enca | ncapsulating node, the IOAM encapsulating node | |||
| psulating node, that means the IOAM encapsulating node | requests that the receiving node reply with its enabled IOAM capabilitie | |||
| requests the receiving node to reply with its enabled IOAM capabilities. | s. If there is no IOAM capability to be reported by the receiving | |||
| If there is no IOAM capability to be reported by the receiving | node, then this container <bcp14>MUST</bcp14> be ignored by the receivin | |||
| node, then this container MUST be ignored by the receiving node, which m | g node. This means the receiving node <bcp14>MUST</bcp14> send an echo reply wit | |||
| eans the receiving node MUST send an echo reply without IOAM | hout IOAM | |||
| capabilities or no echo reply, in the light of whether the echo request | capabilities or no echo reply, in the light of whether the echo request | |||
| includes other containers than the IOAM Capabilities Query Container. | includes containers other than the IOAM Capabilities Query Container. | |||
| A list of IOAM Namespace-IDs (one or more Namespace-IDs) MUST be include | A list of IOAM Namespace-IDs (one or more Namespace-IDs) <bcp14>MUST</bc | |||
| d in this container in the echo request, and if present, the Default-Namespace-I | p14> be included in this container in the echo request; if present, the Default- | |||
| D | Namespace-ID | |||
| 0x0000 MUST be placed at the beginning of the list of IOAM Namespace-IDs | 0x0000 <bcp14>MUST</bcp14> be placed at the beginning of the list of IOA | |||
| . The IOAM encapsulating node requests only the enabled IOAM capabilities | M Namespace-IDs. The IOAM encapsulating node requests only the enabled IOAM capa | |||
| bilities | ||||
| that match one of the Namespace-IDs. Inclusion of the Default-Namespace- ID 0x0000 elicits replies only for capabilities that are configured | that match one of the Namespace-IDs. Inclusion of the Default-Namespace- ID 0x0000 elicits replies only for capabilities that are configured | |||
| with the Default-Namespace-ID 0x0000.The Namespace-ID has the same defin | with the Default-Namespace-ID 0x0000. The Namespace-ID has the same defi | |||
| ition as what's specified in Section 4.3 of <xref target="RFC9197"/>.</t> | nition as what's specified in <xref target="RFC9197" sectionFormat="of" section= | |||
| "4.3"/>.</t> | ||||
| <t> The IOAM Capabilities Query Container has a container header that is us | ||||
| ed to identify the type and optionally length of the container payload, | ||||
| and the container payload (List of IOAM Namespace-IDs) is zero-padded to | ||||
| align to a 4-octet boundary. Since the Default-Namespace-ID of 0x0000 is | ||||
| mandated to appear first in the list, any other occurrences of 0x0000 MU | ||||
| ST be disregarded.</t> | ||||
| <t> The length, structure, and definition of the IOAM Capabilities Query Co | ||||
| ntainer Header depends on the specific deployment environment.</t> | ||||
| </section> | ||||
| <section title="IOAM Capabilities Response Container"> | ||||
| <t> For echo reply, IOAM Capabilities Response uses a container which has | ||||
| the following format:</t> | ||||
| <figure anchor="Figure_2" title="IOAM Capabilities Response Container of Ec | <t> The IOAM Capabilities Query Container has a container header that is | |||
| ho Reply"> | used to identify the type and, optionally, the length of the container payload. | |||
| <artwork align="center"><![CDATA[ | The container payload (List of IOAM Namespace-IDs) is zero-padded to align with | |||
| a 4-octet boundary. Since the Default-Namespace-ID 0x0000 is | ||||
| mandated to appear first in the list, any other occurrences of 0x0000 <b | ||||
| cp14>MUST</bcp14> be disregarded.</t> | ||||
| <t> The length, structure, and definition of the IOAM Capabilities Query | ||||
| Container Header depend on the specific deployment environment.</t> | ||||
| </section> | ||||
| <section> | ||||
| <name>IOAM Capabilities Response Container</name> | ||||
| <t> For echo replies, the IOAM Capabilities Response uses a container th | ||||
| at has the following format:</t> | ||||
| <figure anchor="Figure_2"> | ||||
| <name>IOAM Capabilities Response Container for an Echo Reply</name> | ||||
| <artwork align="center"><![CDATA[ | ||||
| 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 . | |||
| . . | . . | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t> When this container is present in the echo reply sent by an IOAM tra | ||||
| <t> When this container is present in the echo reply sent by an IOAM transi | nsit node or IOAM decapsulating node, the IOAM function | |||
| t node or IOAM decapsulating node, that means the IOAM function | is enabled at this node, and this container contains the enabled IOAM cap | |||
| is enabled at this node, and this container contains the enabled IOAM ca | abilities of the sender. A list of IOAM capabilities objects (one | |||
| pabilities of the sender. A list of IOAM capabilities objects (one | or more objects) that contains the enabled IOAM capabilities <bcp14>MUST | |||
| or more objects) which contains the enabled IOAM capabilities MUST be in | </bcp14> be included in this container of the echo reply unless the sender encou | |||
| cluded in this container of echo reply except the sender encounters | nters | |||
| an error (e.g., no matched Namespace-ID).</t> | an error (e.g., no matched Namespace-ID).</t> | |||
| <t> The IOAM Capabilities Response Container has a container header that | ||||
| <t> The IOAM Capabilities Response Container has a container header that is | is used to identify the type and, optionally, the length of the container paylo | |||
| used to identify the type and optionally length of the container payload. | ad. | |||
| The container header MUST be defined such that it falls on a four-octet | The container header <bcp14>MUST</bcp14> be defined such that it falls o | |||
| boundary.</t> | n a 4-octet boundary.</t> | |||
| <t> The length, structure, and definition of the IOAM Capabilities Respo | ||||
| <t> The length, structure, and definition of the IOAM Capabilities Response | nse Container Header depends on the specific deployment environment.</t> | |||
| Container Header depends on the specific deployment environment.</t> | <t> Based on the IOAM data fields defined in <xref target="RFC9197"/> an | |||
| d <xref target="RFC9326"/>, six types of objects are defined in this document. | ||||
| <t> Based on the IOAM data fields defined in <xref target="RFC9197"/> and < | The same type of object <bcp14>MAY</bcp14> be present in the IOAM Capabi | |||
| xref target="RFC9326"/>, six types of objects are defined in this document. | lities Response Container more than once, only if listed with a different Namesp | |||
| The same type of object MAY be present in the IOAM Capabilities Response | ace-ID.</t> | |||
| Container more than once, only if with a different Namespace-ID.</t> | <t> Similar to the container, each object has an object header that is u | |||
| sed to identify the type and length of the object payload. The object | ||||
| <t> Similar to the container, each object has an object header that is used | payload <bcp14>MUST</bcp14> be defined such that it falls on a 4-octet b | |||
| to identify the type and length of the object payload. The object | oundary.</t> | |||
| payload MUST be defined such that it falls on a four-octet boundary.</t> | <t> The length, structure, and definition of the object header depends o | |||
| n the specific deployment environment.</t> | ||||
| <t> The length, structure, and definition of Object Header depends on the s | <section> | |||
| pecific deployment environment.</t> | <name>IOAM Pre-allocated Tracing Capabilities Object</name> | |||
| <figure anchor="Figure_3"> | ||||
| <section title="IOAM Pre-allocated Tracing Capabilities Object"> | <name>IOAM Pre-allocated Tracing Capabilities Object</name> | |||
| <artwork align="center"><![CDATA[ | ||||
| <figure anchor="Figure_3" title="IOAM Pre-allocated Tracing Capabilities Ob | ||||
| ject"> | ||||
| <artwork align="center"><![CDATA[ | ||||
| 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) ...... | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t> When the IOAM Pre-allocated Tracing Capabilities Object is present | ||||
| <t> When this Object is present in the IOAM Capabilities Response Container | in the IOAM Capabilities Response Container, the sending node is an IOAM transi | |||
| , that means the sending node is an IOAM transit node and the IOAM | t node, and the IOAM | |||
| pre-allocated tracing function is enabled at this IOAM transit node.</t> | pre-allocated tracing function is enabled at this IOAM transit node.</t> | |||
| <t>The IOAM-Trace-Type field has the same definition as what's specifi | ||||
| <t> IOAM-Trace-Type field has the same definition as what's specified in Se | ed in <xref target="RFC9197" sectionFormat="of" section="4.4"/>.</t> | |||
| ction 4.4 of <xref target="RFC9197"/>.</t> | <t>The Reserved field <bcp14>MUST</bcp14> be zeroed on transmission an | |||
| d ignored on receipt.</t> | ||||
| <t> Reserved field is reserved for future use and MUST be set to zero, and | <t>The W flag indicates whether Ingress_if_id is in short or wide form | |||
| MUST be ignored when non-zero.</t> | at. The W-bit is set if the Ingress_if_id is in wide format. | |||
| <t> W flag indicates whether Ingress_if_id is in short or wide format. The | ||||
| W-bit is set if the Ingress_if_id is in wide format. | ||||
| The W-bit is clear if the Ingress_if_id is in short format.</t> | The W-bit is clear if the Ingress_if_id is in short format.</t> | |||
| <t>The Namespace-ID field has the same definition as what's specified | ||||
| <t> Namespace-ID field has the same definition as what's specified in Secti | in <xref target="RFC9197" sectionFormat="of" section="4.3"/>. It <bcp14>MUST</bc | |||
| on 4.3 of <xref target="RFC9197"/>, it MUST | p14> | |||
| be one of the Namespace-IDs listed in the IOAM Capabilities Query Object of the echo request.</t> | be one of the Namespace-IDs listed in the IOAM Capabilities Query Object of the echo request.</t> | |||
| <t>The Ingress_MTU field has 16 bits and specifies the MTU (in octets) | ||||
| <t> Ingress_MTU field has 16 bits and specifies the MTU (in octets) of the | of the ingress interface from which the sending node received the echo | |||
| ingress interface from which the sending node received echo | ||||
| request.</t> | request.</t> | |||
| <t>The Ingress_if_id field has 16 bits (in short format) or 32 bits (i | ||||
| <t> Ingress_if_id field has 16 bits (in short format) or 32 bits (in wide f | n | |||
| ormat) and specifies the identifier of the ingress interface | wide format) and specifies the identifier of the ingress interface | |||
| from which the sending node received echo request. If the W-bit is clear | from which the sending node received the echo request. If the W-bit is | |||
| ed that indicates Ingress_if_id field has 16 bits, then the 16 bits | cleared, the Ingress_if_id field has 16 bits; then the 16 | |||
| following the Ingress_if_id field are reserved for future use and MUST b | bits following the Ingress_if_id field are reserved for future use, | |||
| e set to zero, and MUST be ignored when non-zero.</t> | <bcp14>MUST</bcp14> be set to zero, and <bcp14>MUST</bcp14> be | |||
| ignored when non-zero.</t> | ||||
| </section> | </section> | |||
| <section> | ||||
| <section title="IOAM Incremental Tracing Capabilities Object"> | <name>IOAM Incremental Tracing Capabilities Object</name> | |||
| <figure anchor="Figure_4"> | ||||
| <figure anchor="Figure_4" title="IOAM Incremental Tracing Capabilities Obje | <name>IOAM Incremental Tracing Capabilities Object</name> | |||
| ct"> | <artwork align="center"><![CDATA[ | |||
| <artwork align="center"><![CDATA[ | ||||
| 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) ...... | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t>When the IOAM Incremental Tracing Capabilities Object is present in | ||||
| <t> When this Object is present in the IOAM Capabilities Response Container | the IOAM Capabilities Response | |||
| , that means the sending node is an IOAM transit node and the IOAM | Container, the sending node is an IOAM transit node, and | |||
| incremental tracing function is enabled at this IOAM transit node.</t> | the IOAM incremental tracing function is enabled at this IOAM | |||
| transit node.</t> | ||||
| <t> IOAM-Trace-Type field has the same definition as what's specified in Se | <t>The IOAM-Trace-Type field has the same definition as what's specifi | |||
| ction 4.4 of <xref target="RFC9197"/>.</t> | ed in <xref target="RFC9197" sectionFormat="of" section="4.4"/>.</t> | |||
| <t>The Reserved field <bcp14>MUST</bcp14> be zeroed on trans | ||||
| <t> Reserved field is reserved for future use and MUST be set to zero, and | mission and ignored on receipt.</t> | |||
| MUST be ignored when non-zero.</t> | <t>The W flag indicates whether Ingress_if_id is in short or wide form | |||
| at. The W-bit is set if the Ingress_if_id is in wide format. | ||||
| <t> W flag indicates whether Ingress_if_id is in short or wide format. The | ||||
| W-bit is set if the Ingress_if_id is in wide format. | ||||
| The W-bit is clear if the Ingress_if_id is in short format.</t> | The W-bit is clear if the Ingress_if_id is in short format.</t> | |||
| <t>The Namespace-ID field has the same definition as what's specified | ||||
| <t> Namespace-ID field has the same definition as what's specified in Secti | in <xref target="RFC9197" sectionFormat="of" section="4.3"/>. It <bcp14>MUST</bc | |||
| on 4.3 of <xref target="RFC9197"/>, it MUST | p14> | |||
| be one of the Namespace-IDs listed in the IOAM Capabilities Query Object of the echo request.</t> | be one of the Namespace-IDs listed in the IOAM Capabilities Query Object of the echo request.</t> | |||
| <t>The Ingress_MTU field has 16 bits and specifies the MTU (in octets) | ||||
| <t> Ingress_MTU field has 16 bits and specifies the MTU (in octets) of the | of the ingress interface from which the sending node received the echo | |||
| ingress interface from which the sending node received echo | ||||
| request.</t> | request.</t> | |||
| <t>The Ingress_if_id field has 16 bits (in short format) or 32 bits (i | ||||
| <t> Ingress_if_id field has 16 bits (in short format) or 32 bits (in wide f | n | |||
| ormat) and specifies the identifier of the ingress interface | wide format) and specifies the identifier of the ingress interface | |||
| from which the sending node received echo request. If the W-bit is clear | from which the sending node received the echo request. If the W-bit | |||
| ed that indicates Ingress_if_id field has 16 bits, then the 16 bits | is cleared, the Ingress_if_id field has 16 bits; then the | |||
| following the Ingress_if_id field are reserved for future use and MUST b | 16 bits following the Ingress_if_id field are reserved for future | |||
| e set to zero, and MUST be ignored when non-zero.</t> | use, <bcp14>MUST</bcp14> be set to zero, and <bcp14>MUST</bcp14> | |||
| be ignored when non-zero.</t> | ||||
| </section> | </section> | |||
| <section anchor="ioam-cap-res-cont"> | ||||
| <section title="IOAM Proof-of-Transit Capabilities Object"> | <name>IOAM Proof of Transit Capabilities Object</name> | |||
| <figure anchor="Figure_5"> | ||||
| <figure anchor="Figure_5" title="IOAM Proof-of-Transit Capabilities Object" | <name>IOAM Proof of Transit Capabilities Object</name> | |||
| > | <artwork align="center"><![CDATA[ | |||
| <artwork align="center"><![CDATA[ | ||||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t> When the IOAM Proof of Transit Capabilities Object is present in t | ||||
| <t> When this Object is present in the IOAM Capabilities Response Container | he IOAM Capabilities Response Container, the sending node is an IOAM transit nod | |||
| , that means the sending node is an IOAM transit node and the IOAM | e and the IOAM | |||
| Proof of Transit function is enabled at this IOAM transit node.</t> | Proof of Transit function is enabled at this IOAM transit node.</t> | |||
| <t>The Namespace-ID field has the same definition as what's specified | ||||
| <t> Namespace-ID field has the same definition as what's specified in Secti | in <xref target="RFC9197" sectionFormat="of" section="4.3"/>. It <bcp14>MUST</bc | |||
| on 4.3 of <xref target="RFC9197"/>, it MUST | p14> | |||
| be one of the Namespace-IDs listed in the IOAM Capabilities Query Object of the echo request.</t> | be one of the Namespace-IDs listed in the IOAM Capabilities Query Object of the echo request.</t> | |||
| <t> The IOAM-POT-Type field has the same definition as what's specified in <xref target="RFC9197" sectionFormat="of" section="4.5"/>.</t> | ||||
| <t> IOAM-POT-Type field has the same definition as what's specified in Sect | <t>The SoP (Size of POT) field has two bits that indicate the size of | |||
| ion 4.5 of <xref target="RFC9197"/>.</t> | "PktID" | |||
| and "Cumulative" data, which are specified in <xref target="RFC9197" section | ||||
| <t> SoP (Size of POT) field has two bits, which means the size of "PktID" a | Format="of" section="4.5"/>. This document defines SoP as follows: | |||
| nd "Cumulative" data that are specified in Section 4.5 of <xref target= | </t> | |||
| "RFC9197"/>. This document defines SoP as follows: | <dl spacing="normal"> | |||
| <list> | <dt>0b00:</dt><dd>64-bit "PktID" and 64-bit "Cumulative" data</dd> | |||
| <t> 0b00 means 64-bit "PktID" and 64-bit "Cumulative" data.</t> | <dt>0b01~0b11:</dt><dd>reserved for future standardization</dd> | |||
| <t> 0b01~0b11: Reserved for future standardization</t> | </dl> | |||
| </list> | <t>The Reserved field <bcp14>MUST</bcp14> be zeroed on transm | |||
| </t> | ission and ignored on receipt.</t> | |||
| <t> Reserved field is reserved for future use and MUST be set to zero, and | ||||
| MUST be ignored when non-zero.</t> | ||||
| </section> | ||||
| <section title="IOAM Edge-to-Edge Capabilities Object"> | ||||
| <figure anchor="Figure_6" title="IOAM Edge-to-Edge Capabilities Object"> | </section> | |||
| <artwork align="center"><![CDATA[ | <section anchor="ioam-e2e"> | |||
| <name>IOAM Edge-to-Edge Capabilities Object</name> | ||||
| <figure anchor="Figure_6"> | ||||
| <name>IOAM Edge-to-Edge Capabilities Object</name> | ||||
| <artwork align="center"><![CDATA[ | ||||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t> When the IOAM Edge-to-Edge Capabilities Object is present in the I | ||||
| <t> When this Object is present in the IOAM Capabilities Response Container | OAM Capabilities Response Container, the sending node is an IOAM decapsulating n | |||
| , that means the sending node is an IOAM decapsulating node and | ode and | |||
| IOAM edge-to-edge function is enabled at this IOAM decapsulating node.</ t> | IOAM edge-to-edge function is enabled at this IOAM decapsulating node.</ t> | |||
| <t>The Namespace-ID field has the same definition as what's specified | ||||
| <t> Namespace-ID field has the same definition as what's specified in Se | in <xref target="RFC9197" sectionFormat="of" section="4.3"/>. It <bcp14>MUST</bc | |||
| ction 4.3 of <xref target="RFC9197"/>, it MUST | p14> | |||
| be one of the Namespace-IDs listed in the IOAM Capabilities Query Object of the echo request.</t> | be one of the Namespace-IDs listed in the IOAM Capabilities Query Object of the echo request.</t> | |||
| <t>The IOAM-E2E-Type field has the same definition as what's specified in <xref target="RFC9197" sectionFormat="of" section="4.6"/>.</t> | ||||
| <t> IOAM-E2E-Type field has the same definition as what's specified in Sect | <t>The TSF field specifies the timestamp format used by the sending no | |||
| ion 4.6 of <xref target="RFC9197"/>.</t> | de. Aligned with three possible timestamp formats specified in <xref target="RFC | |||
| 9197" sectionFormat="of" section="5"/>, this document defines TSF as follows: | ||||
| <t> TSF field specifies the timestamp format used by the sending node. Alig | </t> | |||
| ned with three possible timestamp formats specified in Section 5 | <dl spacing="normal"> | |||
| of <xref target="RFC9197"/>, this document defines TSF as follows: | <dt>0b00:</dt><dd>PTP truncated timestamp format</dd> | |||
| <list> | <dt>0b01:</dt><dd>NTP 64-bit timestamp format</dd> | |||
| <t> 0b00: PTP truncated timestamp format</t> | <dt>0b10:</dt><dd> POSIX-based timestamp format</dd> | |||
| <t> 0b01: NTP 64-bit timestamp format</t> | <dt>0b11:</dt><dd> Reserved for future standardization</dd> | |||
| <t> 0b10: POSIX-based timestamp format</t> | </dl> | |||
| <t> 0b11: Reserved for future standardization</t> | <t>The Reserved field <bcp14>MUST</bcp14> be zeroed on transm | |||
| </list> | ission and ignored on receipt.</t> | |||
| </t> | ||||
| <t> Reserved field is reserved for future use and MUST be set to zero, and | ||||
| MUST be ignored when non-zero.</t> | ||||
| </section> | ||||
| <section title="IOAM DEX Capabilities Object"> | ||||
| <figure anchor="Figure_7" title="IOAM DEX Capabilities Object"> | </section> | |||
| <artwork align="center"><![CDATA[ | <section> | |||
| <name>IOAM DEX Capabilities Object</name> | ||||
| <figure anchor="Figure_7"> | ||||
| <name>IOAM DEX Capabilities Object</name> | ||||
| <artwork align="center"><![CDATA[ | ||||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t>When the IOAM DEX Capabilities Object is present in the IOAM Capabi | ||||
| <t> When this Object is present in the IOAM Capabilities Response Container | lities Response Container, the sending node is an IOAM transit node and the IOAM | |||
| , that means the sending node is an IOAM transit node and the IOAM | ||||
| direct exporting function is enabled at this IOAM transit node.</t> | direct exporting function is enabled at this IOAM transit node.</t> | |||
| <t>The IOAM-Trace-Type field has the same definition as what's specifi | ||||
| ed in <xref target="RFC9326" sectionFormat="of" section="3.2"/>.</t> | ||||
| <t>The Namespace-ID field has the same definition as what's specified | ||||
| in <xref target="RFC9197" sectionFormat="of" section="4.3"/>. It <bcp14>MUST</bc | ||||
| p14> | ||||
| be one of the Namespace-IDs listed in the IOAM Capabilities Query Objec | ||||
| t of the echo request.</t> | ||||
| <t>The Reserved field <bcp14>MUST</bcp14> be zeroed on transmission an | ||||
| d ignored on receipt.</t> | ||||
| <t> IOAM-Trace-Type field has the same definition as what's specified in Se | </section> | |||
| ction 3.2 of <xref target="RFC9326"/>.</t> | <section> | |||
| <name>IOAM End-of-Domain Object</name> | ||||
| <t> Namespace-ID field has the same definition as what's specified in Secti | <figure anchor="Figure_8"> | |||
| on 4.3 of <xref target="RFC9197"/>, it MUST | <name>IOAM End-of-Domain Object</name> | |||
| be one of the Namespace-IDs listed in the IOAM Capabilities Query Object | <artwork align="center"><![CDATA[ | |||
| of the echo request.</t> | ||||
| <t> Reserved field is reserved for future use and MUST be set to zero, and | ||||
| MUST be ignored when non-zero.</t> | ||||
| </section> | ||||
| <section title="IOAM End-of-Domain Object"> | ||||
| <figure anchor="Figure_8" title="IOAM End-of-Domain Object"> | ||||
| <artwork align="center"><![CDATA[ | ||||
| 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 | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ]]></artwork> | ]]></artwork> | |||
| </figure> | </figure> | |||
| <t>When the IOAM End-of-Domain Object is present in the IOAM Capabilit | ||||
| <t> When this Object is present in the IOAM Capabilities Response Container | ies Response Container, the sending node is an IOAM decapsulating node. | |||
| , that means the sending node is an IOAM decapsulating node. | ||||
| Unless the IOAM Edge-to-Edge Capabilities Object is present, which also indicates that the sending node is an IOAM | Unless the IOAM Edge-to-Edge Capabilities Object is present, which also indicates that the sending node is an IOAM | |||
| decapsulating node, the End-of-Domain Object MUST be present in the IOAM | decapsulating node, the IOAM End-of-Domain Object <bcp14>MUST</bcp14> be | |||
| Capabilities Response Container sent by an IOAM decapsulating node. | present in the IOAM Capabilities Response Container sent by an IOAM decapsulati | |||
| When the IOAM edge-to-edge function is enabled at the IOAM decapsulating | ng node. | |||
| node, it's RECOMMENDED to include only the IOAM Edge-to-Edge | When the IOAM edge-to-edge function is enabled at the IOAM decapsulating | |||
| Capabilities Object but not the IOAM End-of-Domain Object.</t> | node, including only the IOAM Edge-to-Edge Capabilities Object, not the IOAM En | |||
| d-of-Domain Object, is <bcp14>RECOMMENDED</bcp14>.</t> | ||||
| <t> Namespace-ID field has the same definition as what's specified in Se | <t>The Namespace-ID field has the same definition as what's specified | |||
| ction 4.3 of <xref target="RFC9197"/>, it MUST | in <xref target="RFC9197" sectionFormat="of" section="4.3"/>. It <bcp14>MUST</bc | |||
| p14> | ||||
| be one of the Namespace-IDs listed in the IOAM Capabilities Query Contai ner.</t> | be one of the Namespace-IDs listed in the IOAM Capabilities Query Contai ner.</t> | |||
| <t> Reserved field <bcp14>MUST</bcp14> be zeroed on transmission and i | ||||
| gnored on receipt.</t> | ||||
| </section> | ||||
| </section> | ||||
| </section> | </section> | |||
| <section> | ||||
| <name>Operational Guide</name> | ||||
| </section> | <t> Once the IOAM encapsulating node is triggered to discover the | |||
| </section> | enabled IOAM capabilities of each IOAM transit and IOAM decapsulating | |||
| node, the IOAM encapsulating node will send echo requests that include | ||||
| <section title="Operational Guide"> | the IOAM Capabilities Query Container as follows:</t> | |||
| <ul spacing="normal"> | ||||
| <t> Once the IOAM encapsulating node is triggered to discover the enabled IOAM | <li>First, with TTL equal to 1 to reach the closest node (which may or | |||
| capabilities of each IOAM transit and IOAM decapsulating | may not be an IOAM transit node).</li> | |||
| node, the IOAM encapsulating node will send echo requests that include the IOA | <li>Then, with TTL equal to 2 to reach the second-nearest node (which | |||
| M Capabilities Query Container. First, with TTL equal to 1 to reach the | also may or may not be an IOAM transit node).</li> | |||
| closest node, which may be an IOAM transit node or not. Then with TTL equal to | <li>Then, further increasing by 1 the TTL every time the IOAM | |||
| 2 to reach the second-nearest node, which also may be an IOAM | encapsulating node sends a new echo request, until the IOAM | |||
| transit node or not. And further, increasing by 1 the TTL every time the IOAM | encapsulating node receives an echo reply sent by the IOAM | |||
| encapsulating node sends a new echo request, until the IOAM | decapsulating node (which contains the IOAM Capabilities Response | |||
| encapsulating node receives an echo reply sent by the IOAM decapsulating node, | Container including the IOAM Edge-to-Edge Capabilities Object or the | |||
| which contains the IOAM Capabilities Response Container | IOAM End-of-Domain Object).</li></ul> | |||
| including the IOAM Edge-to-Edge Capabilities Object or the IOAM End-of-Domain | <t>As a result, the echo requests sent by the | |||
| Object. As a result, the echo requests sent by the IOAM encapsulating | IOAM encapsulating node will reach all nodes one by one along the | |||
| node will reach all nodes one by one along the transport path of IOAM data pac | transport path of IOAM data packet.</t> | |||
| ket. Alternatively, if the IOAM encapsulating node knows | ||||
| precisely all the IOAM transit and IOAM decapsulating nodes beforehand, once t | ||||
| he IOAM encapsulating node is triggered to discover the | ||||
| enabled IOAM capabilities, it can send an echo request to each IOAM transit an | ||||
| d IOAM decapsulating node directly, without TTL | ||||
| expiration.</t> | ||||
| <t> The IOAM encapsulating node may be triggered by the device administrator, | <t>Alternatively, if the IOAM | |||
| the network management system, the network controller, or | 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.</t> | ||||
| <t> The IOAM encapsulating node may be triggered by the device administrat | ||||
| or, the network management system, the network controller, or | ||||
| data traffic. The specific triggering mechanisms are outside the scope of this document.</t> | data traffic. The specific triggering mechanisms are outside the scope of this document.</t> | |||
| <t> Each IOAM transit and IOAM decapsulating node that receives an echo re | ||||
| <t> Each IOAM transit and IOAM decapsulating node that receives an echo reques | quest containing the IOAM Capabilities Query Container will send an | |||
| t containing the IOAM Capabilities Query Container will send an | ||||
| echo reply to the IOAM encapsulating node. For the echo reply, there is an IOA M Capabilities Response Container containing one or more | echo reply to the IOAM encapsulating node. For the echo reply, there is an IOA M Capabilities Response Container containing one or more | |||
| Objects. The IOAM Capabilities Query Container of the echo request would be ig nored by the receiving node unaware of IOAM.</t> | Objects. The IOAM Capabilities Query Container of the echo request would be ig nored by the receiving node unaware of IOAM.</t> | |||
| <t> Note that the mechanism defined in this document applies to all kinds of I | <t> Note that the mechanism defined in this document applies to all | |||
| OAM option types, whether the four types of IOAM option defined | kinds of IOAM option types, whether the four types of IOAM options | |||
| in <xref target="RFC9197"/> or the DEX type of IOAM option defined in <xref ta | defined in <xref target="RFC9197"/> or the DEX type of IOAM option | |||
| rget="RFC9326"/>, specifically, when applied to the IOAM DEX | defined in <xref target="RFC9326"/>. Specifically, when applied to the | |||
| option, it allows the IOAM encapsulating node to discover which nodes along th | IOAM DEX option, the mechanism allows the IOAM encapsulating node to | |||
| e transport path support IOAM direct exporting and which trace | discover which nodes along the transport path support IOAM direct | |||
| data types are supported to be directly exported at these nodes.</t> | exporting and which trace data types are supported to be directly | |||
| exported at these nodes.</t> | ||||
| </section> | </section> | |||
| <section> | ||||
| <section title="IANA Considerations"> | <name>IANA Considerations</name> | |||
| <t> This document requests the following IANA Actions.</t> | ||||
| <t> IANA is requested to create a registry group named "In-Situ OAM (IOAM) Cap | ||||
| abilities Parameters".</t> | ||||
| <t> This group will include the following registries:</t> | ||||
| <t><list style="symbols"> | ||||
| <t>IOAM SoP Capability</t> | ||||
| <t>IOAM TSF Capability</t> | ||||
| </list></t> | ||||
| <t> New registries in this group can be created via RFC Required process as pe | ||||
| r <xref target="RFC8126"/>.</t> | ||||
| <t> The subsequent subsections detail the registries herein contained.</t> | <t> IANA has created a registry named "In Situ OAM (IOAM) Capabilities".</ | |||
| t> | ||||
| <t> This registry includes the following subregistries:</t> | ||||
| <ul spacing="normal"> | ||||
| <li>IOAM SoP Capability</li> | ||||
| <li>IOAM TSF Capability</li> | ||||
| </ul> | ||||
| <t> Considering the Containers/Objects defined in this document would be carri | <t> The subsequent subsections detail the registries herein contained.</t> | |||
| ed in different types of Echo Request/Reply messages, such as | <t> Considering the Containers/Objects defined in this document that would | |||
| be carried in different types of Echo Request/Reply messages, such as | ||||
| ICMPv6 or LSP Ping, it is intended that the registries for Container/Object Ty pe would be requested in subsequent documents.</t> | ICMPv6 or LSP Ping, it is intended that the registries for Container/Object Ty pe would be requested in subsequent documents.</t> | |||
| <section> | ||||
| <name>IOAM SoP Capability Registry</name> | ||||
| <t> This registry defines four codepoints for the IOAM SoP Capability fi | ||||
| eld for identifying the size of "PktID" and "Cumulative" data | ||||
| as explained in <xref target="RFC9197" sectionFormat="of" section="4.5"/> | ||||
| .</t> | ||||
| <t> A new entry in this registry requires the following fields:</t> | ||||
| <ul spacing="normal"> | ||||
| <li> SoP (Size of POT): a 2-bit binary field as defined in <xref targe | ||||
| t="ioam-cap-res-cont"/>.</li> | ||||
| <li> Description: a terse description of the meaning of this SoP value | ||||
| .</li> | ||||
| </ul> | ||||
| <t> The registry initially contains the following value:</t> | ||||
| <table anchor="sop-description" align="center"> | ||||
| <name>SoP and Description</name> | ||||
| <thead> | ||||
| <tr> | ||||
| <th>SoP</th> | ||||
| <th>Description</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td>0b00</td> | ||||
| <td>64-bit "PktID" and 64-bit "Cumulative" data</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| <t>0b01 - 0b11 are available for assignment via the IETF Review process | ||||
| as per <xref target="RFC8126"/>.</t> | ||||
| </section> | ||||
| <section> | ||||
| <name>IOAM TSF Capability Registry</name> | ||||
| <t> This registry defines four codepoints for the IOAM TSF Capability fi | ||||
| eld for identifying the timestamp format as explained in <xref target="RFC9197" | ||||
| sectionFormat="of" section="5"/>.</t> | ||||
| <t> A new entry in this registry requires the following fields:</t> | ||||
| <ul spacing="normal"> | ||||
| <li> TSF (TimeStamp Format): a 2-bit binary field as defined in <xref | ||||
| target="ioam-e2e"/>.</li> | ||||
| <li> Description: a terse description of the meaning of this TSF value | ||||
| .</li> | ||||
| </ul> | ||||
| <t> The registry initially contains the following values:</t> | ||||
| <section title="IOAM SoP Capability Registry"> | <table anchor="tsf-description" align="center"> | |||
| <name>TSF and Description</name> | ||||
| <t> This registry defines 4 code points for the IOAM SoP Capability field fo | <thead> | |||
| r identifying the size of "PktID" and "Cumulative" data | <tr> | |||
| as explained in Section 4.5 of <xref target="RFC9197"/>.</t> | <th>TSF</th> | |||
| <th>Description</th> | ||||
| <t> A new entry in this registry requires the following fields:<list style=" | </tr> | |||
| symbols"> | </thead> | |||
| <t> SoP: size of POT; a two-bit binary field as defined in Section 3.2.3</t | <tbody> | |||
| > | <tr> | |||
| <t> Description: a terse description of the meaning of this SoP value</t | <td>0b00</td> | |||
| > | <td>PTP Truncated Timestamp Format</td> | |||
| </list> | </tr> | |||
| </t> | <tr> | |||
| <td>0b01</td> | ||||
| <t> The registry initially contains the following value:</t> | <td>NTP 64-bit Timestamp Format</td> | |||
| </tr> | ||||
| <figure> | <tr> | |||
| <artwork><![CDATA[ | <td>0b10</td> | |||
| SoP Description | <td>POSIX-based Timestamp Format</td> | |||
| ---- ----------- | </tr> | |||
| 0b00 64-bit "PktID" and 64-bit "Cumulative" data | </tbody> | |||
| ]]></artwork> | </table> | |||
| </figure> | ||||
| <t> 0b01 - 0b11 are available for assignment via IETF Review process as per | ||||
| <xref target="RFC8126"/>.</t> | ||||
| </section> | ||||
| <section title="IOAM TSF Capability Registry"> | ||||
| <t> This registry defines 4 code points for the IOAM TSF Capability field fo | ||||
| r identifying the timestamp format as explained in Section | ||||
| 5 of <xref target="RFC9197"/>.</t> | ||||
| <t> A new entry in this registry requires the following fields:<list style=" | ||||
| symbols"> | ||||
| <t> TSF: timestamp format; a two-bit binary field as defined in Section 3.2 | ||||
| .4</t> | ||||
| <t> Description: a terse description of the meaning of this TSF value</t | ||||
| > | ||||
| </list> | ||||
| </t> | ||||
| <t> The registry initially contains the following values:</t> | ||||
| <figure> | ||||
| <artwork><![CDATA[ | ||||
| TSF Description | ||||
| ---- ----------- | ||||
| 0b00 PTP Truncated Timestamp Format | ||||
| 0b01 NTP 64-bit Timestamp Format | ||||
| 0b10 POSIX-based Timestamp Format | ||||
| ]]></artwork> | ||||
| </figure> | ||||
| <t> 0b11 is available for assignment via IETF Review process as per <xref ta | ||||
| rget="RFC8126"/>.</t> | ||||
| </section> | ||||
| </section> | ||||
| <section title="Security Considerations"> | ||||
| <t> Overall, the security needs for IOAM capabilities query mechanisms used in | ||||
| different environments are similar.</t> | ||||
| <t> To avoid potential Denial-of-Service (DoS) attacks, it is RECOMMENDED that | <t> 0b11 is available for assignment via the IETF Review process as per | |||
| implementations apply rate-limiting to | <xref target="RFC8126"/>.</t> | |||
| </section> | ||||
| </section> | ||||
| <section> | ||||
| <name>Security Considerations</name> | ||||
| <t> Overall, the security needs for IOAM capabilities query mechanisms use | ||||
| d in different environments are similar.</t> | ||||
| <t> To avoid potential Denial-of-Service (DoS) attacks, it is <bcp14>RECOM | ||||
| MENDED</bcp14> that implementations apply rate-limiting to | ||||
| incoming echo requests and replies.</t> | incoming echo requests and replies.</t> | |||
| <t> To protect against unauthorized sources using echo request messages to | ||||
| <t> To protect against unauthorized sources using echo request messages to obt | obtain IOAM Capabilities information, | |||
| ain IOAM Capabilities information, | implementations <bcp14>MUST</bcp14> provide a means of checking the source add | |||
| implementations MUST provide a means of checking the source addresses of echo | resses of echo request messages against an | |||
| request messages against an | ||||
| access list before accepting the message.</t> | access list before accepting the message.</t> | |||
| <t> A deployment <bcp14>MUST</bcp14> ensure that border-filtering drops in | ||||
| <t> A deployment MUST ensure that border filtering drops inbound echo requests | bound echo requests with an IOAM Capabilities Container Header | |||
| with an IOAM Capabilities Container Header | from outside of the domain and that drops outbound echo requests or replies wi | |||
| from outside of the domain, and drops outbound echo request/replies with IOAM | th IOAM Capabilities Headers leaving the domain.</t> | |||
| Capabilities Headers leaving the domain.</t> | <t> A deployment <bcp14>MUST</bcp14> support the configuration option to e | |||
| nable or disable the IOAM Capabilities Discovery feature defined | ||||
| <t> A deployment MUST support the configuration option to enable/disable the I | in this document. By default, the IOAM Capabilities Discovery feature <bcp14>M | |||
| OAM Capabilities Discovery feature defined | UST</bcp14> be disabled.</t> | |||
| in this document. By default, the IOAM Capabilities Discovery feature MUST be | <t> The integrity protection on IOAM Capabilities information carried in e | |||
| disabled.</t> | cho reply messages can be achieved by the | |||
| <t> The integrity protection on IOAM Capabilities information carried in echo | ||||
| reply messages can be achieved by the | ||||
| underlying transport. For example, if the environment is an IPv6 network, the IP Authentication Header | underlying transport. For example, if the environment is an IPv6 network, the IP Authentication Header | |||
| <xref target="RFC4302"/> or IP Encapsulating Security Payload Header <xref tar get="RFC4303"/> can be used.</t> | <xref target="RFC4302"/> or IP Encapsulating Security Payload Header <xref tar get="RFC4303"/> can be used.</t> | |||
| <t> The collected IOAM Capabilities information by queries may be consider | ||||
| <t> The collected IOAM Capabilities information by queries may be considered c | ed confidential. An implementation can use | |||
| onfidential. An implementation can use | secure underlying transport of echo requests or replies to provide privacy pro | |||
| secure underlying transport of echo request/reply to provide privacy protectio | tection. For example, if the environment is | |||
| n. For example, if the environment is | ||||
| an IPv6 network, confidentiality can be achieved by using the IP Encapsulating Security Payload Header <xref target="RFC4303"/>.</t> | an IPv6 network, confidentiality can be achieved by using the IP Encapsulating Security Payload Header <xref target="RFC4303"/>.</t> | |||
| <t> An implementation can also directly secure the data carried in echo re | ||||
| <t> An implementation can also directly secure the data carried in echo reques | quests and replies if needed, the specific | |||
| ts and replies if needed, the specific | ||||
| mechanism on how to secure the data is beyond the scope of this document.</t> | mechanism on how to secure the data is beyond the scope of this document.</t> | |||
| <t> An implementation can also check whether the fields in received echo reque | <t> An implementation can also check whether the fields in received echo | |||
| sts and replies strictly conform to the | requests and replies strictly conform to the specifications, e.g., | |||
| specifications, e.g., whether the list of IOAM Namespace-IDs includes duplicat | whether the list of IOAM Namespace-IDs includes duplicate entries and | |||
| e entries, whether the received Namespace-ID | whether the received Namespace-ID is an operator-assigned or | |||
| is an operator-assigned or IANA-assigned one, once a check fails, an exception | IANA-assigned one, once a check fails, an exception event indicating the | |||
| event indicating the checked field should | checked field should be reported to the management.</t> | |||
| be reported to the management.</t> | <t> Except for what's described above, the security issues discussed in <x | |||
| ref target="RFC9197"/> provide good guidance on | ||||
| <t> Except for what's described above, the security issues discussed in <xref | ||||
| target="RFC9197"/> provide a good guidance on | ||||
| implementation of this specification.</t> | implementation of this specification.</t> | |||
| </section> | ||||
| </middle> | ||||
| <back> | ||||
| </section> | <displayreference target="I-D.ietf-sfc-multi-layer-oam" to="OAM-for-SFC"/> | |||
| <displayreference target="I-D.ietf-bier-ping" to="BIER-PING"/> | ||||
| <section title="Acknowledgements"> | ||||
| <t> The authors would like to acknowledge Tianran Zhou, Dhruv Dhody, Frank Bro | <references> | |||
| ckners, Cheng Li, Gyan Mishra, Marcus | <name>References</name> | |||
| Ihlar, Martin Duke, Chris Lonvick, Eric Vyncke, Alvaro Retana, Paul Wouters, R | <references> | |||
| oman Danyliw, Lars Eggert, Warren Kumari, | <name>Normative References</name> | |||
| John Scudder, Robert Wilton, Erik Kline, Zaheduzzaman Sarker and Murray Kucher | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | |||
| awy for their careful review and helpful comments.</t> | 119.xml"/> | |||
| <t> The authors appreciate the f2f discussion with Frank Brockners on this doc | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
| ument.</t> | 174.xml"/> | |||
| <t> The authors would like to acknowledge Tommy Pauly and Ian Swett for their | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
| good suggestion and guidance.</t> | 126.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
| 197.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
| 326.xml"/> | ||||
| </references> | ||||
| <references> | ||||
| <name>Informative References</name> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 799.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | ||||
| 443.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | ||||
| 620.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | ||||
| 884.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 335.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 029.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | ||||
| 302.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | ||||
| 303.xml"/> | ||||
| </section> | <!-- [I-D.ietf-sfc-multi-layer-oam] IESG state Publication Requested. | |||
| </middle> | --> | |||
| <back> | <reference anchor="I-D.ietf-sfc-multi-layer-oam"> | |||
| <front> | ||||
| <title>Active OAM for Service Function Chaining (SFC)</title> | ||||
| <author initials="G." surname="Mirsky" fullname="Greg Mirsky"> | ||||
| <organization>Ericsson</organization> | ||||
| </author> | ||||
| <author initials="W." surname="Meng" fullname="Wei Meng"> | ||||
| <organization>ZTE Corporation</organization> | ||||
| </author> | ||||
| <author initials="T." surname="Ao" fullname="Ting Ao"> | ||||
| <organization>China Mobile</organization> | ||||
| </author> | ||||
| <author initials="B." surname="Khasnabish" fullname="Bhumip Khasnabish"> | ||||
| <organization>Individual contributor</organization> | ||||
| </author> | ||||
| <author initials="K." surname="Leung" fullname="Kent Leung"> | ||||
| <organization>Individual contributor</organization> | ||||
| </author> | ||||
| <author initials="G." surname="Mishra" fullname="Gyan Mishra"> | ||||
| <organization>Verizon Inc.</organization> | ||||
| </author> | ||||
| <date month="March" day="23" year="2023"/> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-ietf-sfc-multi-layer-oam-23"/> | ||||
| </reference> | ||||
| <references title="Normative References"> | <!-- [I-D.ietf-bier-ping] IESG state Expired.--> | |||
| <?rfc include="reference.RFC.2119"?> | ||||
| <?rfc include="reference.RFC.8174"?> | ||||
| <?rfc include="reference.RFC.8126"?> | ||||
| <?rfc include="reference.RFC.9197"?> | ||||
| <?rfc include="reference.RFC.9326"?> | ||||
| </references> | ||||
| <references title="Informative References"> | <xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-ietf-bi | |||
| <?rfc include="reference.RFC.8799"?> | er-ping.xml"/> | |||
| <?rfc include="reference.RFC.4443"?> | </references> | |||
| <?rfc include="reference.RFC.4620"?> | ||||
| <?rfc include="reference.RFC.4884"?> | ||||
| <?rfc include="reference.RFC.8335"?> | ||||
| <?rfc include="reference.RFC.8029"?> | ||||
| <?rfc include="reference.RFC.4302"?> | ||||
| <?rfc include="reference.RFC.4303"?> | ||||
| <?rfc include="reference.I-D.ietf-sfc-multi-layer-oam"?> | ||||
| <?rfc include="reference.I-D.ietf-bier-ping"?> | ||||
| </references> | </references> | |||
| <section numbered="false"> | ||||
| </back> | <name>Acknowledgements</name> | |||
| <t> The authors would like to acknowledge <contact fullname="Tianran | ||||
| Zhou"/>, <contact fullname="Dhruv Dhody"/>, <contact fullname="Frank | ||||
| Brockners"/>, <contact fullname="Cheng Li"/>, <contact fullname="Gyan | ||||
| Mishra"/>, <contact fullname="Marcus Ihlar"/>, <contact fullname="Martin | ||||
| Duke"/>, <contact fullname="Chris Lonvick"/>, <contact fullname="Éric | ||||
| Vyncke"/>, <contact fullname="Alvaro Retana"/>, <contact fullname="Paul | ||||
| Wouters"/>, <contact fullname="Roman Danyliw"/>, <contact fullname="Lars | ||||
| Eggert"/>, <contact fullname="Warren Kumari"/>, <contact fullname="John | ||||
| Scudder"/>, <contact fullname="Robert Wilton"/>, <contact fullname="Erik | ||||
| Kline"/>, <contact fullname="Zaheduzzaman Sarker"/>, <contact | ||||
| fullname="Murray Kucherawy"/>, and <contact fullname="Donald Eastlake | ||||
| 3rd"/> for their careful review and helpful comments.</t> | ||||
| <t> The authors appreciate the f2f discussion with <contact | ||||
| fullname="Frank Brockners"/> on this document.</t> | ||||
| <t> The authors would like to acknowledge <contact fullname="Tommy | ||||
| Pauly"/> and <contact fullname="Ian Swett"/> for their good suggestion | ||||
| and guidance.</t> | ||||
| </section> | ||||
| </back> | ||||
| </rfc> | </rfc> | |||
| End of changes. 85 change blocks. | ||||
| 684 lines changed or deleted | 706 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||