rfc9263xml2.original.xml | rfc9263.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="US-ASCII"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"> | <!DOCTYPE rfc [ | |||
<!ENTITY nbsp " "> | ||||
<?rfc toc="yes"?> | <!ENTITY zwsp "​"> | |||
<?rfc tocompact="yes"?> | <!ENTITY nbhy "‑"> | |||
<?rfc tocdepth="3"?> | <!ENTITY wj "⁠"> | |||
<?rfc tocindent="yes"?> | ]> | |||
<?rfc symrefs="yes"?> | ||||
<?rfc sortrefs="yes"?> | ||||
<?rfc comments="yes"?> | ||||
<?rfc inline="yes"?> | ||||
<?rfc compact="yes"?> | ||||
<?rfc subcompact="no"?> | ||||
<rfc category="std" ipr="trust200902" docName="draft-ietf-sfc-nsh-tlv-15"> | ||||
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" docName="draft-ietf-sfc-nsh-tlv- 15" number="9263" submissionType="IETF" category="std" consensus="true" ipr="tru st200902" obsoletes="" updates="" xml:lang="en" tocInclude="true" tocDepth="3" s ymRefs="true" sortRefs="true" version="3"> | |||
<front> | <!-- xml2rfc v2v3 conversion 3.12.5 --> | |||
<title abbrev="NSH MD2 Context Headers">Network Service Header (NSH) Meta | ||||
data Type 2 Variable-Length Context Headers</title> | ||||
<author fullname="Yuehua Wei" initials="Yuehua" role="editor" surna | <front> | |||
me="Wei"> | <title abbrev="NSH MD2 Context Headers">Network Service Header (NSH) Metadat | |||
a Type 2 Variable-Length Context Headers</title> | ||||
<seriesInfo name="RFC" value="9263"/> | ||||
<author fullname="Yuehua Wei" initials="Y." surname="Wei" role="editor"> | ||||
<organization>ZTE Corporation</organization> | <organization>ZTE Corporation</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>No.50, Software Avenue</street> | ||||
<street>No.50, Software Avenue</street> | <city>Nanjing</city> | |||
<region/> | ||||
<city>Nanjing</city> | <code>210012</code> | |||
<country>China</country> | ||||
<region/> | ||||
<code>210012</code> | ||||
<country>China</country> | ||||
</postal> | </postal> | |||
<email>wei.yuehua@zte.com.cn</email> | <email>wei.yuehua@zte.com.cn</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author initials="U." surname="Elzur" fullname="Uri Elzur"> | ||||
<author initials="U." surname="Elzur" fullname="Uri Elzur"> | <organization>Intel</organization> | |||
<organization>Intel</organization> | <address> | |||
<address> | <email>uri.elzur@intel.com</email> | |||
<email>uri.elzur@intel.com</email> | </address> | |||
</address> | </author> | |||
</author> | <author initials="S." surname="Majee" fullname="Sumandra Majee"> | |||
<organization>Individual Contributor</organization> | ||||
<author initials="S." surname="Majee" fullname="Sumandra Majee"> | <address> | |||
<organization>Individual contributor</organization> | <email>Sum.majee@gmail.com</email> | |||
<address> | </address> | |||
<email>Sum.majee@gmail.com</email> | </author> | |||
</address> | <author initials="C." surname="Pignataro" fullname="Carlos Pignataro"> | |||
</author> | <organization>Cisco</organization> | |||
<author initials="C." surname="Pignataro" fullname="Carlos Pignataro"> | <address> | |||
<organization>Cisco</organization> | <email>cpignata@cisco.com</email> | |||
<address> | </address> | |||
<email>cpignata@cisco.com</email> | </author> | |||
</address> | <author initials="D." surname="Eastlake 3rd" fullname="Donald E. Eastlake, 3 | |||
</author> | rd"> | |||
<author initials="D." surname="Eastlake" fullname="Donald E. Eastlake"> | <organization>Futurewei Technologies</organization> | |||
<organization>Futurewei Technologies</organization> | <address> | |||
<address> | <postal> | |||
<postal> | <street>2386 Panoramic Circle</street> | |||
<street>2386 Panoramic Circle</street> | <city>Apopka</city> | |||
<city>Apopka</city> | <region>FL</region> | |||
<region>FL</region> | <code>32703</code> | |||
<code>32703</code> | <country>United States of America</country> | |||
<country>USA</country> | </postal> | |||
</postal> | <phone>+1-508-333-2270</phone> | |||
<email>d3e3e3@gmail.com</email> | <email>d3e3e3@gmail.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<date year="2022"/> | <date year="2022" month="August"/> | |||
<area>RTG</area> | ||||
<area>Routing</area> | <workgroup>SFC</workgroup> | |||
<keyword>SFC metadata</keyword> | ||||
<workgroup>Service Function Chaining Working Group</workgroup> | <abstract> | |||
<t> | ||||
<abstract> | Service Function Chaining (SFC) uses the Network Service Header (NSH) (RFC 83 | |||
<t> | 00) to steer and provide context metadata (MD) with each packet. Such metadata c | |||
Service Function Chaining (SFC) uses the Network Service Header (NSH) (RFC 83 | an be of various types, including MD Type 2, consisting of Variable-Length Conte | |||
00) to steer and provide context Metadata (MD) with each packet. Such Metadata c | xt Headers. This document specifies several such Context Headers that can be use | |||
an be of various Types including MD Type 2 consisting of variable length context | d within a Service Function Path (SFP). | |||
headers. This document specifies several such context headers that can be used | </t> | |||
within a service function path. | </abstract> | |||
</t> | </front> | |||
</abstract> | <middle> | |||
</front> | <section anchor="intro" numbered="true" toc="default"> | |||
<name>Introduction</name> | ||||
<middle> | <t> | |||
<section anchor="intro" title="Introduction"> | The Network Service Header (NSH) <xref target="RFC8300" format="default"/> is | |||
<t> | the | |||
The Network Service Header (NSH) <xref target="RFC8300"/> is the | Service Function Chaining (SFC) encapsulation that supports the SFC architect | |||
Service Function Chaining (SFC) encapsulation that supports the SFC architect | ure <xref target="RFC7665" format="default"/>. As such, the NSH provides the fo | |||
ure <xref target="RFC7665"/>. As such, the NSH provides following key elements: | llowing key elements: | |||
<list style="numbers"> | </t> | |||
<t>Service Function Path (SFP) identification.</t> | <ol spacing="normal" type="1"> | |||
<t>Indication of location within a Service Function Path.</t> | <li>Service Function Path (SFP) identification</li> | |||
<t>Optional, per-packet metadata (fixed-length or variable-length).</t> | <li>indication of location within an SFP</li> | |||
</list> | <li>optional, per-packet metadata (fixed-length or variable-length)</li> | |||
</t> | </ol> | |||
<t> | <t> | |||
<xref target="RFC8300"/> further defines two metadata formats (MD Types): 1 | <xref target="RFC8300" format="default"/> further defines two metadata forma | |||
and 2. MD | ts (MD Types): 1 and 2. MD | |||
Type 1 defines the fixed-length, 16-octet long metadata, whereas MD Type 2 | Type 1 defines the fixed-length, 16-octet metadata, whereas MD Type 2 | |||
defines a variable-length context format for metadata. This document defines | defines a variable-length context format for metadata. This document defines | |||
several common metadata context headers for use within NSH MD Type 2. These sup | several common metadata Context Headers for use within NSH MD Type 2. | |||
plement the Subscriber Identity and Performance Policy MD Type 2 metadata contex | These supplement the Subscriber Identifier and Performance Policy MD Type 2 m | |||
t headers specified in <xref target="RFC8979"/>. | etadata Context Headers specified in <xref target="RFC8979" format="default"/>. | |||
</t> | </t> | |||
<t> | <t> | |||
This document does not address metadata usage, updating/chaining of | This document does not address metadata usage, updating/chaining of | |||
metadata, or other SFP functions. Those topics are described in <xref target | metadata, or other SFP functions. Those topics are described in <xref target | |||
="RFC8300"/>. | ="RFC8300" format="default"/>. | |||
</t> | </t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Conventions used in this document"> | <name>Conventions Used in This Document</name> | |||
<section numbered="true" toc="default"> | ||||
<section title="Terminology"> | <name>Terminology</name> | |||
<t>This document uses the terminology defined in the SFC architecture <x | ||||
<t>This document uses the terminology defined in the SFC Architectur | ref target="RFC7665" format="default"/> and the NSH <xref target="RFC8300" forma | |||
e <xref target="RFC7665"/> and the Network Service Header <xref target="RFC8300" | t="default"/>.</t> | |||
/>.</t> | ||||
</section> | ||||
<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 numbered="true" toc="default"> | ||||
<section anchor="nsh-t2-format-sec" title="NSH MD Type 2 format"> | <name>Requirements Language</name> | |||
<t> | <t> | |||
The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | ||||
IRED</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 "<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> | ||||
</section> | ||||
</section> | ||||
<section anchor="nsh-t2-format-sec" numbered="true" toc="default"> | ||||
<name>NSH MD Type 2 Format</name> | ||||
<t> | ||||
An NSH is composed of a 4-octet Base Header, a 4-octet Service Path | An NSH is composed of a 4-octet Base Header, a 4-octet Service Path | |||
Header and optional Context Headers. The Base Header identifies the MD-Type | Header, and optional Context Headers. The Base Header identifies the MD Type | |||
in use: | in use: | |||
<figure align="center" anchor="nsh-base-hdr-fig" title="NSH Base He | </t> | |||
ader"> | <figure anchor="nsh-base-hdr-fig"> | |||
<artwork><![CDATA[ | <name>NSH Base Header</name> | |||
<artwork name="" type="" align="center" alt=""><![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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|Ver|O|U| TTL | Length |U|U|U|U|MD Type| Next Protocol | | |Ver|O|U| TTL | Length |U|U|U|U|MD Type| Next Protocol | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | </figure> | |||
Please refer to NSH <xref target="RFC8300"/> for a detailed header description | <t> | |||
. | Please refer to the NSH <xref target="RFC8300" format="default"/> for a detail | |||
ed header description. | ||||
</t> | </t> | |||
<t> | <t> | |||
When the base header specifies MD Type = 0x2, zero or more Variable | When the Base Header specifies MD Type = 0x2, zero or more Variable-Length Co | |||
Length Context Headers MAY be added, immediately following the | ntext Headers <bcp14>MAY</bcp14> be added, immediately following the | |||
Service Path Header. <xref target="nsh-tlv-fig"/> below depicts the format of | Service Path Header. <xref target="nsh-tlv-fig" format="default"/> below depi | |||
the Context Header | cts the format of the Context Header | |||
as defined in Section 2.5.1 of <xref target="RFC8300"/>. | as defined in <xref target="RFC8300" section="2.5.1" sectionFormat="of" forma | |||
<figure align="left" anchor="nsh-tlv-fig" title="NSH Variable-Length Context | t="default"/>. | |||
Headers"> | </t> | |||
<artwork><![CDATA[ | <figure anchor="nsh-tlv-fig"> | |||
0 1 2 3 | <name>NSH Variable-Length Context Headers</name> | |||
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 | <artwork name="" type="" align="center" alt=""><![CDATA[ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0 1 2 3 | |||
| Metadata Class | Type |U| Length | | 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Variable-Length Metadata | | | Metadata Class | Type |U| Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Variable-Length Metadata | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
]]></artwork> | ]]></artwork> | |||
</figure> | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
</t> | </figure> | |||
</section> | </section> | |||
<section anchor="nsh-tlvs-sec" numbered="true" toc="default"> | ||||
<section anchor="nsh-tlvs-sec" title="NSH MD Type 2 Context Headers"> | <name>NSH MD Type 2 Context Headers</name> | |||
<t> | ||||
<t> | <xref target="RFC8300" format="default"/> specifies Metadata Class 0x0000 as | |||
<xref target="RFC8300"/> specifies Metadata Class 0x0000 as IETF Base NSH MD | IETF Base NSH MD Class. In this document, metadata types are defined for the IE | |||
Class. In this document, metadata types are defined for the IETF Base NSH MD Cl | TF Base NSH MD Class. The Context Headers specified in the subsections below are | |||
ass. The Context Headers specified in the subsections below are as follows: | as follows: | |||
</t> | </t> | |||
<t>1. Forwarding Context</t> | <ol spacing="normal"> | |||
<t>2. Tenant Identifier</t> | <li> Forwarding Context</li> | |||
<t>3. Ingress Network Node Information</t> | <li> Tenant ID</li> | |||
<t>4. Ingress Node Source Interface</t> | <li> Ingress Network Node Information</li> | |||
<t>5. Flow ID</t> | <li> Ingress Node Source Interface</li> | |||
<t>6. Source and/or Destination Groups</t> | <li> Flow ID</li> | |||
<t>7. Policy Identifier</t> | <li> Source and/or Destination Groups</li> | |||
<li> Policy ID</li> | ||||
<section anchor="fwd-context-sec" title="Forwarding Context"> | </ol> | |||
<t> | <section anchor="fwd-context-sec" numbered="true" toc="default"> | |||
<name>Forwarding Context</name> | ||||
<t> | ||||
This metadata context carries a network forwarding context, used for | This metadata context carries a network forwarding context, used for | |||
segregation and forwarding scope. Forwarding context can take | segregation and forwarding scope. | |||
several forms depending on the network environment. For example, VXLAN/V | Forwarding context can take | |||
XLAN-GPE VNID, VRF identification, or VLAN. | several forms depending on the network environment, for example, Virtual | |||
eXtensible Local Area Network (VXLAN) / Generic Protocol Extension for | ||||
<figure align="left" anchor="fwd-context-fig1" title="VLAN Forwar | VXLAN (VXLAN-GPE) Virtual Network Identifier (VNID), VPN Routing and Forw | |||
ding Context"> | arding (VRF) identification, or VLAN.</t> | |||
<artwork><![CDATA[ | <figure anchor="fwd-context-fig1"> | |||
0 1 2 3 | <name>VLAN Forwarding Context</name> | |||
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 | <artwork name="" type="" align="center" alt=""><![CDATA[ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0 1 2 3 | |||
| Metadata Class = 0x0000 | Type = TBA1 |U| Length = 4 | | 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|CT=0x0 | Reserved | VLAN ID | | | Metadata Class = 0x0000 | Type = 0x04 |U| Length = 4 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | |CT=0x0 | Reserved | VLAN ID | | |||
</figure> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
<figure align="left" anchor="fwd-context-fig2" title="QinQ Forwar | ||||
ding Context"> | ||||
<artwork><![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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Metadata Class = 0x0000 | Type = TBA1 |U| Length = 4 | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|CT=0x1 |Resv | Service VLAN ID | Customer VLAN ID | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
]]></artwork> | ||||
</figure> | ||||
<figure align="left" anchor="fwd-context-fig3" title="MPLS VPN Fo | ||||
rwarding Context"> | ||||
<artwork><![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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Metadata Class = 0x0000 | Type = TBA1 |U| Length = 4 | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|CT=0x2 | Reserved | MPLS VPN Label | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
]]></artwork> | ||||
</figure> | ||||
<figure align="left" anchor="fwd-context-fig4" title="VNI Forward | ||||
ing Context"> | ||||
<artwork><![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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Metadata Class = 0x0000 | Type = TBA1 |U| Length = 4 | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|CT=0x3 | Resv | Virtual Network Identifier | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
]]></artwork> | ||||
</figure> | ||||
<figure align="left" anchor="fwd-context-fig5" title="Session ID Forward | ||||
ing Context"> | ||||
<artwork><![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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Metadata Class = 0x0000 | Type = TBA1 |U| Length = 8 | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|CT=0x4 | Reserved | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Session ID | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
]]></artwork> | ]]></artwork> | |||
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
</figure> | </figure> | |||
</t> | <figure anchor="fwd-context-fig2"> | |||
<t> | <name>QinQ Forwarding Context</name> | |||
where: | <artwork name="" type="" align="center" alt=""><![CDATA[ | |||
<list> | 0 1 2 3 | |||
<t>Context Type (CT) is four bits-long field that defines the interpretat | 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 | |||
ion of the Forwarding Context field. Please see the IANA Considerations in <xref | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
target="iana-fc-type"/>. This document defines these CT values: | | Metadata Class = 0x0000 | Type = 0x04 |U| Length = 4 | | |||
<list style="simbols"> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
<t>0x0 - 12 bits VLAN identifier <xref target="IEEE.802.1 | |CT=0x1 |Resv | Service VLAN ID | Customer VLAN ID | | |||
Q_2018"/>. See <xref target='fwd-context-fig1'/>. </t> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
<t>0x1 - 24 bits double tagging identifiers. A service VL | ]]></artwork> | |||
AN tag followed by a customer VLAN tag <xref target="IEEE.802.1Q_2018"/>. The tw | </figure> | |||
o VLAN IDs are concatenated and appear in the same order that they appeared in t | <figure anchor="fwd-context-fig3"> | |||
he payload. | <name>MPLS VPN Forwarding Context</name> | |||
See <xref target='fwd-context-fig2'/>.</t> | <artwork name="" type="" align="center" alt=""><![CDATA[ | |||
<t>0x2 - 20 bits MPLS VPN label(<xref target="RFC3032"/>) | 0 1 2 3 | |||
(<xref target="RFC4364"/>). See <xref target='fwd-context-fig3'/>.</t> | 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 | |||
<t>0x3 - 24 bits virtual network identifier (VNI)<xref ta | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
rget="RFC8926"/>. See <xref target='fwd-context-fig4'/>. </t> | | Metadata Class = 0x0000 | Type = 0x04 |U| Length = 4 | | |||
<t>0x4 - 32 bits Session ID (<xref target="RFC3931"/>). T | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
his is called Key in GRE <xref target="RFC2890"/>. See <xref target='fwd-context | |CT=0x2 | Reserved | MPLS VPN Label | | |||
-fig5'/>. </t> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
</list> | ]]></artwork> | |||
Reserved (Resv) bits in the context fields MUST be sent a | </figure> | |||
s zero and ignored on receipt. | <figure anchor="fwd-context-fig4"> | |||
</t> | <name>VNI Forwarding Context</name> | |||
</list> | <artwork name="" type="" align="center" alt=""><![CDATA[ | |||
0 1 2 3 | ||||
</t> | 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 | |||
</section> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Metadata Class = 0x0000 | Type = 0x04 |U| Length = 4 | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|CT=0x3 | Resv | Virtual Network Identifier | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
]]></artwork> | ||||
</figure> | ||||
<figure anchor="fwd-context-fig5"> | ||||
<name>Session ID Forwarding Context</name> | ||||
<artwork name="" type="" align="center" 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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Metadata Class = 0x0000 | Type = 0x04 |U| Length = 8 | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
|CT=0x4 | Reserved | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Session ID | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
]]></artwork> | ||||
</figure> | ||||
<t>The fields are described as follows:</t> | ||||
<dl newline="false" spacing="normal"> | ||||
<dt>Context Type (CT):</dt><dd><t>This 4-bit field that defines th | ||||
e interpretation of the Forwarding Context field. Please see the IANA considerat | ||||
ions in <xref target="iana-fc-type" format="default"/>. This document defines th | ||||
ese CT values:</t> | ||||
<dl newline="false" spacing="normal" indent="6"> | ||||
<dt>0x0:</dt> <dd>12-bit VLAN identifier <xref target="IEEE.802 | ||||
.1Q_2018" format="default"/>. See <xref target="fwd-context-fig1" format="defaul | ||||
t"/>. </dd> | ||||
<dt>0x1:</dt> <dd>24-bit double tagging identifiers. A service | ||||
VLAN tag followed by a customer VLAN tag <xref target="IEEE.802.1Q_2018" format= | ||||
"default"/>. The two VLAN IDs are concatenated and appear in the same order that | ||||
they appeared in the payload. See <xref target="fwd-context-fig2" format="defau | ||||
lt"/>.</dd> | ||||
<dt>0x2:</dt> <dd>20-bit MPLS VPN label <xref target="RFC3032" | ||||
format="default"/> <xref target="RFC4364" format="default"/>. See <xref target=" | ||||
fwd-context-fig3" format="default"/>.</dd> | ||||
<dt>0x3:</dt> <dd>24-bit virtual network identifier (VNI) <xref | ||||
target="RFC8926" format="default"/>. See <xref target="fwd-context-fig4" format | ||||
="default"/>. </dd> | ||||
<dt>0x4:</dt> <dd>32-bit Session ID <xref target="RFC3931" form | ||||
at="default"/>. This is called Key in GRE <xref target="RFC2890" format="default | ||||
"/>. See <xref target="fwd-context-fig5" format="default"/>.</dd> | ||||
</dl> | ||||
</dd> | ||||
<dt>Reserved (Resv):</dt><dd>These bits in the context fields <bcp | ||||
14>MUST</bcp14> be sent as zero and ignored on receipt.</dd> | ||||
</dl> | ||||
<section anchor="tenant-sec" title="Tenant Identifier"> | </section> | |||
<t> | <section anchor="tenant-sec" numbered="true" toc="default"> | |||
<name>Tenant ID</name> | ||||
<t> | ||||
Tenant identification is often used for segregation within a | Tenant identification is often used for segregation within a | |||
multi-tenant environment. Orchestration system-generated tenant | multi-tenant environment. Orchestration system-generated Tenant | |||
IDs are an example of such data. This context header carries the value of | IDs are an example of such data. This Context Header carries the value of | |||
the Tenant identifier. <xref target="OpenDaylight-VTN"/> Virtual Tenant Network | the Tenant ID. Virtual Tenant Network (VTN) <xref target="OpenDaylight-VTN" for | |||
(VTN) is an application that provides multi-tenant virtual network on an SDN co | mat="default"/> is an application that provides multi-tenant virtual networks on | |||
ntroller. | a Software-Defined Networking (SDN) controller. | |||
<figure align="left" anchor="tenant-fig" title="Tenant Identifier List"> | </t> | |||
<artwork><![CDATA[ | <figure anchor="tenant-fig"> | |||
0 1 2 3 | <name>Tenant ID List</name> | |||
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 | <artwork name="" type="" align="center" alt=""><![CDATA[ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0 1 2 3 | |||
| Metadata Class = 0x0000 | Type = TBA2 |U| Length | | 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ Tenant ID ~ | | Metadata Class = 0x0000 | Type = 0x05 |U| Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ Tenant ID ~ | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
]]></artwork> | ]]></artwork> | |||
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
</figure> | </figure> | |||
</t> | <t>The fields are described as follows:</t> | |||
<dl newline="false" spacing="normal"> | ||||
<t>The fields are described as follows: | <dt>Length:</dt> | |||
<list> | <dd>Indicates the length of the Tenant ID in octets (see <xref target=" | |||
<t>Length: Indicates the length of the Tenant ID in octets (see Section | RFC8300" section="2.5.1" sectionFormat="of" format="default"/>).</dd> | |||
2.5.1 of <xref target="RFC8300"/>).</t> | <dt>Tenant ID:</dt> | |||
<dd>Represents an opaque value pointing to orchestration system-generat | ||||
<t>Tenant ID: Represents an opaque value pointing to Orchestration syst | ed Tenant ID. The structure and semantics of this field are specific to the oper | |||
em-generated tenant identifier. The structure and semantics of this field are sp | ator's deployment across its operational domain and are specified and assigned b | |||
ecific to the operator's deployment across its operational domain, and are speci | y an orchestration function. The specifics of that orchestration-based assignmen | |||
fied and assigned by an orchestration function. The specifics of that orchestrat | t are outside the scope of this document.</dd> | |||
ion-based assignment are outside the scope of this document.</t> | </dl> | |||
</list> | </section> | |||
</t> | <section anchor="ingress-net-nodeid-sec" numbered="true" toc="default"> | |||
<name>Ingress Network Node Information</name> | ||||
</section> | <t> | |||
This Context Header carries a Node ID of the network node at which the pa | ||||
<section anchor="ingress-net-nodeid-sec" title="Ingress Network Node Informa | cket entered the SFC-enabled domain. This node will necessarily be a classifier | |||
tion"> | <xref target="RFC7665" format="default"/>. In cases where the Service Path Ident | |||
<t> | ifier (SPI) identifies the ingress node, this Context Header is superfluous. | |||
This context header carries a Node ID of the network node at which the pa | </t> | |||
cket entered the SFC-enabled domain. This node will necessarily be a Classifier | <figure anchor="ingress-net-nodeid-fig"> | |||
<xref target="RFC7665"/>. In cases where the SPI identifies the ingress node, th | <name>Ingress Network Node ID</name> | |||
is context header is superfluous. | <artwork name="" type="" align="center" alt=""><![CDATA[ | |||
<figure align="left" anchor="ingress-net-nodeid-fig" title="Ingress Netw | 0 1 2 3 | |||
ork Node ID"> | 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 | |||
<artwork><![CDATA[ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
0 1 2 3 | | Metadata Class = 0x0000 | Type = 0x06 |U| Length | | |||
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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ~ Node ID ~ | |||
| Metadata Class = 0x0000 | Type = TBA3 |U| Length | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
~ Node ID ~ | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
]]></artwork> | ]]></artwork> | |||
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
</figure> | </figure> | |||
</t> | <t>The fields are described as follows:</t> | |||
<t> | <dl newline="false" spacing="normal"> | |||
The fields are described as follows: | <dt>Length:</dt> | |||
<list> | <dd>Indicates the length of the Node ID in octets (see <xref target="RF | |||
<t>Length: Indicates the length of the Node ID in octets (see Section 2. | C8300" section="2.5.1" sectionFormat="of" format="default"/>).</dd> | |||
5.1 of <xref target="RFC8300"/>).</t> | <dt>Node ID:</dt> | |||
<dd>Represents an opaque value of the ingress network Node ID. The stru | ||||
cture and semantics of this field are deployment specific. For example, Node ID | ||||
may be a 4-octet IPv4 address Node ID, a 16-octet IPv6 address Node ID, a 6-octe | ||||
t MAC address, an 8-octet MAC address (64-bit Extended Unique Identifier (EUI-64 | ||||
)), etc.</dd> | ||||
</dl> | ||||
</section> | ||||
<t>Node ID: Represents an opaque value of the ingress network node ID. T | <section anchor="ingress-net-sitf-sec" numbered="true" toc="default"> | |||
he structure and semantics of this field are deployment specific. For example, N | <name>Ingress Network Source Interface</name> | |||
ode ID may be a 4 octets IPv4 address Node ID, or a 16 octets IPv6 address Node | <t>This context identifies the ingress interface of the ingress network | |||
ID, or a 6 octets MAC address, or 8 octets MAC address (EUI-64), etc.</t> | node. The l2vlan (135), l3ipvlan (136), ipForward (142), and mpls (166) in <xref | |||
</list> | target="IANAifType" format="default"/> are examples of source interfaces. | |||
</t> | </t> | |||
</section> | <figure anchor="ingress-net-sitf-fig"> | |||
<name>Ingress Network Source Interface</name> | ||||
<section anchor="ingress-net-sitf-sec" title="Ingress Network Source Interface"> | <artwork name="" type="" align="center" alt=""><![CDATA[ | |||
<t>This context identifies the ingress interface of the ingress network node. Th | 0 1 2 3 | |||
e l2vlan (135), l3ipvlan (136), ipForward (142), mpls (166) in <xref target="IAN | 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 | |||
AifType"/> are examples of source interfaces. | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
<figure align="left" anchor="ingress-net-sitf-fig" title="Ingress Network Source | | Metadata Class = 0x0000 | Type = 0x07 |U| Length | | |||
Interface"> | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
<artwork><![CDATA[ | ~ Source Interface ~ | |||
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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Metadata Class = 0x0000 | Type = TBA4 |U| Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
~ Source Interface ~ | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
]]></artwork> | ]]></artwork> | |||
</figure> | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
</t> | </figure> | |||
<t>The fields are described as follows: | <t>The fields are described as follows:</t> | |||
<list> | <dl newline="false" spacing="normal"> | |||
<t>Length: Indicates the length of the Source Interface in octets (see Se | <dt>Length:</dt> | |||
ction 2.5.1 of <xref target="RFC8300"/>).</t> | <dd>Indicates the length of the Source Interface in octets (see < | |||
<t>Source Interface: Represents an opaque value of identifier of the ingress | xref target="RFC8300" section="2.5.1" sectionFormat="of" format="default"/>).</d | |||
interface of the ingress network node.</t> | d> | |||
</list> | <dt>Source Interface:</dt> | |||
</t> | <dd>Represents an opaque value of the identifier of the ingress i | |||
</section> | nterface of the ingress network node.</dd> | |||
</dl> | ||||
<section anchor="flow-id-sec" title="Flow ID"> | </section> | |||
<t> | <section anchor="flow-id-sec" numbered="true" toc="default"> | |||
Flow ID provides a field in the NSH MD Type 2 to label packets belonging to | <name>Flow ID</name> | |||
the same flow. For example, <xref target="RFC8200"/> defined IPv6 Flow Label as | <t> | |||
Flow ID, <xref target="RFC6790"/> defined an entropy label which is generated ba | Flow ID provides a field in NSH MD Type 2 to label packets belonging to the | |||
sed on flow information in the MPLS network is another example of Flow ID. Absen | same flow. For example, <xref target="RFC8200" format="default"/> defines IPv6 F | |||
ce of this field, or | low Label as Flow ID. Another example of Flow ID is how <xref target="RFC6790" f | |||
ormat="default"/> defines an entropy label that is generated based on flow infor | ||||
mation in the MPLS network. Absence of this field or | ||||
a value of zero denotes that packets have not been labeled with a Flow ID. | a value of zero denotes that packets have not been labeled with a Flow ID. | |||
</t> | </t> | |||
<t> | <figure anchor="flow-id-ipv6-fig1"> | |||
<figure align="left" anchor="flow-id-ipv6-fig1" title="IPv6 Flow ID"> | <name>IPv6 Flow ID</name> | |||
<artwork><![CDATA[ | <artwork name="" type="" align="center" alt=""><![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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Metadata Class = 0x0000 | Type = TBA5 |U| Length = 4 | | | Metadata Class = 0x0000 | Type = 0x08 |U| Length = 4 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|CT=0x0 | Reserved | IPv6 Flow ID | | |CT=0x0 | Reserved | IPv6 Flow ID | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
</t> | </figure> | |||
<t> | <figure anchor="flow-id-mplse-fig2"> | |||
<figure align="left" anchor="flow-id-mplse-fig2" title="MPLS entropy label"> | <name>MPLS Entropy Label</name> | |||
<artwork><![CDATA[ | <artwork name="" type="" align="center" alt=""><![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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Metadata Class = 0x0000 | Type = TBA5 |U| Length = 4 | | | Metadata Class = 0x0000 | Type = 0x08 |U| Length = 4 | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
|CT=0x1 | Reserved | MPLS entropy label | | |CT=0x1 | Reserved | MPLS entropy label | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
]]></artwork> | ]]></artwork> | |||
</figure> | -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
</t> | </figure> | |||
<t> | ||||
The fields are described as follows: | ||||
<list> | ||||
<t>Length: Indicates the length of the Flow ID in octets (see Sec | ||||
tion 2.5.1 of <xref target="RFC8300"/>). For example, IPv6 Flow Label in <xref t | ||||
arget="RFC8200"/> is 20-bit long. An entropy label in the MPLS network in <xref | ||||
target="RFC6790"/> is also 20-bit long. </t> | ||||
<t>Context Type (CT) is four bits-long field that defines the interpretat | <t>The fields are described as follows:</t> | |||
ion of the Flow ID field. Please see the IANA Considerations in <xref target="ia | ||||
na-tlv-flowid-type"/>. This document defines these CT values: | ||||
<list style="simbols"> | ||||
<t>0x0 - 20 bits IPv6 Flow Label in <xref target="RFC8200 | ||||
"/>. See <xref target='flow-id-ipv6-fig1'/>. </t> | ||||
<t>0x1 - 20 bits entropy label in the MPLS network in <xr | ||||
ef target="RFC6790"/>. See <xref target='flow-id-mplse-fig2'/>.</t> | ||||
</list> | ||||
Reserved bits in the context fields MUST be sent as zero | ||||
and ignored on receipt. | ||||
</t> | ||||
</list> | ||||
</t> | ||||
</section> | <dl newline="false" spacing="normal"> | |||
<dt>Length:</dt> | ||||
<dd>Indicates the length of the Flow ID in octets (see <xref target | ||||
="RFC8300" section="2.5.1" sectionFormat="of" format="default"/>). For example, | ||||
the IPv6 Flow Label in <xref target="RFC8200" format="default"/> is 20 bits long | ||||
. An entropy label in the MPLS network in <xref target="RFC6790" format="default | ||||
"/> is also 20 bits long. </dd> | ||||
<dt>Context Type (CT):</dt><dd><t>This 4-bit field that defines th | ||||
e interpretation of the Flow ID field. Please see the IANA considerations in <xr | ||||
ef target="iana-tlv-flowid-type" format="default"/>. This document defines these | ||||
CT values:</t> | ||||
<section anchor="src-dst-group-sec" title="Source and/or Destination Gro | <dl newline="false" spacing="normal" indent="6"> | |||
ups"> | <dt>0x0:</dt> <dd>20-bit IPv6 Flow Label in <xref target="RFC82 | |||
<t> | 00" format="default"/>. See <xref target="flow-id-ipv6-fig1" format="default"/>. | |||
</dd> | ||||
<dt>0x1:</dt> <dd>20-bit entropy label in the MPLS network in < | ||||
xref target="RFC6790" format="default"/>. See <xref target="flow-id-mplse-fig2" | ||||
format="default"/>.</dd> | ||||
</dl> | ||||
</dd> | ||||
<dt>Reserved:</dt><dd>These bits in the context fields <bcp14>MUST | ||||
</bcp14> be sent as zero and ignored on receipt.</dd> | ||||
</dl> | ||||
</section> | ||||
<section anchor="src-dst-group-sec" numbered="true" toc="default"> | ||||
<name>Source and/or Destination Groups</name> | ||||
<t> | ||||
Intent-based systems can use this data to express the logical | Intent-based systems can use this data to express the logical | |||
grouping of source and/or destination objects. | grouping of source and/or destination objects. | |||
<xref target="OpenStack"/> and <xref target="OpenDaylight"/> provide exam ples of such a | <xref target="OpenStack" format="default"/> and <xref target="OpenDayligh t" format="default"/> provide examples of such a | |||
system. Each is expressed as a 32-bit opaque object. | system. Each is expressed as a 32-bit opaque object. | |||
<figure align="left" anchor="src-dst-group-fig" title="Source/Destinatio | </t> | |||
n Groups"> | <figure anchor="src-dst-group-fig"> | |||
<artwork><![CDATA[ | <name>Source/Destination Groups</name> | |||
0 1 2 3 | <artwork name="" type="" align="center" alt=""><![CDATA[ | |||
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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 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 | |||
| Metadata Class = 0x0000 | Type = TBA6 |U| Length=8 | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Metadata Class = 0x0000 | Type = 0x09 |U| Length=8 | | |||
| Source Group | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Source Group | | |||
| Destination Group | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Destination Group | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
]]></artwork> | ]]></artwork> | |||
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
</figure> | </figure> | |||
</t> | <t> | |||
<t> | If there is no group information specified for the Source Group or Destination G | |||
If there is no group information specified for the source group or destination g | roup field, the field <bcp14>MUST</bcp14> be sent as zero and ignored on receipt | |||
roup field, the field MUST be sent as zero and ignored on receipt. | . | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="policy-id-sec" numbered="true" toc="default"> | ||||
<section anchor="policy-id-sec" title="Policy Identifier"> | <name>Policy ID</name> | |||
<t> | <t> | |||
Traffic handling policies are often referred to by a system-generated ide ntifier, which | Traffic handling policies are often referred to by a system-generated ide ntifier, which | |||
is then used by the devices to look up the policy's content | is then used by the devices to look up the policy's content | |||
locally. For example, this identifier could be an index to an | locally. For example, this identifier could be an index to an | |||
array, a lookup key, a database Id. The identifier allows | array, a lookup key, or a database ID. The identifier allows | |||
enforcement agents or services to look up the content of their | enforcement agents or services to look up the content of their | |||
part of the policy. | part of the policy. | |||
<figure align="left" anchor="policy-id-fig" title="Policy ID"> | </t> | |||
<artwork><![CDATA[ | <figure anchor="policy-id-fig"> | |||
0 1 2 3 | <name>Policy ID</name> | |||
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 | <artwork name="" type="" align="center" alt=""><![CDATA[ | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0 1 2 3 | |||
| Metadata Class = 0x0000 | Type = TBA7 |U| Length | | 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ Policy ID ~ | | Metadata Class = 0x0000 | Type = 0x0A |U| Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
~ Policy ID ~ | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
]]></artwork> | ]]></artwork> | |||
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
</figure> | </figure> | |||
</t> | <t>The fields are described as follows:</t> | |||
<t> | ||||
The fields are described as follows: | ||||
<list> | ||||
<t>Length: Indicates the length of the Policy ID in octets (see Section | ||||
2.5.1 of <xref target="RFC8300"/>).</t> | ||||
<t>Policy ID: Represents an opaque value of the Policy ID.</t> | ||||
</list> | ||||
</t> | ||||
<t> | ||||
This policy identifier is a general policy ID, essentially a key to allow Servic | ||||
e Functions to know which policies to apply to packets. Those policies generall | ||||
y will not have much to do with performance, but rather with what specific | ||||
treatment to apply. It may for example select a URL filter data set for a URL fi | ||||
lter, or select a video transcoding policy in a transcoding SF. The Performance | ||||
Policy Identifier in <xref target="RFC8979"/> is described there as having very | ||||
specific use, and for example says that fully controlled SFPs would not use it. | ||||
The Policy ID in this document is for cases not covered by <xref target="RFC8979 | ||||
"/>. | ||||
</t> | ||||
</section> | <dl newline="false" spacing="normal"> | |||
<dt>Length:</dt> | ||||
<dd>Indicates the length of the Policy ID in octets (see <xref ta | ||||
rget="RFC8300" section="2.5.1" sectionFormat="of" format="default"/>).</dd> | ||||
<dt>Policy ID:</dt> | ||||
<dd>Represents an opaque value of the Policy ID.</dd> | ||||
</dl> | ||||
</section> | <t> | |||
This Policy ID is a general Policy ID, essentially a key to allow Service Functi | ||||
ons (SFs) to know which policies to apply to packets. Those policies generally | ||||
will not have much to do with performance but rather with what specific | ||||
treatment to apply. It may, for example, select a URL filter data set for a URL | ||||
filter or select a video transcoding policy in a transcoding SF. The Performance | ||||
Policy ID in <xref target="RFC8979" format="default"/> is described there as ha | ||||
ving very specific use and, for example, says that fully controlled SFPs would n | ||||
ot use it. The Policy ID in this document is for cases not covered by <xref targ | ||||
et="RFC8979" format="default"/>. | ||||
<section anchor="security-sec" title="Security Considerations"> | ||||
<t>A misbehaving node from within the SFC-enabled domain may alter the content o | ||||
f the Context Headers, which may lead to service disruption. Such an attack is n | ||||
ot unique to the Context Headers defined in this document. Measures discussed in | ||||
Section 8 of <xref target="RFC8300"/> describes the general security considerat | ||||
ions for protecting NSH. <xref target="I-D.ietf-sfc-nsh-integrity"/> specifies m | ||||
ethods of protecting the integrity of the NSH metadata. If the NSH includes the | ||||
MAC and Encrypted Metadata Context Header <xref target="RFC9145"/>, the authenti | ||||
cation of the packet MUST be verified before using any data. If the verification | ||||
fails, the receiver MUST stop processing the variable length context headers an | ||||
d notify an operator. | ||||
</t> | </t> | |||
</section> | ||||
<t>The security and privacy considerations for the 7 types of context header spe | </section> | |||
cified above are discussed below. Since NSH ignorant SFs will never see the NSH, | <section anchor="security-sec" numbered="true" toc="default"> | |||
then even if they are malign, they cannot compromise security or privacy based | <name>Security Considerations</name> | |||
on the NSH or any of these context headers, although they could cause compromise | <t>A misbehaving node from within the SFC-enabled domain may alter the con | |||
based on the rest of the packet. To the extent that any of these headers is inc | tent of the Context Headers, which may lead to service disruption. Such an attac | |||
luded when it would be unneeded or have no effect, they provide a covert channel | k is not unique to the Context Headers defined in this document. Measures discus | |||
for the entity adding the context header to communicate a limited amount of arb | sed in <xref target="RFC8300" section="8" sectionFormat="of" format="default"/> | |||
itrary information to downstream entities within the SFC-enabled domain.</t> | describes the general security considerations for protecting the NSH. <xref targ | |||
et="RFC9145" format="default"/> specifies methods of protecting the integrity of | ||||
<section title="Forwarding Context"> | the NSH metadata. If the NSH includes the Message Authentication Code (MAC) and | |||
<t>All of the Forwarding Context variants specified in this document (those with | Encrypted Metadata Context Header <xref target="RFC9145" format="default"/>, th | |||
CT values between 0 and 4) merely repeat a field that is available in the packe | e authentication of the packet <bcp14>MUST</bcp14> be verified before using any | |||
t encapsulated by the NSH. These variants repeat that field in the NSH for conve | data. If the verification fails, the receiver <bcp14>MUST</bcp14> stop processin | |||
nience. Thus, there are no special security or privacy considerations in these c | g the Variable-Length Context Headers and notify an operator. | |||
ases. Any future new values of CT for the Forwarding Context must specify the se | ||||
curity and privacy considerations for those extensions. | ||||
</t> | </t> | |||
</section> | <t>The security and privacy considerations for the 7 types of Context Head | |||
<section title="Tenant Identifier"> | ers specified above are discussed below. Since NSH-ignorant SFs will never see t | |||
<t>The Tenant ID indicates the tenant to which traffic belongs and might be used | he NSH, then even if they are malign, they cannot compromise security or privacy | |||
to tie together and correlate packets for a tenant that some monitoring functio | based on the NSH or any of these Context Headers; however, they could cause com | |||
n could not otherwise group especially if other possible identifiers were being | promise based on the rest of the packet. To the extent that any of these headers | |||
randomized. As such, it may reduce security by facilitating traffic analysis but | are included when they would be unneeded or have no effect, they provide a cove | |||
only within the SFC-enabled domain where this context header is present in pack | rt channel for the entity adding the Context Header to communicate a limited amo | |||
ets. | unt of arbitrary information to downstream entities within the SFC-enabled domai | |||
n.</t> | ||||
<section numbered="true" toc="default"> | ||||
<name>Forwarding Context</name> | ||||
<t>All of the Forwarding Context variants specified in this document (th | ||||
ose with CT values between 0 and 4) merely repeat a field that is available in t | ||||
he packet encapsulated by the NSH. These variants repeat that field in the NSH f | ||||
or convenience. Thus, there are no special security or privacy considerations in | ||||
these cases. Any future new values of CT for the Forwarding Context must specif | ||||
y the security and privacy considerations for those extensions. | ||||
</t> | </t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Ingress Network Node Information"> | <name>Tenant ID</name> | |||
<t>The SFC-enabled domain manager normally operates the initial ingress / classi | <t>The Tenant ID indicates the tenant to which traffic belongs and might | |||
fier node and is thus potentially aware of the information provided by this cont | be used to tie together and correlate packets for a tenant that some monitoring | |||
ext header. Furthermore, in many cases the SPI that will be present in the NSH i | function could not otherwise group, especially if other possible identifiers we | |||
dentifies or closely constrains the ingress node. Also, in most cases, it is ant | re being randomized. As such, it may reduce security by facilitating traffic ana | |||
icipated that many entities will be sending packets into an SFC-enabled domain t | lysis but only within the SFC-enabled domain where this Context Header is presen | |||
hrough the same ingress node. Thus, under most circumstances, this context heade | t in packets. | |||
r is expected to weaken security and privacy to only a minor extent and only wit | ||||
hin the SFC-enabled domain. | ||||
</t> | </t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Ingress Node Source Interface"> | <name>Ingress Network Node Information</name> | |||
<t>This context header is likely to be meaningless unless the Ingress Network No | <t>The SFC-enabled domain manager normally operates the initial ingress/ | |||
de Information context header is also present. When that node information header | classifier node and is thus potentially aware of the information provided by thi | |||
is present, this source interface header provides a more fine-grained view of t | s Context Header. Furthermore, in many cases, the SPI that will be present in th | |||
he source by identifying not just the initial ingress / classifier node but also | e NSH identifies or closely constrains the ingress node. Also, in most cases, it | |||
the port of that node on which the data arrived. Thus, it is more likely to ide | is anticipated that many entities will be sending packets into an SFC-enabled d | |||
ntify a specific source entity or at least to more tightly constrain the set | omain through the same ingress node. Thus, under most circumstances, this Contex | |||
of possible source entities, than just the node information header. As a result, | t Header is expected to weaken security and privacy to only a minor extent and o | |||
inclusion of this context header with the node information context header is po | nly within the SFC-enabled domain. | |||
tentially a greater threat to security and privacy than the node information hea | ||||
der alone but this threat is still constrained to the SFC-enabled domain.</t> | ||||
</section> | ||||
<section title="Flow ID"> | ||||
<t>The variations of this context header specified in this document simply repea | ||||
t fields already available in the packet and thus have no special security or pr | ||||
ivacy considerations. Any future new values of CT for the Flow ID must specify t | ||||
he security and privacy considerations for those extensions. | ||||
</t> | </t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Source and/or Destination Groups"> | <name>Ingress Node Source Interface</name> | |||
<t>This context header provides additional information that might help identify | <t>This Context Header is likely to be meaningless unless the Ingress Ne | |||
the source and/or destination of packets. Depending on the granularity of the gr | twork Node Information Context Header is also present. When that node informatio | |||
oups, it could either (1) distinguish packets as part of flows from and/or to ob | n header is present, this source interface header provides a more fine-grained v | |||
jects where those flows could not otherwise be easily distinguished but appear t | iew of the source by identifying not just the initial ingress/classifier node bu | |||
o be part of one or fewer flows or (2) group packet flows that are from and/or t | t also the port of that node on which the data arrived. Thus, it is more likely | |||
o an object where those flows could not otherwise be easily grouped for analysis | to identify a specific source entity or at least to more tightly constrain the s | |||
or whatever. Thus, the presence of this context header with non-zero source and | et of possible source entities than just the node information header. As a resul | |||
/or destination groups can, within the SFC-enabled domain, erode security and pr | t, inclusion of this Context Header with the node information Context Header is | |||
ivacy to an extent that depends on the details of the grouping. | potentially a greater threat to security and privacy than the node information h | |||
eader alone, but this threat is still constrained to the SFC-enabled domain.</t> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>Flow ID</name> | ||||
<t>The variations of this Context Header specified in this document simp | ||||
ly repeat fields already available in the packet and thus have no special securi | ||||
ty or privacy considerations. Any future new values of CT for the Flow ID must s | ||||
pecify the security and privacy considerations for those extensions. | ||||
</t> | </t> | |||
</section> | </section> | |||
<section title="Policy Identifier"> | <section numbered="true" toc="default"> | |||
<t> | <name>Source and/or Destination Groups</name> | |||
This context header carries an identifier that nodes in the SFC-enabled domain c | <t>This Context Header provides additional information that might help i | |||
an use to look up policy to potentially | dentify the source and/or destination of packets. Depending on the granularity o | |||
influence their actions with regard to the packet carrying this header. If there | f the groups, it could either (1) distinguish packets as part of flows from and/ | |||
are no such action decisions, then the header should not be included. If are su | or to objects where those flows could not otherwise be easily distinguished but | |||
ch decisions, the information on which they are to be based needs to be included | appear to be part of one or fewer flows or (2) group packet flows that are from | |||
somewhere in the packet. There is no reason for inclusion in this context heade | and/or to an object where those flows could not otherwise be easily grouped for | |||
r to have any security or privacy considerations that would not apply to any oth | analysis or another purpose. | |||
er plaintext way of including such information. It may provide additional inform | Thus, the presence of this Context Header with non-zero source and/or destinatio | |||
ation to help identify a flow of data for analysis. | n groups can, within the SFC-enabled domain, erode security and privacy to an ex | |||
tent that depends on the details of the grouping. | ||||
</t> | </t> | |||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>Policy ID</name> | ||||
<t> | ||||
This Context Header carries an identifier that nodes in the SFC-enabled domain c | ||||
an use to look up policy to potentially | ||||
influence their actions with regard to the packet carrying this header. If there | ||||
are no such decisions regarding their actions, then the header should not be in | ||||
cluded. If there are such decisions, the information on which they are to be bas | ||||
ed needs to be included somewhere in the packet. There is no reason for inclusio | ||||
n in this Context Header to have any security or privacy considerations that wou | ||||
ld not apply to any other plaintext way of including such information. It may pr | ||||
ovide additional information to help identify a flow of data for analysis. | ||||
</t> | ||||
</section> | ||||
</section> | ||||
<section anchor="iana-tlv-class-reg-sec" numbered="true" toc="default"> | ||||
<name>IANA Considerations</name> | ||||
<section anchor="iana-tlv-class-context-type" numbered="true" toc="default | ||||
"> | ||||
<name>MD Type 2 Context Types</name> | ||||
<t> | ||||
IANA has assigned the following types (<xref target="type-values-tbl" for | ||||
mat="default"/>) from the "NSH IETF-Assigned Optional Variable-Length Metadata T | ||||
ypes" registry available at <xref target="IANA-NSH-MD2" format="default"/>. | ||||
</t> | ||||
<table anchor="type-values-tbl" align="center"> | ||||
<name>Type Values</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="left">Value</th> | ||||
<th align="center">Description</th> | ||||
<th align="left">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left">0x04</td> | ||||
<td align="center">Forwarding Context</td> | ||||
<td align="left">RFC 9263</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">0x05</td> | ||||
<td align="center">Tenant ID</td> | ||||
<td align="left">RFC 9263</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">0x06</td> | ||||
<td align="center">Ingress Network Node ID</td> | ||||
<td align="left">RFC 9263</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">0x07</td> | ||||
<td align="center">Ingress Network Interface</td> | ||||
<td align="left">RFC 9263</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">0x08</td> | ||||
<td align="center">Flow ID</td> | ||||
<td align="left">RFC 9263</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">0x09</td> | ||||
<td align="center">Source and/or Destination Groups</td> | ||||
<td align="left">RFC 9263</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">0x0A</td> | ||||
<td align="center">Policy ID</td> | ||||
<td align="left">RFC 9263</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="iana-fc-type" numbered="true" toc="default"> | ||||
<name>Forwarding Context Types</name> | ||||
<t>IANA has created a new subregistry for "Forwarding Context Types" at | ||||
<xref target="IANA-NSH-MD2" format="default"/> as follows. | ||||
</t> | ||||
<t>The registration policy is IETF Review.</t> | ||||
<table anchor="Forwarding-CT-iana-tbl" align="center"> | ||||
<name>Forwarding Context Types</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="left">Value</th> | ||||
<th align="center">Description</th> | ||||
<th align="left">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left">0x0</td> | ||||
<td align="center">12-bit VLAN identifier</td> | ||||
<td align="left">RFC 9263</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">0x1</td> | ||||
<td align="center">24-bit double tagging identifiers</td> | ||||
<td align="left">RFC 9263</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">0x2</td> | ||||
<td align="center">20-bit MPLS VPN label</td> | ||||
<td align="left">RFC 9263</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">0x3</td> | ||||
<td align="center">24-bit virtual network identifier (VNI)</td> | ||||
<td align="left">RFC 9263</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">0x4</td> | ||||
<td align="center">32-bit Session ID</td> | ||||
<td align="left">RFC 9263</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">0x5-0xE</td> | ||||
<td align="center">Unassigned</td> | ||||
<td align="left"/> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">0xF</td> | ||||
<td align="center">Reserved</td> | ||||
<td align="left">RFC 9263</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
<section anchor="iana-tlv-flowid-type" numbered="true" toc="default"> | ||||
<name>Flow ID Context Types</name> | ||||
<t>IANA has created a new subregistry for "Flow ID Context Types" at <xr | ||||
ef target="IANA-NSH-MD2" format="default"/> as follows. | ||||
</t> | ||||
<t>The registration policy is IETF Review.</t> | ||||
<table anchor="flow-id-CT-iana-tbl" align="center"> | ||||
<name>Flow ID Context Types</name> | ||||
<thead> | ||||
<tr> | ||||
<th align="left">Value</th> | ||||
<th align="center">Description</th> | ||||
<th align="left">Reference</th> | ||||
</tr> | ||||
</thead> | ||||
<tbody> | ||||
<tr> | ||||
<td align="left">0x0</td> | ||||
<td align="center">20-bit IPv6 Flow Label</td> | ||||
<td align="left">RFC 9263</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">0x1</td> | ||||
<td align="center">20-bit entropy label in the MPLS network</td> | ||||
<td align="left">RFC 9263</td> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">0x2-0xE</td> | ||||
<td align="center">Unassigned</td> | ||||
<td align="left"/> | ||||
</tr> | ||||
<tr> | ||||
<td align="left">0xF</td> | ||||
<td align="center">Reserved</td> | ||||
<td align="left">RFC 9263</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
</section> | ||||
</section> | </section> | |||
</middle> | ||||
<back> | ||||
<references> | ||||
<name>References</name> | ||||
<references> | ||||
<name>Normative References</name> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3931. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8300. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9145. | ||||
xml"/> | ||||
</section> | <reference anchor="IEEE.802.1Q_2018" target="https://ieeexplore.ieee.org | |||
/document/8403927"> | ||||
<section title="Acknowledgments"> | <front> | |||
<t> | <title>IEEE Standard for Local and Metropolitan Area Network -- Brid | |||
The authors would like to thank Paul Quinn, Behcet Sarikaya, Dirk von Hug | ges and Bridged Networks</title> | |||
o, Mohamed Boucadair, Gregory Mirsky, and Joel Halpern for providing invaluable | ||||
concepts and content for this document. | ||||
</t> | ||||
</section> | ||||
<section anchor="iana-tlv-class-reg-sec" title="IANA Considerations"> | ||||
<section anchor="iana-tlv-class-context-type" title="MD Type 2 Context Types"> | ||||
<t> | ||||
IANA is requested to assign the following types (<xref target="type-value | ||||
s-tbl"/>) from the "NSH IETF-Assigned Optional Variable-Length Metadata Types" r | ||||
egistry available at <xref target="IANA-NSH-MD2"/>. | ||||
</t> | ||||
<texttable anchor="type-values-tbl" title="Type Values"> | ||||
<ttcol align="left">Value</ttcol> | ||||
<ttcol align="center">Description</ttcol> | ||||
<ttcol align="left">Reference</ttcol> | ||||
<c>TBA1</c> | ||||
<c>Forwarding Context</c> | ||||
<c>This document</c> | ||||
<c>TBA2</c> | ||||
<c>Tenant Identifier</c> | ||||
<c>This document</c> | ||||
<c>TBA3</c> | ||||
<c>Ingress Network NodeID</c> | ||||
<c>This document</c> | ||||
<c>TBA4</c> | ||||
<c>Ingress Network Interface</c> | ||||
<c>This document</c> | ||||
<c>TBA5</c> | ||||
<c>Flow ID</c> | ||||
<c>This document</c> | ||||
<c>TBA6</c> | ||||
<c>Source and/or Destination Groups</c> | ||||
<c>This document</c> | ||||
<c>TBA7</c> | ||||
<c>Policy Identifier</c> | ||||
<c>This document</c> | ||||
</texttable> | ||||
</section> | ||||
<!-- Add forwarding context Type sub-registry --> | ||||
<section anchor="iana-fc-type" title="Forwarding Context Types"> | ||||
<t>IANA is requested to create a new sub-registry for "Forwarding | ||||
Context" context types at <xref target="IANA-NSH-MD2"/> as follows: | ||||
</t> | ||||
<t>The Registration Policy is IETF Review</t> | ||||
<texttable anchor="Forwarding-CT-iana-tbl" title="Forwarding Cont | ||||
ext Types"> | ||||
<ttcol align="left">Value</ttcol> | ||||
<ttcol align="center">Forwarding Context Header Types</tt | ||||
col> | ||||
<ttcol align="left">Reference</ttcol> | ||||
<c>0x0</c> | ||||
<c>12-bit VLAN identifier</c> | ||||
<c>This document</c> | ||||
<c>0x1</c> | ||||
<c>24-bit double tagging identifiers</c> | ||||
<c>This document</c> | ||||
<c>0x2</c> | ||||
<c>20-bit MPLS VPN label</c> | ||||
<c>This document</c> | ||||
<c>0x3</c> | ||||
<c>24-bit virtual network identifier (VNI)</c> | ||||
<c>This document</c> | ||||
<c>0x4</c> | ||||
<c>32-bit Session ID</c> | ||||
<c>This document</c> | ||||
<c>0x5-0xE</c> | ||||
<c>Unassigned</c> | ||||
<c></c> | ||||
<c>0xF</c> | ||||
<c>Reserved</c> | ||||
<c>This document</c> | ||||
</texttable> | ||||
</section> | ||||
<!-- end of forwarding context Type sub-registry --> | ||||
<!-- Add flow id context Type sub-registry --> | ||||
<section anchor="iana-tlv-flowid-type" title="Flow ID Context Types"> | ||||
<t>IANA is requested to create a new sub-registry for "Flow ID Co | ||||
ntext" context types at <xref target="IANA-NSH-MD2"/> as follows: | ||||
</t> | ||||
<t>The Registration Policy is IETF Review</t> | ||||
<texttable anchor="flow-id-CT-iana-tbl" title="Flow ID Context Ty | ||||
pes"> | ||||
<ttcol align="left">Value</ttcol> | ||||
<ttcol align="center">Flow ID Context Header Types</ttcol | ||||
> | ||||
<ttcol align="left">Reference</ttcol> | ||||
<c>0x0</c> | ||||
<c>20-bit IPv6 Flow Label</c> | ||||
<c>This document</c> | ||||
<c>0x1</c> | ||||
<c>20-bit entropy label in the MPLS network</c> | ||||
<c>This document</c> | ||||
<c>0x2-0xE</c> | ||||
<c>Unassigned</c> | ||||
<c></c> | ||||
<c>0xF</c> | ||||
<c>Reserved</c> | ||||
<c>This document</c> | ||||
</texttable> | ||||
</section> | ||||
<!-- end of flowid context Type sub-registry --> | ||||
</section> | ||||
</middle> | ||||
<back> | ||||
<references title="Normative References"> | ||||
<?rfc include="reference.RFC.2119"?> | ||||
<?rfc include="reference.RFC.3931"?> | ||||
<?rfc include="reference.RFC.8174"?> | ||||
<?rfc include="reference.RFC.8300"?> | ||||
<?rfc include="reference.RFC.9145"?> | ||||
<?rfc include='reference.I-D.ietf-sfc-nsh-integrity'?> | ||||
<reference anchor="IEEE.802.1Q_2018" target="http://ieeexplore.ieee.org/ | ||||
servlet/opac?punumber=8403925" > | ||||
<front> | ||||
<title>IEEE Standard for Local and Metropolitan Area Networks--Brid | ||||
ges and Bridged Networks</title> | ||||
<author> | <author> | |||
<organization>IEEE</organization> | <organization>IEEE</organization> | |||
</author> | </author> | |||
<date month="July" year="2018"/> | <date month="July" year="2018"/> | |||
</front> | </front> | |||
</reference> | </reference> | |||
<reference anchor="IANA-NSH-MD2" target="https://www.iana.org/ass | ||||
ignments/nsh/nsh.xhtml#optional-variable-length-metadata-types"> | <reference anchor="IANA-NSH-MD2" target="https://www.iana.org/assignment | |||
<front> | s/nsh"> | |||
<front> | ||||
<title> | <title> | |||
NSH IETF-Assigned Optional Variable-Length Metada ta Types | Network Service Header (NSH) Parameters | |||
</title> | </title> | |||
<author> | <author> | |||
<organization>IANA</organization> | <organization>IANA</organization> | |||
</author> | </author> | |||
<date/> | </front> | |||
</front> | </reference> | |||
</reference> | ||||
<!-- | ||||
<reference anchor="IANA-NSH-MD4"> | ||||
<front> | ||||
<title>NSH IETF-Assigned Optional Variable-Length | ||||
Metadata Types</title> | ||||
<author> | ||||
<organization>IANA</organization> | ||||
</author> | ||||
<date/> | ||||
</front> | ||||
<format type="https://www.iana.org/assignments/nsh/nsh.xh | ||||
tml#optional-variable-length-metadata-types"/> | ||||
</reference> | ||||
</references> | </references> | |||
<references> | ||||
<name>Informative References</name> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8200. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6790. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8979. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2890. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7665. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8926. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3032. | ||||
xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4364. | ||||
xml"/> | ||||
<references title="Informative References"> | <reference anchor="OpenDaylight-VTN" target="https://nexus.opendaylight.org/cont | |||
<?rfc include="reference.RFC.8200"?> | ent/sites/site/org.opendaylight.docs/master/userguide/manuals/userguide/bk-user- | |||
<?rfc include="reference.RFC.6790"?> | guide/content/_vtn.html"> | |||
<?rfc include="reference.RFC.8979"?> | <front> | |||
<?rfc include="reference.RFC.2890"?> | <title>OpenDaylight VTN</title> | |||
<?rfc include="reference.RFC.7665"?> | <author> | |||
<?rfc include="reference.RFC.8926"?> | <organization>OpenDaylight</organization> | |||
<?rfc include="reference.RFC.3032"?> | </author> | |||
<?rfc include="reference.RFC.4364"?> | <date year="2021"/> | |||
</front> | ||||
<reference anchor="OpenDaylight-VTN" target="https://nexus.openda | </reference> | |||
ylight.org/content/sites/site/org.opendaylight.docs/master/userguide/manuals/use | ||||
rguide/bk-user-guide/content/_vtn.html"> | ||||
<front> | ||||
<title>OpenDaylight VTN</title> | ||||
<author> | ||||
<organization>OpenDaylight</organization> | ||||
</author> | ||||
<date year="2021"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="IANAifType" target="https://www.iana.org/assig | <reference anchor="IANAifType" target="https://www.iana.org/assignments/ | |||
nments/ianaiftype-mib/ianaiftype-mib"> | ianaiftype-mib/ianaiftype-mib"> | |||
<front> | <front> | |||
<title>IANAifType</title> | <title>IANAifType-MIB DEFINITIONS</title> | |||
<author> | <author> | |||
<organization>IANA</organization> | <organization>IANA</organization> | |||
</author> | </author> | |||
<date year="2021"/> | <date year="2021"/> | |||
</front> | </front> | |||
</reference> | </reference> | |||
<reference anchor="OpenStack" target="https://wiki.openstack.org/ | <reference anchor="OpenStack" target="https://wiki.openstack.org/wiki/Gr | |||
wiki/GroupBasedPolicy"> | oupBasedPolicy"> | |||
<front> | <front> | |||
<title>Group Based Policy</title> | <title>GroupBasedPolicy</title> | |||
<author> | <author> | |||
<organization>OpenStack</organization> | <organization>OpenStack</organization> | |||
</author> | </author> | |||
<date year="2021"/> | <date year="2021"/> | |||
</front> | </front> | |||
<!--<format type="https://wiki.openstack.org/wiki/GroupBa | ||||
sedPolicy"/>--> | ||||
</reference> | </reference> | |||
<reference anchor="OpenDaylight" target="https://docs.opendaylig | <reference anchor="OpenDaylight" target="https://docs.opendaylight.org/e | |||
ht.org/en/stable-fluorine/user-guide/group-based-policy-user-guide.html?highligh | n/stable-fluorine/user-guide/group-based-policy-user-guide.html?highlight=group% | |||
t=group%20policy#"> | 20policy#"> | |||
<front> | <front> | |||
<title>Group Based Policy</title> | <title>Group Based Policy User Guide</title> | |||
<author> | <author> | |||
<organization>OpenDaylight</organization> | <organization>OpenDaylight</organization> | |||
</author> | </author> | |||
<date year="2021"/> | <date year="2021"/> | |||
</front> | </front> | |||
<!--<format type="https://docs.opendaylight.org/en/stable | ||||
-fluorine/user-guide/group-based-policy-user-guide.html?highlight=group%20policy | ||||
#"/>--> | ||||
</reference> | </reference> | |||
</references> | ||||
</references> | </references> | |||
</back> | <section numbered="false" toc="default"> | |||
<name>Acknowledgments</name> | ||||
<t> | ||||
The authors would like to thank <contact fullname="Paul Quinn"/>, <contac | ||||
t fullname="Behcet Sarikaya"/>, <contact fullname="Dirk von Hugo"/>, <contact fu | ||||
llname="Mohamed Boucadair"/>, <contact fullname="Gregory Mirsky"/>, and <contact | ||||
fullname="Joel Halpern"/> for providing invaluable concepts and content for thi | ||||
s document. | ||||
</t> | ||||
</section> | ||||
</back> | ||||
</rfc> | </rfc> | |||
End of changes. 66 change blocks. | ||||
774 lines changed or deleted | 828 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |