| rfc9452xml2.original.xml | rfc9452.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="US-ASCII"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <!-- This template is for creating an Internet Draft using xml2rfc, | ||||
| which is available here: http://xml2rfc.tools.ietf.org. --> | ||||
| <!DOCTYPE rfc SYSTEM "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 RFC7665 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.7665.xml"> | ||||
| <!ENTITY RFC2119 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.2119.xml"> | ||||
| <!ENTITY RFC8174 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.8174.xml"> | ||||
| <!ENTITY RFC6830 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.6830.xml"> | ||||
| <!ENTITY RFC6833 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.6833.xml"> | ||||
| <!ENTITY RFC2460 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.2460.xml"> | ||||
| <!ENTITY RFC7276 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.7276.xml"> | ||||
| <!ENTITY RFC7112 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.7112.xml"> | ||||
| <!ENTITY RFC791 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/referenc | ||||
| e.RFC.0791.xml"> | ||||
| <!ENTITY RFC6564 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.6564.xml"> | ||||
| <!ENTITY RFC2784 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.2784.xml"> | ||||
| <!ENTITY RFC3232 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.3232.xml"> | ||||
| <!ENTITY RFC8300 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.8300.xml"> | ||||
| <!ENTITY RFC9197 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.9197.xml"> | ||||
| <!ENTITY RFC9322 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.9322.xml"> | ||||
| <!ENTITY RFC9326 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.9326.xml"> | ||||
| <!ENTITY RFC9378 SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml/referen | ||||
| ce.RFC.9378.xml"> | ||||
| <!ENTITY I-D.ietf-sfc-oam-packet SYSTEM "http://xml2rfc.tools.ietf.org/public/rf | ||||
| c/bibxml3/reference.I-D.ietf-sfc-oam-packet.xml"> | ||||
| <!ENTITY I-D.penno-sfc-trace SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bi | ||||
| bxml3/reference.I-D.penno-sfc-trace.xml"> | ||||
| <!ENTITY I-D.ietf-spring-segment-routing SYSTEM "http://xml2rfc.tools.ietf.org/p | ||||
| ublic/rfc/bibxml3/reference.I-D.ietf-spring-segment-routing.xml"> | ||||
| <!ENTITY I-D.previdi-isis-segment-routing-extensions SYSTEM "http://xml2rfc.tool | ||||
| s.ietf.org/public/rfc/bibxml3/reference.I-D.previdi-isis-segment-routing-extensi | ||||
| ons.xml"> | ||||
| <!ENTITY I-D.ietf-ippm-6man-pdm-option SYSTEM "http://xml2rfc.tools.ietf.org/pub | ||||
| lic/rfc/bibxml3/reference.I-D.ietf-ippm-6man-pdm-option.xml"> | ||||
| <!ENTITY I-D.gont-v6ops-ipv6-ehs-in-real-world SYSTEM "http://xml2rfc.tools.ietf | ||||
| .org/public/rfc/bibxml3/reference.I-D.gont-v6ops-ipv6-ehs-in-real-world.xml"> | ||||
| <!ENTITY I-D.brockners-lisp-sr SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/ | ||||
| bibxml3/reference.I-D.brockners-lisp-sr.xml"> | ||||
| <!ENTITY I-D.hildebrand-spud-prototype SYSTEM "http://xml2rfc.tools.ietf.org/pub | ||||
| lic/rfc/bibxml3/reference.I-D.hildebrand-spud-prototype.xml"> | ||||
| <!ENTITY I-D.ietf-6man-segment-routing-header SYSTEM "http://xml2rfc.tools.ietf. | ||||
| org/public/rfc/bibxml3/reference.I-D.ietf-6man-segment-routing-header.xml"> | ||||
| <!ENTITY I-D.ietf-nvo3-vxlan-gpe SYSTEM "http://xml2rfc.tools.ietf.org/public/rf | ||||
| c/bibxml3/reference.I-D.ietf-nvo3-vxlan-gpe.xml"> | ||||
| <!ENTITY I-D.lapukhov-dataplane-probe SYSTEM "http://xml2rfc.tools.ietf.org/publ | ||||
| ic/rfc/bibxml3/reference.I-D.lapukhov-dataplane-probe.xml"> | ||||
| <!ENTITY I-D.SPUD SYSTEM "http://xml2rfc.tools.ietf.org/public/rfc/bibxml3/refer | ||||
| ence.I-D.hildebrand-spud-prototype.xml"> | ||||
| <!ENTITY AFI SYSTEM "http://www.iana.org/assignments/address-family-numbers/addr | ||||
| ess-family-numbers.xml"> | ||||
| ]> | ||||
| <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> | ||||
| <!-- used by XSLT processors --> | ||||
| <!-- For a complete list and description of processing instructions (PIs), | ||||
| please see http://xml2rfc.tools.ietf.org/authoring/README.html. --> | ||||
| <!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds | ||||
| might want to use. | ||||
| (Here they are set differently than their defaults in xml2rfc v1.32) --> | ||||
| <?rfc strict="yes" ?> | ||||
| <!-- give errors regarding ID-nits and DTD validation --> | ||||
| <!-- control the table of contents (ToC) --> | ||||
| <?rfc toc="yes"?> | ||||
| <!-- generate a ToC --> | ||||
| <?rfc tocdepth="4"?> | ||||
| <!-- the number of levels of subsections in ToC. default: 3 --> | ||||
| <!-- control references --> | ||||
| <?rfc symrefs="yes"?> | ||||
| <!-- use symbolic references tags, i.e, [RFC2119] instead of [1] --> | ||||
| <?rfc sortrefs="yes" ?> | ||||
| <!-- sort the reference entries alphabetically --> | ||||
| <!-- control vertical white space | ||||
| (using these PIs as follows is recommended by the RFC Editor) --> | ||||
| <?rfc compact="yes" ?> | ||||
| <!-- do not start each main section on a new page --> | ||||
| <?rfc subcompact="no" ?> | ||||
| <!-- keep one blank line between list items --> | ||||
| <!-- end of list of popular I-D processing instructions --> | ||||
| <rfc category="std" docName="draft-ietf-sfc-ioam-nsh-13" ipr="trust200902"> | ||||
| <!-- ipr="full3978"--> | ||||
| <!-- category values: std, bcp, info, exp, and historic | <!DOCTYPE rfc [ | |||
| ipr values: full3667, noModification3667, noDerivatives3667 | <!ENTITY nbsp " "> | |||
| you can add the attributes updates="NNNN" and obsoletes="NNNN" | <!ENTITY zwsp "​"> | |||
| they will automatically be output with "(if approved)" --> | <!ENTITY nbhy "‑"> | |||
| <!ENTITY wj "⁠"> | ||||
| ]> | ||||
| <!-- ***** FRONT MATTER ***** --> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" category=" std" consensus="true" docName="draft-ietf-sfc-ioam-nsh-13" number="9452" ipr="tr ust200902" obsoletes="" updates="" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3"> | |||
| <front> | <front> | |||
| <!-- The abbreviated title is used in the page header - it is only necessary | <title abbrev="NSH Encapsulation for IOAM">Network Service Header | |||
| if the | (NSH) Encapsulation for In Situ OAM (IOAM) Data</title> | |||
| full title is longer than 39 characters --> | <seriesInfo name="RFC" value="9452"/> | |||
| <author fullname="Frank Brockners" initials="F." role="editor" surname="Broc | ||||
| <title abbrev="NSH encapsulation for In-situ OAM">Network Service Header | kners"> | |||
| (NSH) Encapsulation for In-situ OAM (IOAM) Data</title> | ||||
| <!-- add 'role="editor"' below for the editors if appropriate --> | ||||
| <!-- Another author who claims to be an editor --> | ||||
| <author fullname="Frank Brockners" initials="F." role="editor" | ||||
| surname="Brockners"> | ||||
| <organization abbrev="Cisco">Cisco Systems, Inc.</organization> | <organization abbrev="Cisco">Cisco Systems, Inc.</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>Hansaallee 249, 3rd Floor</street> | <extaddr>3rd Floor</extaddr> | |||
| <street>Hansaallee 249</street> | ||||
| <!-- Reorder these if your country does things differently --> | <city>Duesseldorf</city> | |||
| <city>DUESSELDORF</city> | ||||
| <code>40549</code> | <code>40549</code> | |||
| <country>Germany</country> | <country>Germany</country> | |||
| </postal> | </postal> | |||
| <email>fbrockne@cisco.com</email> | <email>fbrockne@cisco.com</email> | |||
| <!-- uri and facsimile elements may also be added --> | ||||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Shwetha Bhandari" initials="S." role="editor" surname="Bha | ||||
| <author fullname="Shwetha Bhandari" initials="S." role="editor" | ndari"> | |||
| surname="Bhandari"> | ||||
| <organization abbrev="Thoughtspot">Thoughtspot</organization> | <organization abbrev="Thoughtspot">Thoughtspot</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>3rd Floor, Indiqube Orion, 24th Main Rd, Garden Layout, HSR | <extaddr>3rd Floor, Indiqube Orion</extaddr> | |||
| Layout</street> | <street>24th Main Rd, Garden Layout, HSR Layout</street> | |||
| <city>Bangalore</city> | ||||
| <city>Bangalore, KARNATAKA 560 102</city> | <region>Karnataka</region> | |||
| <code>560 102</code> | ||||
| <country>India</country> | <country>India</country> | |||
| </postal> | </postal> | |||
| <email>shwetha.bhandari@thoughtspot.com</email> | <email>shwetha.bhandari@thoughtspot.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date month="August" year="2023"/> | ||||
| <date day="5" month="May" year="2023"/> | ||||
| <!-- If the month and year are both specified and are the current ones, xml2 | ||||
| rfc will fill | ||||
| in the current day for you. If only the current year is specified, xml2 | ||||
| rfc will fill | ||||
| in the current day and month for you. If the year is not the current one | ||||
| , it is | ||||
| necessary to specify at least a month (xml2rfc assumes day="1" if not sp | ||||
| ecified for the | ||||
| purpose of calculating the expiry date). With drafts it is normally suf | ||||
| ficient to | ||||
| specify just the year. --> | ||||
| <!-- Meta-data Declarations --> | ||||
| <area>rtg</area> | <area>rtg</area> | |||
| <workgroup>sfc</workgroup> | ||||
| <workgroup>SFC</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. -- | ||||
| > | ||||
| <keyword>inband</keyword> | <keyword>inband</keyword> | |||
| <keyword>In situ</keyword> | ||||
| <keyword>In-situ</keyword> | <keyword>Telemetry</keyword> | |||
| <keyword>Tracing</keyword> | ||||
| <keyword>Telemetry, Tracing</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> | <abstract> | |||
| <t>In-situ Operations, Administration, and Maintenance (IOAM) is used | <t>In situ Operations, Administration, and Maintenance (IOAM) is used | |||
| for recording and collecting operational and telemetry information while | for recording and collecting operational and telemetry information while | |||
| the packet traverses a path between two points in the network. This | the packet traverses a path between two points in the network. This | |||
| document outlines how IOAM data fields are encapsulated with the Network | document outlines how IOAM-Data-Fields are encapsulated with the Network | |||
| Service Header (NSH).</t> | Service Header (NSH).</t> | |||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section title="Introduction" toc="default"> | <section toc="default" numbered="true"> | |||
| <name>Introduction</name> | ||||
| <t>IOAM, as defined in | <t>IOAM, as defined in | |||
| <xref target="RFC9197"/>, is used to record and collect OAM | <xref target="RFC9197" format="default"/>, is used to record and collect O AM | |||
| information while the packet traverses a particular network domain. The | information while the packet traverses a particular network domain. The | |||
| term "in-situ" refers to the fact that the OAM data is added to the data | term "in situ" refers to the fact that the OAM data is added to the data | |||
| packets rather than is being sent within packets specifically dedicated | packets rather than what is being sent within packets specifically dedicat | |||
| to OAM. This document defines how IOAM data fields are transported as | ed | |||
| part of the Network Service Header (NSH) <xref target="RFC8300"/> | to OAM. This document defines how IOAM-Data-Fields are transported as | |||
| encapsulation for the Service Function Chaining (SFC) Architecture <xref | part of the Network Service Header (NSH) encapsulation <xref target="RFC83 | |||
| target="RFC7665"/>. The IOAM-Data-Fields are defined in | 00" format="default"/> | |||
| <xref target="RFC9197"/>.</t> | for the Service Function Chaining (SFC) Architecture <xref target="RFC7665 | |||
| " format="default"/>. The IOAM-Data-Fields are defined in | ||||
| <xref target="RFC9197" format="default"/>.</t> | ||||
| </section> | </section> | |||
| <section anchor="Conventions" numbered="true" toc="default"> | ||||
| <section anchor="Conventions" title="Conventions"> | <name>Conventions</name> | |||
| <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | <t> | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP 14 | IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
| <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, | NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14> | |||
| they appear in all capitals, as shown here.</t> | RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
| "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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> | ||||
| <t>Abbreviations used in this document:</t> | <t>Abbreviations used in this document:</t> | |||
| <dl newline="false" spacing="normal"> | ||||
| <t><list hangIndent="11" style="hanging"> | <dt>IOAM:</dt> | |||
| <t hangText="IOAM:">In-situ Operations, Administration, and | <dd>In situ Operations, Administration, and | |||
| Maintenance</t> | Maintenance</dd> | |||
| <dt>MD:</dt> | ||||
| <t hangText="NSH:">Network Service Header</t> | <dd>NSH Metadata, see <xref target="RFC7665" format="default"/></dd> | |||
| <dt>NSH:</dt> | ||||
| <t hangText="OAM:">Operations, Administration, and Maintenance</t> | <dd>Network Service Header</dd> | |||
| <dt>OAM:</dt> | ||||
| <t hangText="SFC:">Service Function Chaining</t> | <dd>Operations, Administration, and Maintenance</dd> | |||
| <dt>SFC:</dt> | ||||
| <t hangText="TLV:">Type, Length, Value</t> | <dd>Service Function Chaining</dd> | |||
| </list></t> | <dt>TLV:</dt> | |||
| <dd>Type, Length, Value</dd> | ||||
| </dl> | ||||
| </section> | </section> | |||
| <section numbered="true" anchor="sec3" toc="default"> | ||||
| <name>IOAM Encapsulation with NSH</name> | ||||
| <t>The NSH is defined in <xref target="RFC8300" | ||||
| format="default"/>. IOAM-Data-Fields are carried as NSH payload using a | ||||
| Next Protocol header that follows the NSH headers. An IOAM header | ||||
| containing the IOAM-Data-Fields is added. The IOAM-Data-Fields | ||||
| <bcp14>MUST</bcp14> follow the definitions corresponding to | ||||
| IOAM Option-Types (e.g., see <xref target="RFC9197" sectionFormat="of" | ||||
| section="4"/> and <xref target="RFC9326" sectionFormat="of" | ||||
| section="3.2"/>). In an administrative domain where IOAM is used, | ||||
| insertion of the IOAM header in NSH is enabled at the NSH tunnel | ||||
| endpoints, which are also configured to serve as encapsulating and | ||||
| decapsulating nodes for IOAM. The operator <bcp14>MUST</bcp14> ensure | ||||
| that SFC-aware nodes along the Service Function Path support IOAM; | ||||
| otherwise, packets might be dropped (see the last paragraph of this | ||||
| section as well as <xref target="RFC8300" sectionFormat="of" | ||||
| section="2.2"/>). The IOAM transit nodes (e.g., a Service Function | ||||
| Forwarder (SFF)) <bcp14>MUST</bcp14> process all the IOAM headers that | ||||
| are relevant based on its configuration. See <xref target="RFC9378" | ||||
| format="default"/> for a discussion of deployment-related aspects of | ||||
| IOAM-Data-Fields.</t> | ||||
| <section title="IOAM encapsulation with NSH"> | <figure> | |||
| <t>The NSH is defined in <xref target="RFC8300"/>. IOAM-Data-Fields are | <artwork name="" type="" align="left" alt=""><![CDATA[ 0 | |||
| carried as NSH payload using a next protocol header which follows the | 1 2 3 | |||
| NSH headers. An IOAM header is added containing the | ||||
| IOAM-Data-Fields. The IOAM-Data-Fields MUST follow the definitions | ||||
| corresponding to IOAM-Option-Types (e.g., see Section 4 of | ||||
| <xref target="RFC9197"/> and Section 3.2 of <xref | ||||
| target="RFC9326"/>). In an administrative | ||||
| domain where IOAM is used, insertion of the IOAM header in NSH is | ||||
| enabled at the NSH tunnel endpoints, which also serve as IOAM | ||||
| encapsulating/decapsulating nodes by means of configuration. | ||||
| The operator MUST ensure that SFC-aware nodes along the | ||||
| Service Function Path support IOAM, otherwise packets might | ||||
| be dropped (see Section 3 further below, as well as <xref target="RFC8300" | ||||
| /> | ||||
| Section 2.2). | ||||
| The IOAM transit nodes (e.g., an Service Function Forwarder) MUST process | ||||
| all the IOAM headers that are relevant based on its configuration. | ||||
| See <xref target="RFC9378"/> for a discussion | ||||
| of deployment related aspects of IOAM-Data-fields.</t> | ||||
| <t><figure> | ||||
| <artwork> 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+ | |||
| |Ver|O|U| TTL | Length |U|U|U|U|MD Type| NP = TBD_IOAM | | | |Ver|O|U| TTL | Length |U|U|U|U|MD Type| NP = 0x06 | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ N | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ N | |||
| | Service Path Identifier | Service Index | S | | Service Path Identifier | Service Index | S | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ H | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ H | |||
| | ... | | | | ... | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+ | |||
| | IOAM-Type | IOAM HDR len | Reserved | Next Protocol | | | | IOAM-Type | IOAM HDR Len | Reserved | Next Protocol | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ I | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ I | |||
| ! | O | ! | O | |||
| ! | A | ! | A | |||
| ~ IOAM Option and Optional Data Space ~ M | ~ IOAM Option and Optional Data Space ~ M | |||
| | | | | | | | | |||
| | | | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<-+ | |||
| | | | | | | |||
| | | | | | | |||
| | Payload + Padding (L2/L3/...) | | | Payload + Padding (L2/L3/...) | | |||
| | | | | | | |||
| | | | | | | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| </artwork> | ]]></artwork> | |||
| </figure></t> | </figure> | |||
| <t>The NSH header and fields are defined in <xref target="RFC8300" format= | ||||
| <t>The NSH header and fields are defined in <xref target="RFC8300"/>. | "default"/>. | |||
| The O-bit MUST be handled following the rules | The O bit <bcp14>MUST</bcp14> be handled following the rules | |||
| in <xref target="I-D.ietf-sfc-oam-packet"/>. | in <xref target="RFC9451" format="default"/>. | |||
| The "NSH Next Protocol" value (referred to as "NP" in the diagram above) | The "NSH Next Protocol" value (referred to as "NP" in the diagram above) | |||
| is TBD_IOAM.</t> | is 0x06.</t> | |||
| <t>The IOAM-related fields in NSH are defined as follows:</t> | ||||
| <t>The IOAM related fields in NSH are defined as follows:</t> | <dl spacing="normal" newline="true"> | |||
| <dt>IOAM-Type:</dt> | ||||
| <t><list style="empty"> | <dd>8-bit field defining the IOAM Option-Type, as defined in the | |||
| <t><list style="hanging"> | "IOAM Option-Type" registry specified in <xref target="RFC9197" | |||
| <t hangText="IOAM-Type:">8-bit field defining the | format="default"/>.</dd> | |||
| IOAM-Option-Type, as defined in the IOAM Option-Type Registry | <dt>IOAM HDR Len:</dt> | |||
| specified in <xref target="RFC9197"/>.</t> | <dd>8-bit field that contains the length of the IOAM header in | |||
| multiples of 4-octets, including the "IOAM-Type" and "IOAM HDR | ||||
| <t hangText="IOAM HDR Len:">8-bit field that contains the | Len" fields.</dd> | |||
| length of the IOAM header in multiples of 4-octets, | <dt>Reserved bits:</dt> | |||
| including the "IOAM-Type" and "IOAM HDR Len" fields.</t> | <dd>Reserved bits are present for future use. The reserved bits | |||
| <bcp14>MUST</bcp14> be set to 0x0 upon transmission and ignored | ||||
| <t hangText="Reserved bits:">Reserved bits are present for | upon receipt.</dd> | |||
| future use. The reserved bits MUST be set to 0x0 upon | <dt>Next Protocol:</dt> | |||
| transmission and ignored upon receipt.</t> | <dd>8-bit unsigned integer that determines the type of header | |||
| following IOAM. The semantics of this field are identical to the | ||||
| <t hangText="Next Protocol:">8-bit unsigned integer that | Next Protocol field in <xref target="RFC8300" | |||
| determines the type of header following IOAM. The semantics of | format="default"/>.</dd> | |||
| this field are identical to the Next Protocol field in <xref | <dt>IOAM Option and Optional Data Space:</dt> | |||
| target="RFC8300"/>.</t> | <dd>IOAM-Data-Fields as specified by the IOAM-Type | |||
| field. IOAM-Data-Fields are defined corresponding to the | ||||
| <t hangText="IOAM Option and Data Space:">IOAM-Data-Fields as | IOAM Option-Type (e.g., see <xref target="RFC9197" | |||
| specified by the IOAM-Type field. IOAM-Data-Fields are defined | sectionFormat="of" section="4"/> and <xref target="RFC9326" | |||
| corresponding to the IOAM-Option-Type (e.g., see Section 4 of | sectionFormat="of" section="3.2"/>) and are always aligned by 4 | |||
| <xref target="RFC9197"/> and Section 3.2 of | octets. Thus, there is no padding field.</dd> | |||
| <xref target="RFC9326"/>) and are always aligned by 4 octets, | </dl> | |||
| thus there is no padding field.</t> | ||||
| </list></t> | ||||
| </list></t> | ||||
| <t>Multiple IOAM-Option-Types MAY be included within the NSH | <t>Multiple IOAM Option-Types <bcp14>MAY</bcp14> be included within the | |||
| encapsulation. For example, if a NSH encapsulation contains two | NSH encapsulation. For example, if an NSH encapsulation contains two | |||
| IOAM-Option-Types before a data payload, the Next Protocol field of the | IOAM Option-Types before a data payload, the Next Protocol field of the | |||
| first IOAM option will contain the value of TBD_IOAM, while the Next | first IOAM option will contain the value 0x06, while the Next | |||
| Protocol field of the second IOAM-Option-Type will contain the "NSH Next | Protocol field of the second IOAM Option-Type will contain the "NSH Next | |||
| Protocol" number indicating the type of the data payload. The | Protocol" number indicating the type of the data payload. The | |||
| applicability of the IOAM Active and Loopback flags <xref | applicability of the IOAM Active and Loopback flags <xref | |||
| target="RFC9322"/> is outside the scope of this document and may be | target="RFC9322" format="default"/> is outside the scope of this | |||
| specified in the future.</t> | document and may be specified in the future.</t> | |||
| <t>In case the IOAM Incremental Trace Option-Type is used, an SFC-aware | ||||
| <t>In case the IOAM Incremental Trace Option-Type is used, an SFC-aware no | node that serves as an IOAM transit node needs to adjust the "IOAM HDR | |||
| de | Len" field accordingly. See <xref target="RFC9197" sectionFormat="of" | |||
| that serves as an IOAM transit node, needs to adjust the "IOAM HDR Len" fi | section="4.4"/>.</t> | |||
| eld | <t>Per <xref target="RFC8300" sectionFormat="of" section="2.2"/>, | |||
| accordingly, see Section 4.4 in <xref target="RFC9197"/>.</t> | packets with unsupported Next Protocol values <bcp14>SHOULD</bcp14> be | |||
| silently dropped by default. Thus, when a packet with IOAM is received | ||||
| <t>Per Section 2.2 of <xref target="RFC8300"/>, packets with Next Protocol | at an NSH-based forwarding node (such as an SFF) that does not support | |||
| values not supported SHOULD be silently dropped by default. | the IOAM header, it <bcp14>SHOULD</bcp14> drop the packet. The | |||
| Thus, when a packet with IOAM is received at an NSH based forwarding | mechanisms to maintain and notify of such events are outside the scope | |||
| node such as an Service Function Forwarder (SFF) that does not | of this document.</t> | |||
| support the IOAM header, it SHOULD drop the packet. The mechanism to | ||||
| maintain and notify of such events are outside | ||||
| the scope of this document.</t> | ||||
| </section> | </section> | |||
| <section anchor="IANA" numbered="true" toc="default"> | ||||
| <section anchor="IANA" title="IANA Considerations"> | <name>IANA Considerations</name> | |||
| <t>IANA is requested to allocate a code point for IOAM in the | <t>IANA has allocated the following code point for IOAM in the | |||
| <eref target="https://www.iana.org/assignments/nsh/nsh.xhtml#next-protocol | <eref target="https://www.iana.org/assignments/nsh"> | |||
| "> | ||||
| "NSH Next Protocol" registry</eref>: | "NSH Next Protocol" registry</eref>: | |||
| </t> | </t> | |||
| <t><figure> | <table> | |||
| <artwork> | <name></name> | |||
| +---------------+---------------------+---------------+ | <thead> | |||
| | Next Protocol | Description | Reference | | <tr> | |||
| +---------------+---------------------+---------------+ | <th>Next Protocol</th> | |||
| | TBD_IOAM | IOAM (Next protocol | This document | | <th>Description</th> | |||
| | | is an IOAM header) | | | <th>Reference</th> | |||
| +---------------+---------------------+---------------+ | </tr> | |||
| </artwork> | </thead> | |||
| </figure></t> | <tbody> | |||
| </section> | <tr> | |||
| <td>0x06</td> | ||||
| <td>IOAM (Next Protocol is an IOAM header)</td> | ||||
| <td>RFC 9452</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| <section anchor="Security" title="Security Considerations"> | ||||
| <t>IOAM is considered a "per domain" feature, where the | ||||
| operator decides on leveraging and configuring IOAM according to the opera | ||||
| tor's | ||||
| needs. The operator needs to properly secure the IOAM domain to avoid | ||||
| malicious configuration and use, which could include injecting malicious | ||||
| IOAM packets into a domain. For additional IOAM related security | ||||
| considerations, see Section 9 in <xref target="RFC9197"/>. | ||||
| For additional OAM and NSH related security considerations | ||||
| see Section 5 of <xref target="I-D.ietf-sfc-oam-packet"/>.</t> | ||||
| </section> | </section> | |||
| <section anchor="Security" numbered="true" toc="default"> | ||||
| <section title="Acknowledgements"> | <name>Security Considerations</name> | |||
| <t>The authors would like to thank Eric Vyncke, Nalini Elkins, Srihari | <t>IOAM is considered a "per domain" feature, where the operator decides | |||
| Raghavan, Ranganathan T S, Karthik Babu Harichandra Babu, Akshaya | how to leverage and configure IOAM according to the operator's needs. | |||
| Nadahalli, Stefano Previdi, Hemant Singh, Erik Nordmark, LJ Wobker, | The operator needs to properly secure the IOAM domain to avoid malicious | |||
| Andrew Yourtchenko, Greg Mirsky and Mohamed Boucadair | configuration and use, which could include injecting malicious IOAM | |||
| for the comments and advice.</t> | packets into a domain. For additional IOAM-related security | |||
| considerations, see <xref target="RFC9197" sectionFormat="of" | ||||
| section="9"/>. For additional OAM- and NSH-related security | ||||
| considerations, see <xref target="RFC9451" sectionFormat="of" | ||||
| section="5"/>.</t> | ||||
| </section> | </section> | |||
| <section title="Contributors"> | ||||
| <t>In addition to editors listed on the title page, the following people | ||||
| have contributed to this document:</t> | ||||
| <t><figure> | ||||
| <artwork> Vengada Prasad Govindan | ||||
| Cisco Systems, Inc. | ||||
| Email: venggovi@cisco.com | ||||
| </artwork> | ||||
| </figure><figure> | ||||
| <artwork> Carlos Pignataro | ||||
| Cisco Systems, Inc. | ||||
| 7200-11 Kit Creek Road | ||||
| Research Triangle Park, NC 27709 | ||||
| United States | ||||
| Email: cpignata@cisco.com | ||||
| </artwork> | ||||
| </figure><figure> | ||||
| <artwork> Hannes Gredler | ||||
| RtBrick Inc. | ||||
| Email: hannes@rtbrick.com | ||||
| </artwork> | ||||
| </figure><figure> | ||||
| <artwork> John Leddy | ||||
| Email: john@leddy.net | ||||
| </artwork> | ||||
| </figure><figure> | ||||
| <artwork> Stephen Youell | ||||
| JP Morgan Chase | ||||
| 25 Bank Street | ||||
| London E14 5JP | ||||
| United Kingdom | ||||
| Email: stephen.youell@jpmorgan.com | ||||
| </artwork> | ||||
| </figure><figure> | ||||
| <artwork> Tal Mizrahi | ||||
| Huawei Network.IO Innovation Lab | ||||
| Israel | ||||
| Email: tal.mizrahi.phd@gmail.com | ||||
| </artwork> | ||||
| </figure><figure> | ||||
| <artwork> David Mozes | ||||
| Email: mosesster@gmail.com | ||||
| </artwork> | ||||
| </figure><figure> | ||||
| <artwork> Petr Lapukhov | ||||
| 1 Hacker Way | ||||
| Menlo Park, CA 94025 | ||||
| US | ||||
| Email: petr@fb.com | ||||
| </artwork> | ||||
| </figure><figure> | ||||
| <artwork> Remy Chang | ||||
| Barefoot Networks | ||||
| 2185 Park Boulevard | ||||
| Palo Alto, CA 94306 | ||||
| US | ||||
| </artwork> | ||||
| </figure></t> | ||||
| </section> | ||||
| </middle> | </middle> | |||
| <!-- *****BACK MATTER ***** --> | ||||
| <back> | <back> | |||
| <!-- References split into informative and normative --> | ||||
| <!-- There are 2 ways to insert reference entries from the citation librarie | ||||
| s: | ||||
| 1. define an ENTITY at the top, and use "ampersand character"RFC2629; here | ||||
| (as shown) | ||||
| 2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xm | ||||
| l"?> here | ||||
| (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis. | ||||
| xml") | ||||
| Both are cited textually in the same manner: by using xref elements. | ||||
| If you use the PI option, xml2rfc will, by default, try to find included fi | ||||
| les in the same | ||||
| directory as the including file. You can also define the XML_LIBRARY enviro | ||||
| nment variable | ||||
| with a value containing a set of directories to search. These can be eithe | ||||
| r in the local | ||||
| filing system or remote ones accessed by http (http://domain/dir/... ).--> | ||||
| <references title="Normative References"> | <references> | |||
| &RFC2119; | <name>References</name> | |||
| <references> | ||||
| &RFC8174; | <name>Normative References</name> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | ||||
| &RFC9197; | 119.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| &RFC8300; | 174.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
| &I-D.ietf-sfc-oam-packet; | 197.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| </references> | 300.xml"/> | |||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.94 | ||||
| <references title="Informative References"> | 51.xml"/> | |||
| &RFC7665; | ||||
| &RFC9378; | ||||
| &RFC9326; | ||||
| &RFC9322; | ||||
| </references> | ||||
| <references> | ||||
| <name>Informative References</name> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
| 665.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
| 378.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
| 326.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
| 322.xml"/> | ||||
| </references> | ||||
| </references> | </references> | |||
| <section anchor="appendix" numbered="true" toc="default"> | ||||
| <section anchor="appendix" | <name>Discussion of the IOAM-Encapsulation Approach</name> | |||
| title="Discussion of the IOAM encapsulation approach"> | ||||
| <t>This section lists several approaches considered for encapsulating | <t>This section lists several approaches considered for encapsulating | |||
| IOAM with NSH and presents the rationale for the approach chosen in this | IOAM with NSH and presents the rationale for the approach chosen in this | |||
| document.</t> | document.</t> | |||
| <t>An encapsulation of IOAM-Data-Fields in NSH should be friendly to an | <t>An encapsulation of IOAM-Data-Fields in NSH should be friendly to an | |||
| implementation in both hardware as well as software forwarders and | implementation in both hardware as well as software forwarders and | |||
| support a wide range of deployment cases, including large networks that | support a wide range of deployment cases, including large networks that | |||
| desire to leverage multiple IOAM-Data-Fields at the same time.</t> | desire to leverage multiple IOAM-Data-Fields at the same time.</t> | |||
| <ul spacing="normal"> | ||||
| <li><t>Hardware- and software-friendly implementation:</t> | ||||
| <t>Hardware forwarders benefit from an encapsulation that minimizes | ||||
| iterative lookups of fields within the packet. Any operation that | ||||
| looks up the value of a field within the packet, based on which | ||||
| another lookup is performed, consumes additional gates and time in an | ||||
| implementation, both of which should be kept to a minimum. This means | ||||
| that flat TLV structures are preferred over nested TLV | ||||
| structures. IOAM-Data-Fields are grouped into several categories, | ||||
| including trace, proof-of-transit, and edge-to-edge. Each of these | ||||
| options defines a TLV structure. A hardware-friendly encapsulation | ||||
| approach avoids grouping these three option categories into yet | ||||
| another TLV structure and would instead carry the options as a serial | ||||
| sequence.</t></li> | ||||
| <li><t>Total length of the IOAM-Data-Fields:</t> | ||||
| <t>The total length of IOAM-Data-Fields can grow quite large if | ||||
| multiple different IOAM-Data-Fields are used and large path-lengths | ||||
| need to be considered. For example, if an operator would consider | ||||
| using the IOAM Trace Option-Type and capture node-id, app_data, | ||||
| egress and ingress interface-id, timestamp seconds, and timestamp nanosec | ||||
| onds | ||||
| at every hop, then a total of 20 octets would be added to the packet | ||||
| at every hop. In this case, the particular deployment has a maximum | ||||
| path length of 15 hops in the IOAM domain, and a maximum of 300 | ||||
| octets would be encapsulated in the packet.</t></li> | ||||
| </ul> | ||||
| <t>Different approaches for encapsulating IOAM-Data-Fields in NSH could | ||||
| be considered:</t> | ||||
| <ol spacing="normal" type="1"> | ||||
| <li><t>Encapsulation of IOAM-Data-Fields as "NSH MD Type 2" (see <xref | ||||
| target="RFC8300" sectionFormat="comma" section="2.5"/>).</t> | ||||
| <t>Each IOAM Option-Type (e.g., trace, proof-of-transit, and | ||||
| edge-to-edge) would be specified by a type, with the different | ||||
| IOAM-Data-Fields being TLVs within this the particular option | ||||
| type. NSH MD Type 2 offers support for variable length metadata. The | ||||
| length field is 6 bits, resulting in a maximum of 256 (2<sup>6</sup> x | ||||
| 4) octets.</t></li> | ||||
| <li><t>Encapsulation of IOAM-Data-Fields using the "Next Protocol" | ||||
| field.</t> | ||||
| <t>Each IOAM Option-Type (e.g., trace, proof-of-transit, and | ||||
| edge-to-edge) would be specified by its own "next protocol".</t></li> | ||||
| <li><t>Encapsulation of IOAM-Data-Fields using the "Next Protocol" | ||||
| field.</t> | ||||
| <t>A single NSH protocol type code point would be allocated for | ||||
| IOAM. A "sub-type" field would then specify what IOAM options type | ||||
| (trace, proof-of-transit, edge-to-edge) is carried.</t></li> | ||||
| </ol> | ||||
| <t>The third option has been chosen here. This option avoids the | ||||
| additional layer of TLV-nesting that the use of NSH MD Type 2 would | ||||
| result in. In addition, this option does not constrain IOAM data to a | ||||
| maximum of 256 octets, thus allowing support for very large | ||||
| deployments.</t> | ||||
| </section> | ||||
| <section numbered="false" toc="default"> | ||||
| <name>Acknowledgments</name> | ||||
| <t>The authors would like to thank <contact fullname="Éric Vyncke"/>, | ||||
| <contact fullname="Nalini Elkins"/>, <contact fullname="Srihari | ||||
| Raghavan"/>, <contact fullname="Ranganathan T S, Karthik Babu | ||||
| Harichandra Babu"/>, <contact fullname="Akshaya Nadahalli"/>, <contact | ||||
| fullname="Stefano Previdi"/>, <contact fullname="Hemant Singh"/>, | ||||
| <contact fullname="Erik Nordmark"/>, <contact fullname="LJ Wobker"/>, | ||||
| <contact fullname="Andrew Yourtchenko"/>, <contact fullname="Greg | ||||
| Mirsky"/>, and <contact fullname="Mohamed Boucadair"/> for their comments | ||||
| and advice.</t> | ||||
| </section> | ||||
| <t>Hardware and software friendly implementation: Hardware forwarders | <section numbered="false" toc="default"> | |||
| benefit from an encapsulation that minimizes iterative look-ups of | <name>Contributors</name> | |||
| fields within the packet: Any operation which looks up the value of a | <t>The following people contributed significantly to the content of | |||
| field within the packet, based on which another lookup is performed, | this document and should be considered coauthors:</t> | |||
| consumes additional gates and time in an implementation - both of which | ||||
| are desired to be kept to a minimum. This means that flat TLV structures | ||||
| are to be preferred over nested TLV structures. IOAM-Data-Fields are | ||||
| grouped into several categories, including trace, proof-of-transit, and | ||||
| edge-to-edge. Each of these options defines a TLV structure. A | ||||
| hardware-friendly encapsulation approach avoids grouping these three | ||||
| option categories into yet another TLV structure, but would rather carry | ||||
| the options as a serial sequence.</t> | ||||
| <t>Total length of the IOAM-Data-Fields: The total length of | <contact fullname="Vengada Prasad Govindan"> | |||
| IOAM-Data-Fields can grow quite large in case multiple different | <organization>Cisco Systems, Inc.</organization> | |||
| IOAM-Data-Fields are used and large path-lengths need to be considered. | <address> | |||
| If for example an operator would consider using the IOAM Trace | <email>venggovi@cisco.com</email> | |||
| Option-Type and capture node-id, app_data, egress/ingress interface-id, | </address> | |||
| timestamp seconds, timestamps nanoseconds at every hop, then a total of | </contact> | |||
| 20 octets would be added to the packet at every hop. In case this | ||||
| particular deployment would have a maximum path length of 15 hops in the | ||||
| IOAM domain, then a maximum of 300 octets were to be encapsulated in the | ||||
| packet.</t> | ||||
| <t>Different approaches for encapsulating IOAM-Data-Fields in NSH could | <contact fullname="Carlos Pignataro"> | |||
| be considered:</t> | <organization>Cisco Systems, Inc.</organization> | |||
| <address> | ||||
| <postal> | ||||
| <street>7200-11 Kit Creek Road</street> | ||||
| <city>Research Triangle Park</city> | ||||
| <region>NC</region><code>27709</code> | ||||
| <country>United States of America</country> | ||||
| </postal> | ||||
| <email>cpignata@cisco.com</email> | ||||
| </address> | ||||
| </contact> | ||||
| <t><list style="numbers"> | <contact fullname="Hannes Gredler"> | |||
| <t>Encapsulation of IOAM-Data-Fields as "NSH MD Type 2" (see <xref | <organization> RtBrick Inc.</organization> | |||
| target="RFC8300"/>, Section 2.5). Each IOAM-Option-Type (e.g., trace, | <address> | |||
| proof-of-transit, and edge-to-edge) would be specified by a type, | <email>hannes@rtbrick.com</email> | |||
| with the different IOAM-Data-Fields being TLVs within this the | </address> | |||
| particular option type. NSH MD Type 2 offers support for variable | </contact> | |||
| length meta-data. The length field is 6-bits, resulting in a maximum | ||||
| of 256 (2^6 x 4) octets.</t> | ||||
| <t>Encapsulation of IOAM-Data-Fields using the "Next Protocol" | <contact fullname="John Leddy"> | |||
| field. Each IOAM-Option-Type (e.g trace, proof-of-transit, and | <address> | |||
| edge-to-edge) would be specified by its own "next protocol".</t> | <email>john@leddy.net</email> | |||
| </address> | ||||
| </contact> | ||||
| <contact fullname="Stephen Youell"> | ||||
| <organization>JP Morgan Chase</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street>25 Bank Street</street> | ||||
| <city>London</city> | ||||
| <region></region><code>E14 5JP</code> | ||||
| <country>United Kingdom</country> | ||||
| </postal> | ||||
| <email>stephen.youell@jpmorgan.com</email> | ||||
| </address> | ||||
| </contact> | ||||
| <contact fullname="Tal Mizrahi"> | ||||
| <organization>Huawei Network.IO Innovation Lab</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <country>Israel</country> | ||||
| </postal> | ||||
| <email>tal.mizrahi.phd@gmail.com</email> | ||||
| </address> | ||||
| </contact> | ||||
| <contact fullname="David Mozes"> | ||||
| <address> | ||||
| <email>mosesster@gmail.com</email> | ||||
| </address> | ||||
| </contact> | ||||
| <contact fullname="Petr Lapukhov"> | ||||
| <organization>Facebook</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street>1 Hacker Way</street> | ||||
| <city>Menlo Park</city> | ||||
| <region>CA</region><code>94025</code> | ||||
| <country>United States of America</country> | ||||
| </postal> | ||||
| <email>petr@fb.com</email> | ||||
| </address> | ||||
| </contact> | ||||
| <contact fullname="Remy Chang"> | ||||
| <organization>Barefoot Networks</organization> | ||||
| <address> | ||||
| <postal> | ||||
| <street>2185 Park Boulevard</street> | ||||
| <city>Palo Alto</city> | ||||
| <region>CA</region><code>94306</code> | ||||
| <country>United States of America</country> | ||||
| </postal> | ||||
| <email></email> | ||||
| </address> | ||||
| </contact> | ||||
| <t>Encapsulation of IOAM-Data-Fields using the "Next Protocol" | ||||
| field. A single NSH protocol type code point would be allocated for | ||||
| IOAM. A "sub-type" field would then specify what IOAM options type | ||||
| (trace, proof-of-transit, edge-to-edge) is carried.</t> | ||||
| </list>The third option has been chosen here. This option avoids the | ||||
| additional layer of TLV nesting that the use of NSH MD Type 2 would | ||||
| result in. In addition, this option does not constrain IOAM data to a | ||||
| maximum of 256 octets, thus allowing support for very large | ||||
| deployments.</t> | ||||
| </section> | </section> | |||
| </back> | </back> | |||
| </rfc> | </rfc> | |||
| End of changes. 54 change blocks. | ||||
| 485 lines changed or deleted | 366 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||