<?xml version="1.0"encoding="US-ASCII"?> <!-- This template is for creating an Internet Draft using xml2rfc, which is available here: http://xml.resource.org. -->encoding="UTF-8"?> <!DOCTYPE rfcSYSTEM "rfc2629.dtd"[<!-- One method to get references from the online citation libraries. There has to be one entity for each item to be referenced. An alternate method (rfc include) is described in the references. --> <!ENTITY RFC2119 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"> <!ENTITY RFC8174 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"> <!ENTITY RFC7799 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7799.xml"> <!ENTITY RFC8126 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml"> <!ENTITY RFC5475 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5475.xml"> <!ENTITY RFC7014 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7014.xml"><!ENTITYRFC6291 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6291.xml">nbsp " "> <!ENTITYRFC9197 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9197.xml">zwsp "​"> <!ENTITYI-D.spiegel-ippm-ioam-rawexport SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.spiegel-ippm-ioam-rawexport.xml">nbhy "‑"> <!ENTITYI-D.ietf-sfc-ioam-nsh SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-sfc-ioam-nsh.xml"> <!ENTITY I-D.ietf-ippm-ioam-ipv6-options SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-ippm-ioam-ipv6-options.xml"> <!ENTITY I-D.ietf-ippm-ioam-data-integrity SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-ippm-ioam-data-integrity.xml"> <!ENTITY I-D.song-ippm-postcard-based-telemetry SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.song-ippm-postcard-based-telemetry.xml"> <!ENTITY I-D.ietf-ippm-ioam-flags SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-ippm-ioam-flags.xml"> <!ENTITY AFI SYSTEM "http://www.iana.org/assignments/address-family-numbers/address-family-numbers.xml">wj "⁠"> ]><?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> <?rfc strict="yes" ?> <?rfc toc="yes"?> <?rfc tocdepth="4"?> <?rfc symrefs="yes"?> <?rfc sortrefs="yes" ?> <?rfc compact="yes" ?> <?rfc subcompact="no" ?><rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" category="std" consensus="true" docName="draft-ietf-ippm-ioam-direct-export-11"ipr="trust200902">number="9326" ipr="trust200902" obsoletes="" updates="" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3"> <!-- xml2rfc v2v3 conversion 3.15.0 --> <front> <title abbrev="IOAM DirectExporting">In-situ OAMExporting">In Situ Operations, Administration, and Maintenance (IOAM) Direct Exporting</title> <seriesInfo name="RFC" value="9326"/> <author fullname="Haoyu Song" initials="H." surname="Song"> <organization abbrev="">Futurewei</organization> <address> <postal> <street>2330 Central Expressway</street> <city>Santa Clara</city> <code>95050</code><country>USA</country><country>United States of America</country> </postal> <email>haoyu.song@futurewei.com</email> </address> </author> <author fullname="Barak Gafni" initials="B." surname="Gafni"> <organization abbrev="">Nvidia</organization> <address> <postal> <extaddr>Suite 100</extaddr> <street>350 OakmeadParkway, Suite 100</street> <city>Sunnyvale, CA</city>Parkway</street> <city>Sunnyvale</city> <region>CA</region> <code>94085</code><country>U.S.A.</country><country>United States of America</country> </postal> <email>gbarak@nvidia.com</email> </address> </author> <author fullname="Frank Brockners" initials="F." surname="Brockners"> <organization abbrev="Cisco">Cisco Systems, Inc.</organization> <address> <postal> <street>Hansaallee249, 3rd Floor</street> <!-- Reorder these if your country does things differently --> <city>DUESSELDORF</city> <region>NORDRHEIN-WESTFALEN</region>249</street> <city>Duesseldorf</city> <code>40549</code> <country>Germany</country> </postal> <email>fbrockne@cisco.com</email><!-- uri and facsimile elements may also be added --></address> </author> <author fullname="Shwetha Bhandari" initials="S." surname="Bhandari"> <organization abbrev="Thoughtspot">Thoughtspot</organization> <address> <postal><street>3rd<extaddr>3rd Floor, Indiqube Orion,24th Main Rd,Garden Layout, HSRLayout</street> <city>Bangalore, KARNATAKA 560 102</city>Layout</extaddr> <street>24th Main Rd</street> <city>Bangalore</city> <region>Karnataka</region> <code>560 102</code> <country>India</country> </postal> <email>shwetha.bhandari@thoughtspot.com</email> </address> </author> <author fullname="Tal Mizrahi" initials="T." surname="Mizrahi"> <organization abbrev="">Huawei</organization> <address> <postal> <street>8-2 Matam</street> <city>Haifa</city> <code>3190501</code> <country>Israel</country> </postal> <email>tal.mizrahi.phd@gmail.com</email> </address> </author> <dateyear="2022"/> <area>TSV</area> <workgroup>IPPM</workgroup> <!-- WG name at the upperleft corner of the doc, IETF is fine for individual submissions. If this element is not present, the default is "Network Working Group", which is used by the RFC Editor as a nod to the history of the IETF. -->year="2022" month="October" /> <area>tsv</area> <workgroup>ippm</workgroup> <keyword>IOAM</keyword> <keyword>Telemetry</keyword><!-- Keywords will be incorporated into HTML output files in a meta tag but they have no effect on text or nroff output. If you submit your draft to the RFC Editor, the keywords will be used for the search engine. --><abstract><t>In-situ<t>In situ Operations, Administration, and Maintenance (IOAM) is used for recording and collecting operational and telemetry information. Specifically, IOAM allows telemetry data to be pushed into data packets while they traverse the network. This document introduces a new IOAM option type (denoted IOAM-Option-Type) called the "IOAM Direct Export (DEX)Option-Type, whichOption-Type". This Option-Type is used as a trigger for IOAM data to be directly exported or locally aggregated without being pushed into in-flight data packets. The exporting method and format are outside the scope of this document.</t> </abstract> </front> <middle> <sectiontitle="Introduction" toc="default">toc="default" numbered="true"> <name>Introduction</name> <t>IOAM <xreftarget="RFC9197"/>target="RFC9197" format="default"/> is used for monitoring traffic in thenetwork,network and for incorporating IOAM data fields (denoted IOAM-Data-Fields) into in-flight data packets.</t> <t>IOAM makes use of four possible IOAM-Option-Types, defined in <xreftarget="RFC9197"/>:target="RFC9197" format="default"/>: Pre-allocatedTrace Option-Type,Trace, IncrementalTrace Option-Type,Trace, Proof of Transit(POT) Option-Type,(POT), andEdge-to-Edge Option-Type.</t>Edge-to-Edge.</t> <t>This document defines a new IOAM-Option-Type called the "IOAM Direct Export (DEX)Option-Type.Option-Type". This Option-Type is used as a trigger for IOAM nodes to locally aggregate and process IOAMdata,data and/or to export it to a receiving entity (or entities). Throughout thedocumentdocument, this functionality is referred to ascollection"collection" and/orexporting. A"exporting". In this context, a "receiving entity"in this contextis an entity that resides within the IOAM domain such as a collector, analyzer, controller, decapsulating node, orasoftware module in one of the IOAM nodes.</t> <t>Note that even though the IOAM-Option-Type is called "Direct Export", it depends on the deployment whether the receipt of a packet with a DEX Option-Type leads to the creation of another packet. Some deployments might simply use the packet with the DEX Option-Type to trigger local processing ofOAMOperations, Administration, and Maintenance (OAM) data. The functionality of this local processing is not within the scope of this document.</t> </section> <section anchor="Conventions"title="Conventions">numbered="true" toc="default"> <name>Conventions</name> <sectiontitle="Requirement Language"> <t>Thenumbered="true" toc="default"> <name>Requirements Language</name> <t> The key words"MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY","<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY</bcp14>", and"OPTIONAL""<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as described inBCP 14BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shownhere.</t>here. </t> </section> <sectiontitle="Terminology">numbered="true" toc="default"> <name>Terminology</name> <t>Abbreviations used in this document:</t><t><list hangIndent="11" style="hanging"> <t hangText="IOAM:">In-situ<dl newline="false" spacing="normal" indent="8"> <dt>IOAM:</dt> <dd>In situ Operations, Administration, andMaintenance</t> <t hangText="OAM:">Operations,Maintenance</dd> <dt>OAM:</dt> <dd>Operations, Administration, and Maintenance <xreftarget="RFC6291"/></t> <t hangText="DEX:">Direct EXporting</t> </list></t>target="RFC6291" format="default"/></dd> <dt>DEX:</dt> <dd>Direct Exporting</dd> </dl> </section> </section> <section anchor="OptionTypeSec"title="Thenumbered="true" toc="default"> <name>The Direct Exporting (DEX)IOAM-Option-Type">IOAM-Option-Type</name> <sectiontitle="Overview">numbered="true" toc="default"> <name>Overview</name> <t>The DEX Option-Type is used as a trigger for collecting IOAM data locally orforexporting it to a receiving entity (or entities). Specifically, the DEX Option-Type can be used as a trigger for collecting IOAM data by an IOAM node and locally aggregating it; thus, this aggregated data can be periodically pushed to a receivingentity,entity or pulled by a receiving entity on-demand.</t> <t>This Option-Type is incorporated into data packets by an IOAM encapsulatingnode,node and removed by an IOAM decapsulating node, as illustrated in <xreftarget="DEXArch"/>.target="DEXArch" format="default"/>. The Option-Type can bereadread, but notmodifiedmodified, by transit nodes.Note:Note that the termsIOAM encapsulating,"IOAM encapsulating node", "IOAM decapsulating node", and "IOAM transitnodesnode" are as defined in <xreftarget="RFC9197"/>.</t>target="RFC9197" format="default"/>.</t> <figurealign="center" anchor="DEXArch" title="DEX Architecture">anchor="DEXArch"> <name>DEX Architecture</name> <artworkalign="left"><![CDATA[align="left" name="" type="" alt=""><![CDATA[ ^ |Exported IOAM data | | | +--------------+------+-------+--------------+ | | | | | | | | User +---+----+ +---+----+ +---+----+ +---+----+ packets |Encapsu-| | Transit| | Transit| |Decapsu-| --------->|lating |====>| Node |====>| Node |====>|lating |----> |Node | | A | | B | |Node | +--------+ +--------+ +--------+ +--------+ Insert DEX Export Export Remove DEX option and IOAM data IOAM data option and export data exportdata ]]></artwork>data]]></artwork> </figure> <t>The DEX Option-Type is used as a trigger to collect and/or export IOAM data. The trigger applies to transit nodes, the decapsulating node, and the encapsulating node:</t><t><list style="symbols"> <t>An<ul spacing="normal"> <li> An IOAM encapsulating node configured to incorporate the DEX Option-Type encapsulates(possiblythe packets (or possibly a subsetof)of thepacketspackets) it forwards with the DEXOption-Type,Option-Type andMAY<bcp14>MAY</bcp14> export and/or collect the requested IOAM data immediately. Only IOAM encapsulating nodes are allowed to add the DEX Option-Type to a packet. An IOAM encapsulating node can generate probe packets that incorporate the DEX Option-Type. These probe packets can be generated periodically or on-demand (forexampleexample, triggered by the management plane). The specification of such probe packets is outside the scope of thisdocument.</t> <t>Adocument.</li> <li>A transit node that processes a packet with the DEX Option-TypeMAY<bcp14>MAY</bcp14> export and/or collect the requested IOAMdata.</t> <t>Andata.</li> <li>An IOAM decapsulating node that processes a packet with the DEX Option-TypeMAY<bcp14>MAY</bcp14> export and/or collect the requested IOAMdata,data andMUST<bcp14>MUST</bcp14> decapsulate the IOAMheader.</t> </list></t>header.</li> </ul> <t>As in <xreftarget="RFC9197"/>,target="RFC9197" format="default"/>, the DEX Option-Type can be incorporated into all or a subset of the traffic that is forwarded by the encapsulating node, as further discussed in <xreftarget="SelectionSec"/> below.target="SelectionSec" format="default"/>. Moreover, IOAM nodes respond to the DEX trigger by exporting and/or collecting IOAM data either for all traversing packets that carry the DEXOption-Type,Option-Type or selectively only for a subset of these packets, as further discussed in <xreftarget="ExportSec"/> below.</t>target="ExportSec" format="default"/>.</t> <section anchor="SelectionSec"title="DEXnumbered="true" toc="default"> <name>DEX PacketSelection">Selection</name> <t>If an IOAM encapsulating node incorporates the DEX Option-Type into all the traffic itforwardsforwards, it may lead to an excessive amount of exported data, which may overload the network and the receiving entity. Therefore, an IOAM encapsulating node that supports the DEX Option-TypeMUST<bcp14>MUST</bcp14> support the ability to incorporate the DEX Option-Type selectively into a subset of the packets that are forwarded byit.</t>the IOAM encapsulating node.</t> <t>Various methods of packet selection and sampling have been previously defined, such as <xreftarget="RFC7014"/>target="RFC7014" format="default"/> and <xreftarget="RFC5475"/>.target="RFC5475" format="default"/>. Similar techniques can be applied by an IOAM encapsulating node to apply DEX to a subset of the forwarded traffic.</t> <t>The subset of traffic that is forwarded or transmitted with a DEX Option-TypeSHOULD NOT<bcp14>SHOULD NOT</bcp14> exceed 1/N of the interface capacity on any of the IOAM encapsulating node's interfaces. It is noted that this requirement applies to the total traffic that incorporates a DEX Option-Type, including traffic that is forwarded by the IOAM encapsulating node and probe packets that are generated by the IOAM encapsulating node. In thiscontextcontext, N is a parameter that can be configurable by network operators. If there is an upper bound, M, on the number of IOAM transit nodes in any path in the network, then it isRECOMMENDED<bcp14>RECOMMENDED</bcp14> to use an N such that N >> M (i.e., N is much greater than M). The rationale is that a packet that includes a DEX Option-Type may trigger an exported packet from each IOAM transit node along the path for a total of M exported packets. Thus, if N >>MM, then the number of exported packets is significantly lower than the number of data packets forwarded by the IOAM encapsulating node. If there is no prior knowledge about the network topology or size, it isRECOMMENDED<bcp14>RECOMMENDED</bcp14> to use N>100.</t> </section> <section anchor="ExportSec"title="Respondingnumbered="true" toc="default"> <name>Responding to the DEXTrigger">Trigger</name> <t>The DEX Option-Type specifies which IOAM-Data-Fields should be exported and/or collected, as specified in <xreftarget="OptionSec"/>.target="OptionSec" format="default"/>. As mentioned above, the data can be locally collected,and optionally can be aggregated andaggregated, and/or exported to a receivingentity, eitherentity proactively or on-demand. If IOAM data is exported, the format and encapsulation of the packet that contains the exported data is not within the scope of the current document. For example, the export format can be based on <xreftarget="I-D.spiegel-ippm-ioam-rawexport"/>.</t>target="I-D.spiegel-ippm-ioam-rawexport" format="default"/>.</t> <t>An IOAM node that performs DEX-triggered exportingMUST<bcp14>MUST</bcp14> support the ability to limit the rate of the exported packets. The rate of exported packetsSHOULD<bcp14>SHOULD</bcp14> be limited so that the number of exported packets is significantly lower than the number of packets that are forwarded by the device. The exported data rateSHOULD NOT<bcp14>SHOULD NOT</bcp14> exceed 1/N of the interface capacity on any of the IOAM node's interfaces. It isRECOMMENDED<bcp14>RECOMMENDED</bcp14> to use N>100. Depending on the IOAM node's architecture considerations, the export rate may be limited to a lower number in order to avoid loading the IOAM node. An IOAM nodeMAY<bcp14>MAY</bcp14> maintain a counter or a set of counters that count the events in which the IOAM node receives a packet with the DEX Option-Type and does not collect and/or export data due to the rate limits.</t> <t>IOAM nodesSHOULD NOT<bcp14>SHOULD NOT</bcp14> be configured to export packets over a path or a tunnel that is subject to IOAM direct exporting. Furthermore, IOAM encapsulating nodes that can identify a packet as an IOAM exported packetMUST NOT<bcp14>MUST NOT</bcp14> push a DEX Option-Type into such a packet. This requirement is intended to prevent nested exporting and/or exporting loops.</t> <t>A transit or decapsulating IOAM node that receives an unknown IOAM-Option-Type ignores it (as defined in <xreftarget="RFC9197"/>), and specificallytarget="RFC9197" format="default"/>); specifically, nodes that do not support the DEX Option-Type ignore it.Note that asAs per <xreftarget="RFC9197"/>target="RFC9197" format="default"/>, note that a decapsulating node removes the IOAM encapsulation and all its IOAM-Option-Types. Specifically, this applies to the case where one of these options is a (possibly unknown) DEX Option-Type. The ability to skip over a (possibly unknown) DEX Option-Type in the parsing or in the decapsulation procedure is dependent on the specific encapsulation, which is outside the scope of this document. For example, when IOAM is encapsulated in IPv6 <xreftarget="I-D.ietf-ippm-ioam-ipv6-options"/>target="I-D.ietf-ippm-ioam-ipv6-options" format="default"/>, the DEX Option-Type is incorporated either in a Hop-by-Hop options header or in a Destination optionsheader, and thusheader; thus, it can be skipped using the length field in the options header.</t> </section> </section> <section anchor="OptionSec"title="Thenumbered="true" toc="default"> <name>The DEX Option-TypeFormat">Format</name> <t>The format of the DEX Option-Type is depicted in <xreftarget="OptionFormat"/>.target="OptionFormat" format="default"/>. The length of the DEX Option-Type is at least 8 octets. The DEX Option-TypeMAY<bcp14>MAY</bcp14> include one or more optional fields. The existence of the optional fields is indicated by the corresponding flags in the Extension-Flags field. Two optional fields are defined in thisdocument,document: the Flow ID andtheSequence Number fields. Every optional fieldMUST<bcp14>MUST</bcp14> be exactly 4 octets long. Thus, the Extension-Flags field explicitly indicates the length of the DEX Option-Type. Defining a new optional field requires an allocation of a corresponding flag in the Extension-Flags field, as specified in <xreftarget="IANAflags"/>.</t>target="IANAflags" format="default"/>.</t> <figurealign="center" anchor="OptionFormat" title="DEXanchor="OptionFormat"> <name>DEX Option-TypeFormat">Format</name> <artworkalign="left"><![CDATA[align="left" name="" type="" alt=""><![CDATA[ 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Namespace-ID | Flags |Extension-Flags| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IOAM-Trace-Type | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Flow ID(optional)(Optional) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number (Optional) |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ]]></artwork>+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> </figure><t><list hangIndent="16" style="hanging"> <t hangText="Namespace-ID">A<dl newline="true" spacing="normal"> <dt>Namespace-ID:</dt> <dd>A 16-bit identifier of the IOAM namespace, as defined in <xreftarget="RFC9197"/>.</t> <t hangText="Flags">Antarget="RFC9197" format="default"/>.</dd> <dt>Flags:</dt> <dd>An 8-bit field, comprised of 8one-bit1-bit subfields. Flags are allocated by IANA, as defined in <xreftarget="IANAflags"/>.</t> <t hangText="Extension-Flags">Antarget="IANAflags" format="default"/>.</dd> <dt>Extension-Flags:</dt> <dd>An 8-bit field, comprised of 8one-bit1-bit subfields. Extension-Flags are allocated by IANA, as defined in <xreftarget="IANAExtensionflags"/>.target="IANAExtensionflags" format="default"/>. Every bit in the Extension-Flag field that is set to 1 indicates the existence of a corresponding optional 4-octet field. An IOAM node that receives a DEX Option-Type with an unknown flag set to 1MUST<bcp14>MUST</bcp14> ignore the corresponding optionalfield.</t> <t hangText="IOAM-Trace-Type">Afield.</dd> <dt>IOAM-Trace-Type:</dt> <dd>A 24-bit identifierwhichthat specifies which IOAM-Data-Fields should be exported. The format of this field is as defined in <xreftarget="RFC9197"/>.target="RFC9197" format="default"/>. Specifically, the bit that corresponds to the Checksum Complement IOAM-Data-FieldSHOULD<bcp14>SHOULD</bcp14> be assigned to be zero by the IOAM encapsulatingnode,node and ignored by transit and decapsulating nodes. The reason for this is that the Checksum Complement is intended for in-flight packet modifications and is not relevant for directexporting.</t> <t hangText="Reserved">Thisexporting.</dd> <dt>Reserved:</dt> <dd>This fieldMUST<bcp14>MUST</bcp14> be ignored by thereceiver.</t> <t hangText="Optional fields">Thereceiver.</dd> <dt>Optional fields:</dt> <dd><t>The optional fields, if present, reside after the Reserved field. The order of the optional fields is according to the order of the respective bits, starting from the most significant bit, that are enabled in the Extension-Flags field. Each optional field is 4 octets long.</t><t hangText="Flow ID">An<dl spacing="normal" newline="true"> <dt>Flow ID:</dt> <dd>An optional 32-bit field representing the flow identifier. If the actual Flow ID is shorter than 32 bits, it is zero padded in its most significant bits. The field is set at the encapsulating node. The Flow ID can be used to correlate the exported data of the same flow from multiple nodes and from multiple packets. Flow ID values are expected to be allocated in a way that avoids collisions. For example, random assignment of Flow ID values can be subject to collisions, while centralized allocation can avoid this problem. The specification of the Flow ID allocation method is not within the scope of thisdocument.</t> <t hangText="Sequence Number">Andocument.</dd> <dt>Sequence Number:</dt> <dd>An optional 32-bit sequence number starting from 0 and incremented by 1 for each packet from the same flow at the encapsulating node that includes the DEX option. The Sequence Number, when combined with the Flow ID, provides a convenient approach to correlate the exported data from the same userpacket.</t> </list></t>packet.</dd> </dl> </dd> </dl> </section> </section> <section anchor="IANA"title="IANA Considerations">numbered="true" toc="default"> <name>IANA Considerations</name> <section anchor="IANAtype"title="IOAM Type">numbered="true" toc="default"> <name>IOAM Type</name> <t>The "IOAMOption-Type Registry" wasOption-Type" registry is defined inSection 7.1 of<xreftarget="RFC9197"/>.target="RFC9197" sectionFormat="of" section="7.1"/>. IANAis requested to allocatehas allocated the following code point from the "IOAMOption-Type Registry"Option-Type" registry as follows:</t><t><list hangIndent="11" style="hanging"> <t hangText="TBD-type">IOAM<dl newline="false" spacing="normal"> <dt>Code Point:</dt><dd>4</dd> <dt>Name</dt><dd>IOAM Direct Export (DEX)Option-Type</t> </list></t> <t>If possible, IANA is requested to allocate code point 4 (TBD-type). The "Description" for the new option should be "Direct exporting" and the "Reference" should be the current document. </t>Option-Type</dd> <dt>Description:</dt><dd>Direct exporting</dd> <dt>Reference:</dt><dd>This document</dd> </dl> </section> <section anchor="IANAflags"title="IOAMnumbered="true" toc="default"> <name>IOAM DEXFlags">Flags</name> <t>IANAis requested to define anhas created the "IOAM DEX Flags" registry. This registry includes 8 flag bits. Allocation is based on the "IETF Review"procedure, asprocedure defined in <xreftarget="RFC8126"/>.</t>target="RFC8126" format="default"/>.</t> <t>New registration requestsMUST<bcp14>MUST</bcp14> use the following template:</t><t><list style="hanging"> <t hangText="Bit:">Desired<dl newline="false" spacing="normal"> <dt>Bit:</dt> <dd>Desired bit to be allocated in the8 bit8-bit Flags field of the DEXOption-Type.</t> <t hangText="Description:">BriefOption-Type.</dd> <dt>Description:</dt> <dd>Brief description of the newly registeredbit.</t> <t hangText="Reference:">Referencebit.</dd> <dt>Reference:</dt> <dd>Reference to the document that defines the newbit.</t> </list></t>bit.</dd> </dl> </section> <section anchor="IANAExtensionflags"title="IOAMnumbered="true" toc="default"> <name>IOAM DEXExtension-Flags">Extension-Flags</name> <t>IANAis requested to define anhas created the "IOAM DEX Extension-Flags" registry. This registry includes 8 flag bits. Bit 0 (the most significant bit) and bit 1 in the registry are allocated by thisdocument,document and described in <xreftarget="OptionSec"/>.target="OptionSec" format="default"/>. Allocation of the other bits should be performed based on the "IETF Review"procedure, asprocedure defined in <xreftarget="RFC8126"/>.</t> <t><list style="hanging"> <t hangText="Bit 0">"Flowtarget="RFC8126" format="default"/>.</t> <dl newline="false" spacing="normal"> <dt>Bit 0:</dt> <dd>"Flow ID[RFC XXXX] [RFC Editor: please replace with the RFC number of the current document]"</t> <t hangText="Bit 1">"Sequence[RFC9326]"</dd> <dt>Bit 1:</dt> <dd>"Sequence Number[RFC XXXX] [RFC Editor: please replace with the RFC number of the current document]"</t> </list></t>[RFC9326]"</dd> </dl> <t>New registration requestsMUST<bcp14>MUST</bcp14> use the following template:</t><t><list style="hanging"> <t hangText="Bit:">Desired<dl newline="false" spacing="normal"> <dt>Bit:</dt> <dd>Desired bit to be allocated in the8 bit8-bit Extension-Flags field of the DEXOption-Type.</t> <t hangText="Description:">BriefOption-Type.</dd> <dt>Description:</dt> <dd>Brief description of the newly registeredbit.</t> <t hangText="Reference:">Referencebit.</dd> <dt>Reference:</dt> <dd>Reference to the document that defines the newbit.</t> </list></t>bit.</dd> </dl> </section> </section> <section anchor="Performance"title="Performance Considerations">numbered="true" toc="default"> <name>Performance Considerations</name> <t>The DEX Option-Type triggers IOAM data to be collected and/or exported packets to be exported to a receiving entity (or entities). In somecasescases, this may impact the receiving entity'sperformance,performance or the performance along the paths leading to it.</t> <t>Therefore, the performance impact of these exported packets is limited by taking two measures: at the encapsulatingnodes,nodes by selective DEX encapsulation (<xreftarget="SelectionSec"/>),target="SelectionSec" format="default"/>) and at the transitnodes,nodes by limiting exporting rate (<xreftarget="ExportSec"/>).target="ExportSec" format="default"/>). These two measures ensure that direct exporting is used at a rate that does not significantly affect the networkbandwidth,bandwidth and does not overload the receiving entity. Moreover, it is possible to load balance the exported data among multiple receiving entities, although the exporting method is not within the scope of this document.</t> <t>It should be notedthatthat, in somenetworksnetworks, DEX data may be exported over an out-of-bandnetwork,network in which a large volume of exported traffic does not compromise user traffic. In thiscasecase, an operator may choose to disable the exporting rate limiting.</t> </section> <section anchor="Security"title="Security Considerations">numbered="true" toc="default"> <name>Security Considerations</name> <t>The security considerations of IOAM in general are discussed in <xreftarget="RFC9197"/>.target="RFC9197" format="default"/>. Specifically, an attacker may try to use the functionality that is defined in this document to attack the network.</t> <t>An attacker may attempt to overload network devices by injecting synthetic packets that include the DEX Option-Type. Similarly, an on-path attacker may maliciously incorporate the DEX Option-Type into transitpackets,packets or maliciously remove it from packets in which it is incorporated.</t> <t>Forcing DEX, either in synthetic packets or in transitpacketspackets, may overload the IOAM nodes and/or the receiving entity (or entities). Since this mechanism affects multiple devices along the network path, it potentially amplifies the effect on the network bandwidth,onthe storage of the devices that collect the data, andonthe receiving entity's load.</t> <t>The amplification effect of DEX may be worse in wide area networks in which there are multipleIOAM domains.IOAM-Domains. For example, if DEX is used inIOAM domainIOAM-Domain 1 for exporting IOAM data to a receiving entity, then the exported packets ofdomainIOAM-Domain 1 can be forwarded throughIOAM domainIOAM-Domain 2, in which they are subject to DEX.TheIn turn, the exported packets ofdomainIOAM-Domain 2 mayin turnbe forwarded through another IOAM domain (or throughdomain 1), and theoreticallyIOAM-Domain 1); theoretically, this recursive amplification may continue infinitely.</t> <t>In order to mitigate the attacks described above, the following requirements (<xreftarget="OptionTypeSec"/>)target="OptionTypeSec" format="default"/>) have been defined:</t><t><list style="symbols"> <t>Selective<ul spacing="normal"> <li>Selective DEX (<xreftarget="SelectionSec"/>)target="SelectionSec" format="default"/>) is applied by IOAM encapsulating nodes in order to limit the potential impact of DEX attacks to a small fraction of thetraffic.</t> <t>Ratetraffic.</li> <li>Rate limiting of exported traffic (<xreftarget="ExportSec"/>)target="ExportSec" format="default"/>) is applied by IOAM nodes in order to prevent overloading attacks andin orderto significantly limit the scale of amplificationattacks.</t> <t>IOAMattacks.</li> <li>IOAM encapsulating nodes are required to avoid pushing the DEX Option-Type into IOAM exported packets (<xreftarget="ExportSec"/>),target="ExportSec" format="default"/>), thus preventing some of the amplification and export loopscenarios.</t> </list></t>scenarios.</li> </ul> <t>Although the exporting method is not within the scope of this document, any exporting methodMUST<bcp14>MUST</bcp14> secure the exported data from the IOAM node to the receivingentity,entity in order to protect the confidentiality and guarantee the integrity of the exported data. Specifically, an IOAM node that performs DEX exportingMUST<bcp14>MUST</bcp14> send the exported data to a pre-configured trusted receiving entity that is in the sameIOAM domainIOAM-Domain as the exporting IOAM node. Furthermore, an IOAM nodeMUST<bcp14>MUST</bcp14> gain explicit consent to export data to a receiving entity before starting to send exported data.</t> <t>An attacker may keep track of the information sent in DEX headers as a means of reconnaissance. This form of recon can be mitigated to some extent by careful allocation of the Flow ID and Sequence Numberspace,space in a way that does not compromise privacyaspectsaspects, such as customer identities.</t> <t>The integrity of the DEX Option-Type can be protected through a mechanism of the encapsulating protocol. While <xreftarget="I-D.ietf-ippm-ioam-data-integrity"/>target="I-D.ietf-ippm-ioam-data-integrity" format="default"/> introduces an integrity protection mechanism that protects the integrity of IOAM-Data-Fields, the DEX Option-Type does not includeIOAM-Data-Fields, and thereforeIOAM-Data-Fields; therefore, these integrity protection mechanisms are not applicable to the DEX Option-Type. As discussed in the threat analysis of <xreftarget="I-D.ietf-ippm-ioam-data-integrity"/>,target="I-D.ietf-ippm-ioam-data-integrity" format="default"/>, injection or modification of IOAM-Option-Type headers are threats that are not addressed in IOAM.</t> <t>IOAM is assumed to be deployed in a restricted administrative domain, thus limiting the scope of the threats above and theiraffect.effect. This is a fundamental assumption with respect to the security aspects of IOAM, as further discussed in <xreftarget="RFC9197"/>.</t> </section> <section anchor="Acknowledgments" title="Acknowledgments"> <t>The authors thank Martin Duke, Tommy Pauly, Meral Shirazipour, Colin Perkins, Stephen Farrell, Linda Dunbar, Justin Iurman, Greg Mirsky, and other members of the IPPM working group for many helpful comments.</t>target="RFC9197" format="default"/>.</t> </section> </middle> <back><references title="Normative References"> &RFC2119; &RFC8174; &RFC9197;<displayreference target="I-D.spiegel-ippm-ioam-rawexport" to="IOAM-RAWEXPORT"/> <displayreference target="I-D.song-ippm-postcard-based-telemetry" to="POSTCARD-BASED-TELEMETRY"/> <displayreference target="I-D.ietf-ippm-ioam-data-integrity" to="IOAM-DATA-INTEGRITY"/> <displayreference target="I-D.ietf-ippm-ioam-ipv6-options" to="IOAM-IPV6-OPTIONS"/> <references> <name>References</name> <references> <name>Normative References</name> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9197.xml"/> </references> <references> <name>Informative References</name> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6291.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5475.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7014.xml"/> <!-- [I-D.spiegel-ippm-ioam-rawexport] IESG state Expired --> <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.spiegel-ippm-ioam-rawexport.xml"/> <!-- [I-D.song-ippm-postcard-based-telemetry] IESG state I-D Exists --> <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.song-ippm-postcard-based-telemetry.xml"/> <!-- [I-D.ietf-ippm-ioam-flags] in AUTH48 state as of 09/30/22 as RFC 9322; confirm publication --> <reference anchor='RFC9322' target='https://www.rfc-editor.org/info/rfc9322'> <front> <title>In Situ Operations, Administration, and Maintanence (IOAM) Loopback and Active Flags</title> <author initials='T' surname='Mizrahi' fullname='Tal Mizrahi'> <organization /> </author> <author initials='F' surname='Brockners' fullname='Frank Brockners'> <organization /> </author> <author initials='S' surname='Bhandari' fullname='Shwetha Bhandari'> <organization /> </author> <author initials='B' surname='Gafni' fullname='Barak Gafni'> <organization /> </author> <author initials='M' surname='Spiegel' fullname='Mickey Spiegel'> <organization /> </author> <date year='2022' month='November'/> </front> <seriesInfo name="RFC" value="9322"/> <seriesInfo name="DOI" value="10.17487/RFC9322"/> </reference> <!-- [I-D.ietf-ippm-ioam-data-integrity] IESG state I-D Exists --> <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.ietf-ippm-ioam-data-integrity.xml"/> <!-- [I-D.ietf-ippm-ioam-ipv6-options] IESG state Waiting for AD Go-Ahead::Revised I-D Needed --> <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D.ietf-ippm-ioam-ipv6-options.xml"/> </references><references title="Informative References"> &RFC6291; &RFC8126; &RFC5475; &RFC7014; &I-D.spiegel-ippm-ioam-rawexport; &I-D.song-ippm-postcard-based-telemetry; &I-D.ietf-ippm-ioam-flags; &I-D.ietf-ippm-ioam-data-integrity; &I-D.ietf-ippm-ioam-ipv6-options;</references> <section anchor="appendix"title="Notes Aboutnumbered="true" toc="default"> <name>Notes about the History ofthis Document">This Document</name> <t>This document evolved from combining some of the concepts of PBT-I from <xreftarget="I-D.song-ippm-postcard-based-telemetry"/>target="I-D.song-ippm-postcard-based-telemetry" format="default"/> with immediate exporting from early versions of <xreftarget="I-D.ietf-ippm-ioam-flags"/>.</t>target="RFC9322" format="default"/>.</t> <t>In order to help correlate and order the exported packets, it is possible to include the Hop_Lim/Node_ID IOAM-Data-Field in exportedpackets; ifpackets. If the IOAM-Trace-Type <xreftarget="RFC9197"/>target="RFC9197" format="default"/> has the Hop_Lim/Node_ID bit set, then exported packets include the Hop_Lim/Node_ID IOAM-Data-Field, which contains the TTL/Hop Limit value from a lower layer protocol. An alternative approach was considered during the design of this document, according to which a 1-octet Hop Count field would be included in the DEX header (presumably by claiming some space from the Flags field). The Hop Limit wouldstartsstart from 0 at the encapsulating node and be incremented by each IOAM transit node that supports the DEX Option-Type. In thisapproachapproach, the Hop Count field value would also be included in the exported packet.</t> </section> <section anchor="Acknowledgments" numbered="false" toc="default"> <name>Acknowledgments</name> <t>The authors thank <contact fullname="Martin Duke"/>, <contact fullname="Tommy Pauly"/>, <contact fullname="Meral Shirazipour"/>, <contact fullname="Colin Perkin"/>s, <contact fullname="Stephen Farrell"/>, <contact fullname="Linda Dunbar"/>, <contact fullname="Justin Iurman"/>, <contact fullname="Greg Mirsky"/>, and other members of the IPPM working group for many helpful comments.</t> </section> <section numbered="false"title="Contributors"toc="default"> <name>Contributors</name> <t>The Editors would like to recognize the contributions of the following individuals to this document.</t><t> <figure> <artwork><![CDATA[ Tianran Zhou Huawei 156<contact fullname="Tianran Zhou"> <organization>Huawei</organization> <address> <postal> <street>156 BeiqingRd. Beijing 100095 China Email: zhoutianran@huawei.com Zhenbin Li Huawei 156Rd.</street> <city>Beijing</city> <region></region><code>100095</code> <country>China</country> </postal> <email>zhoutianran@huawei.com</email> </address> </contact> <contact fullname="Zhenbin Li"> <organization>Huawei</organization> <address> <postal> <street>156 BeiqingRd. Beijing 100095 China Email: lizhenbin@huawei.com Ramesh Sivakolundu CiscoRd.</street> <city>Beijing</city> <region></region><code>100095</code> <country>China</country> </postal> <email>lizhenbin@huawei.com</email> </address> </contact> <contact fullname="Ramesh Sivakolundu"> <organization>Cisco Systems,Inc. 170Inc.</organization> <address> <postal> <street>170 West TasmanDr. SAN JOSE, CA 95134 U.S.A. Email: sramesh@cisco.com ]]></artwork> </figure> </t>Dr.</street> <city>San Jose</city> <region>CA</region><code>95134</code> <country>United States of America</country> </postal> <email>sramesh@cisco.com</email> </address> </contact> </section> </back> </rfc>