<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" consensus="true" docName="draft-ietf-sfc-nsh-tlv-15" indexInclude="true" ipr="trust200902" number="9263" prepTime="2022-08-09T16:49:14" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="3" tocInclude="true" xml:lang="en">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-sfc-nsh-tlv-15" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9263" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="NSH MD2 Context Headers">Network Service Header (NSH) Metadata Type 2 Variable-Length Context Headers</title>
    <seriesInfo name="RFC" value="9263" stream="IETF"/>
    <author fullname="Yuehua Wei" initials="Y." surname="Wei" role="editor">
      <organization showOnFrontPage="true">ZTE Corporation</organization>
      <address>
        <postal>
          <street>No.50, Software Avenue</street>
          <city>Nanjing</city>
          <region/>
          <code>210012</code>
          <country>China</country>
        </postal>
        <email>wei.yuehua@zte.com.cn</email>
      </address>
    </author>
    <author initials="U." surname="Elzur" fullname="Uri Elzur">
      <organization showOnFrontPage="true">Intel</organization>
      <address>
        <email>uri.elzur@intel.com</email>
      </address>
    </author>
    <author initials="S." surname="Majee" fullname="Sumandra Majee">
      <organization showOnFrontPage="true">Individual Contributor</organization>
      <address>
        <email>Sum.majee@gmail.com</email>
      </address>
    </author>
    <author initials="C." surname="Pignataro" fullname="Carlos Pignataro">
      <organization showOnFrontPage="true">Cisco</organization>
      <address>
        <email>cpignata@cisco.com</email>
      </address>
    </author>
    <author initials="D." surname="Eastlake 3rd" fullname="Donald E. Eastlake, 3rd">
      <organization showOnFrontPage="true">Futurewei Technologies</organization>
      <address>
        <postal>
          <street>2386 Panoramic Circle</street>
          <city>Apopka</city>
          <region>FL</region>
          <code>32703</code>
          <country>United States of America</country>
        </postal>
        <phone>+1-508-333-2270</phone>
        <email>d3e3e3@gmail.com</email>
      </address>
    </author>
    <date month="08" year="2022"/>
    <area>RTG</area>
    <workgroup>SFC</workgroup>
    <keyword>SFC metadata</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">
   Service Function Chaining (SFC) uses the Network Service Header (NSH) (RFC 8300) to steer and provide context metadata (MD) with each packet. Such metadata can be of various types, including MD Type 2, consisting of Variable-Length Context Headers. This document specifies several such Context Headers that can be used within a Service Function Path (SFP).
      </t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by
            the Internet Engineering Steering Group (IESG).  Further
            information on Internet Standards is available in Section 2 of 
            RFC 7841.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9263" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2022 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-conventions-used-in-this-do">Conventions Used in This Document</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2">
              <li pn="section-toc.1-1.2.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terminology">Terminology</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.2">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.2.2.1"><xref derivedContent="2.2" format="counter" sectionFormat="of" target="section-2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-language">Requirements Language</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-nsh-md-type-2-format">NSH MD Type 2 Format</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-nsh-md-type-2-context-heade">NSH MD Type 2 Context Headers</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2">
              <li pn="section-toc.1-1.4.2.1">
                <t indent="0" pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-forwarding-context">Forwarding Context</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.2">
                <t indent="0" pn="section-toc.1-1.4.2.2.1"><xref derivedContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-tenant-id">Tenant ID</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.3">
                <t indent="0" pn="section-toc.1-1.4.2.3.1"><xref derivedContent="4.3" format="counter" sectionFormat="of" target="section-4.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ingress-network-node-inform">Ingress Network Node Information</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.4">
                <t indent="0" pn="section-toc.1-1.4.2.4.1"><xref derivedContent="4.4" format="counter" sectionFormat="of" target="section-4.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ingress-network-source-inte">Ingress Network Source Interface</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.5">
                <t indent="0" pn="section-toc.1-1.4.2.5.1"><xref derivedContent="4.5" format="counter" sectionFormat="of" target="section-4.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-flow-id">Flow ID</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.6">
                <t indent="0" pn="section-toc.1-1.4.2.6.1"><xref derivedContent="4.6" format="counter" sectionFormat="of" target="section-4.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-source-and-or-destination-g">Source and/or Destination Groups</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.7">
                <t indent="0" pn="section-toc.1-1.4.2.7.1"><xref derivedContent="4.7" format="counter" sectionFormat="of" target="section-4.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-policy-id">Policy ID</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2">
              <li pn="section-toc.1-1.5.2.1">
                <t indent="0" pn="section-toc.1-1.5.2.1.1"><xref derivedContent="5.1" format="counter" sectionFormat="of" target="section-5.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-forwarding-context-2">Forwarding Context</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.2">
                <t indent="0" pn="section-toc.1-1.5.2.2.1"><xref derivedContent="5.2" format="counter" sectionFormat="of" target="section-5.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-tenant-id-2">Tenant ID</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.3">
                <t indent="0" pn="section-toc.1-1.5.2.3.1"><xref derivedContent="5.3" format="counter" sectionFormat="of" target="section-5.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ingress-network-node-informa">Ingress Network Node Information</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.4">
                <t indent="0" pn="section-toc.1-1.5.2.4.1"><xref derivedContent="5.4" format="counter" sectionFormat="of" target="section-5.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ingress-node-source-interfa">Ingress Node Source Interface</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.5">
                <t indent="0" pn="section-toc.1-1.5.2.5.1"><xref derivedContent="5.5" format="counter" sectionFormat="of" target="section-5.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-flow-id-2">Flow ID</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.6">
                <t indent="0" pn="section-toc.1-1.5.2.6.1"><xref derivedContent="5.6" format="counter" sectionFormat="of" target="section-5.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-source-and-or-destination-gr">Source and/or Destination Groups</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.7">
                <t indent="0" pn="section-toc.1-1.5.2.7.1"><xref derivedContent="5.7" format="counter" sectionFormat="of" target="section-5.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-policy-id-3">Policy ID</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2">
              <li pn="section-toc.1-1.6.2.1">
                <t indent="0" pn="section-toc.1-1.6.2.1.1"><xref derivedContent="6.1" format="counter" sectionFormat="of" target="section-6.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-md-type-2-context-types">MD Type 2 Context Types</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.2">
                <t indent="0" pn="section-toc.1-1.6.2.2.1"><xref derivedContent="6.2" format="counter" sectionFormat="of" target="section-6.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-forwarding-context-types">Forwarding Context Types</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.3">
                <t indent="0" pn="section-toc.1-1.6.2.3.1"><xref derivedContent="6.3" format="counter" sectionFormat="of" target="section-6.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-flow-id-context-types">Flow ID Context Types</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2">
              <li pn="section-toc.1-1.7.2.1">
                <t indent="0" pn="section-toc.1-1.7.2.1.1"><xref derivedContent="7.1" format="counter" sectionFormat="of" target="section-7.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.2">
                <t indent="0" pn="section-toc.1-1.7.2.2.1"><xref derivedContent="7.2" format="counter" sectionFormat="of" target="section-7.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgments</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="intro" numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">
   The Network Service Header (NSH) <xref target="RFC8300" format="default" sectionFormat="of" derivedContent="RFC8300"/> is the
   Service Function Chaining (SFC) encapsulation that supports the SFC architecture <xref target="RFC7665" format="default" sectionFormat="of" derivedContent="RFC7665"/>.  As such, the NSH provides the following key elements:
      </t>
      <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-1-2">
	<li pn="section-1-2.1" derivedCounter="1.">Service Function Path (SFP) identification</li>
        <li pn="section-1-2.2" derivedCounter="2.">indication of location within an SFP</li>
        <li pn="section-1-2.3" derivedCounter="3.">optional, per-packet metadata (fixed-length or variable-length)</li>
      </ol>
      <t indent="0" pn="section-1-3">
    <xref target="RFC8300" format="default" sectionFormat="of" derivedContent="RFC8300"/> further defines two metadata formats (MD Types): 1 and 2.  MD
   Type 1 defines the fixed-length, 16-octet metadata, whereas MD Type 2
   defines a variable-length context format for metadata.  This document defines several common metadata Context Headers for use within NSH MD Type 2.
   These supplement the Subscriber Identifier and Performance Policy MD Type 2 metadata Context Headers specified in <xref target="RFC8979" format="default" sectionFormat="of" derivedContent="RFC8979"/>.
      </t>
      <t indent="0" pn="section-1-4">
      This document does not address metadata usage, updating/chaining of
   metadata, or other SFP functions.  Those topics are described in <xref target="RFC8300" format="default" sectionFormat="of" derivedContent="RFC8300"/>.
      </t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-conventions-used-in-this-do">Conventions Used in This Document</name>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-2.1">
        <name slugifiedName="name-terminology">Terminology</name>
        <t indent="0" pn="section-2.1-1">This document uses the terminology defined in the SFC architecture <xref target="RFC7665" format="default" sectionFormat="of" derivedContent="RFC7665"/> and the NSH <xref target="RFC8300" format="default" sectionFormat="of" derivedContent="RFC8300"/>.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-2.2">
        <name slugifiedName="name-requirements-language">Requirements Language</name>
        <t indent="0" pn="section-2.2-1">
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
    described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="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="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-nsh-md-type-2-format">NSH MD Type 2 Format</name>
      <t indent="0" pn="section-3-1">
   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
   in use:
      </t>
      <figure anchor="nsh-base-hdr-fig" align="left" suppress-title="false" pn="figure-1">
        <name slugifiedName="name-nsh-base-header">NSH Base Header</name>
        <artwork name="" type="" align="center" alt="" pn="section-3-2.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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Ver|O|U|    TTL    |   Length  |U|U|U|U|MD Type| Next Protocol |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
      </figure>
      <t indent="0" pn="section-3-3">
  Please refer to the NSH <xref target="RFC8300" format="default" sectionFormat="of" derivedContent="RFC8300"/> for a detailed header description.
</t>
      <t indent="0" pn="section-3-4">
   When the Base Header specifies MD Type = 0x2, zero or more Variable-Length Context Headers <bcp14>MAY</bcp14> be added, immediately following the
   Service Path Header. <xref target="nsh-tlv-fig" format="default" sectionFormat="of" derivedContent="Figure 2"/> below depicts the format of the Context Header
   as defined in <xref target="RFC8300" section="2.5.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8300#section-2.5.1" derivedContent="RFC8300"/>.
      </t>
      <figure anchor="nsh-tlv-fig" align="left" suppress-title="false" pn="figure-2">
        <name slugifiedName="name-nsh-variable-length-context">NSH Variable-Length Context Headers</name>
        <artwork name="" type="" align="center" alt="" pn="section-3-5.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       |      Type     |U|    Length   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                   Variable-Length Metadata                    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
      </figure>
    </section>
    <section anchor="nsh-tlvs-sec" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-nsh-md-type-2-context-heade">NSH MD Type 2 Context Headers</name>
      <t indent="0" pn="section-4-1">
   <xref target="RFC8300" format="default" sectionFormat="of" derivedContent="RFC8300"/> specifies Metadata Class 0x0000 as IETF Base NSH MD Class.  In this document, metadata types are defined for the IETF Base NSH MD Class. The Context Headers specified in the subsections below are as follows:
      </t>
      <ol spacing="normal" indent="adaptive" start="1" type="1" pn="section-4-2">
	<li pn="section-4-2.1" derivedCounter="1."> Forwarding Context</li>
        <li pn="section-4-2.2" derivedCounter="2."> Tenant ID</li>
        <li pn="section-4-2.3" derivedCounter="3."> Ingress Network Node Information</li>
        <li pn="section-4-2.4" derivedCounter="4."> Ingress Node Source Interface</li>
        <li pn="section-4-2.5" derivedCounter="5."> Flow ID</li>
        <li pn="section-4-2.6" derivedCounter="6."> Source and/or Destination Groups</li>
        <li pn="section-4-2.7" derivedCounter="7."> Policy ID</li>
      </ol>
      <section anchor="fwd-context-sec" numbered="true" toc="include" removeInRFC="false" pn="section-4.1">
        <name slugifiedName="name-forwarding-context">Forwarding Context</name>
        <t indent="0" pn="section-4.1-1">
       This metadata context carries a network forwarding context, used for
       segregation and forwarding scope.
       Forwarding context can take
       several forms depending on the network environment, for example, Virtual
       eXtensible Local Area Network (VXLAN) / Generic Protocol Extension for
	VXLAN (VXLAN-GPE) Virtual Network Identifier (VNID), VPN Routing and Forwarding (VRF) identification, or VLAN.</t>
        <figure anchor="fwd-context-fig1" align="left" suppress-title="false" pn="figure-3">
          <name slugifiedName="name-vlan-forwarding-context">VLAN Forwarding Context</name>
          <artwork name="" type="" align="center" alt="" pn="section-4.1-2.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 = 0x04  |U|  Length = 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|CT=0x0 |             Reserved          |        VLAN ID        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <figure anchor="fwd-context-fig2" align="left" suppress-title="false" pn="figure-4">
          <name slugifiedName="name-qinq-forwarding-context">QinQ Forwarding Context</name>
          <artwork name="" type="" align="center" alt="" pn="section-4.1-3.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 = 0x04  |U|  Length = 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|CT=0x1 |Resv   |     Service VLAN ID   |    Customer VLAN ID   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <figure anchor="fwd-context-fig3" align="left" suppress-title="false" pn="figure-5">
          <name slugifiedName="name-mpls-vpn-forwarding-context">MPLS VPN Forwarding Context</name>
          <artwork name="" type="" align="center" alt="" pn="section-4.1-4.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 = 0x04  |U|  Length = 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|CT=0x2 |   Reserved    |              MPLS VPN Label           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <figure anchor="fwd-context-fig4" align="left" suppress-title="false" pn="figure-6">
          <name slugifiedName="name-vni-forwarding-context">VNI Forwarding Context</name>
          <artwork name="" type="" align="center" alt="" pn="section-4.1-5.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 = 0x04  |U|  Length = 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|CT=0x3 | Resv  |            Virtual Network Identifier         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <figure anchor="fwd-context-fig5" align="left" suppress-title="false" pn="figure-7">
          <name slugifiedName="name-session-id-forwarding-conte">Session ID Forwarding Context</name>
          <artwork name="" type="" align="center" alt="" pn="section-4.1-6.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 = 0x04  |U|  Length = 8 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|CT=0x4 |             Reserved                                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            Session ID                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t indent="0" pn="section-4.1-7">The fields are described as follows:</t>
        <dl newline="false" spacing="normal" indent="3" pn="section-4.1-8">
          <dt pn="section-4.1-8.1">Context Type (CT):</dt>
          <dd pn="section-4.1-8.2">
            <t indent="0" pn="section-4.1-8.2.1">This 4-bit field that defines the interpretation of the Forwarding Context field. Please see the IANA considerations in <xref target="iana-fc-type" format="default" sectionFormat="of" derivedContent="Section 6.2"/>. This document defines these CT values:</t>
            <dl newline="false" spacing="normal" indent="6" pn="section-4.1-8.2.2">
              <dt pn="section-4.1-8.2.2.1">0x0:</dt>
              <dd pn="section-4.1-8.2.2.2">12-bit VLAN identifier <xref target="IEEE.802.1Q_2018" format="default" sectionFormat="of" derivedContent="IEEE.802.1Q_2018"/>. See <xref target="fwd-context-fig1" format="default" sectionFormat="of" derivedContent="Figure 3"/>. </dd>
              <dt pn="section-4.1-8.2.2.3">0x1:</dt>
              <dd pn="section-4.1-8.2.2.4">24-bit double tagging identifiers. A service VLAN tag followed by a customer VLAN tag <xref target="IEEE.802.1Q_2018" format="default" sectionFormat="of" derivedContent="IEEE.802.1Q_2018"/>. 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="default" sectionFormat="of" derivedContent="Figure 4"/>.</dd>
              <dt pn="section-4.1-8.2.2.5">0x2:</dt>
              <dd pn="section-4.1-8.2.2.6">20-bit MPLS VPN label <xref target="RFC3032" format="default" sectionFormat="of" derivedContent="RFC3032"/> <xref target="RFC4364" format="default" sectionFormat="of" derivedContent="RFC4364"/>. See <xref target="fwd-context-fig3" format="default" sectionFormat="of" derivedContent="Figure 5"/>.</dd>
              <dt pn="section-4.1-8.2.2.7">0x3:</dt>
              <dd pn="section-4.1-8.2.2.8">24-bit virtual network identifier (VNI) <xref target="RFC8926" format="default" sectionFormat="of" derivedContent="RFC8926"/>. See <xref target="fwd-context-fig4" format="default" sectionFormat="of" derivedContent="Figure 6"/>. </dd>
              <dt pn="section-4.1-8.2.2.9">0x4:</dt>
              <dd pn="section-4.1-8.2.2.10">32-bit Session ID <xref target="RFC3931" format="default" sectionFormat="of" derivedContent="RFC3931"/>. This is called Key in GRE <xref target="RFC2890" format="default" sectionFormat="of" derivedContent="RFC2890"/>. See <xref target="fwd-context-fig5" format="default" sectionFormat="of" derivedContent="Figure 7"/>.</dd>
            </dl>
          </dd>
          <dt pn="section-4.1-8.3">Reserved (Resv):</dt>
          <dd pn="section-4.1-8.4">These bits in the context fields <bcp14>MUST</bcp14> be sent as zero and ignored on receipt.</dd>
        </dl>
      </section>
      <section anchor="tenant-sec" numbered="true" toc="include" removeInRFC="false" pn="section-4.2">
        <name slugifiedName="name-tenant-id">Tenant ID</name>
        <t indent="0" pn="section-4.2-1">
       Tenant identification is often used for segregation within a
       multi-tenant environment.  Orchestration system-generated Tenant
       IDs are an example of such data. This Context Header carries the value of the Tenant ID. Virtual Tenant Network (VTN) <xref target="OpenDaylight-VTN" format="default" sectionFormat="of" derivedContent="OpenDaylight-VTN"/> is an application that provides multi-tenant virtual networks on a Software-Defined Networking (SDN) controller.
        </t>
        <figure anchor="tenant-fig" align="left" suppress-title="false" pn="figure-8">
          <name slugifiedName="name-tenant-id-list">Tenant ID List</name>
          <artwork name="" type="" align="center" alt="" pn="section-4.2-2.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 = 0x05  |U|    Length   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                         Tenant ID                             ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t indent="0" pn="section-4.2-3">The fields are described as follows:</t>
        <dl newline="false" spacing="normal" indent="3" pn="section-4.2-4">
          <dt pn="section-4.2-4.1">Length:</dt>
          <dd pn="section-4.2-4.2">Indicates the length of the Tenant ID in octets (see <xref target="RFC8300" section="2.5.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8300#section-2.5.1" derivedContent="RFC8300"/>).</dd>
          <dt pn="section-4.2-4.3">Tenant ID:</dt>
          <dd pn="section-4.2-4.4">Represents an opaque value pointing to orchestration system-generated Tenant ID. The structure and semantics of this field are specific to the operator's deployment across its operational domain and are specified and assigned by an orchestration function. The specifics of that orchestration-based assignment are outside the scope of this document.</dd>
        </dl>
      </section>
      <section anchor="ingress-net-nodeid-sec" numbered="true" toc="include" removeInRFC="false" pn="section-4.3">
        <name slugifiedName="name-ingress-network-node-inform">Ingress Network Node Information</name>
        <t indent="0" pn="section-4.3-1">
       This Context Header carries a Node ID of the network node at which the packet entered the SFC-enabled domain. This node will necessarily be a classifier <xref target="RFC7665" format="default" sectionFormat="of" derivedContent="RFC7665"/>. In cases where the Service Path Identifier (SPI) identifies the ingress node, this Context Header is superfluous.
        </t>
        <figure anchor="ingress-net-nodeid-fig" align="left" suppress-title="false" pn="figure-9">
          <name slugifiedName="name-ingress-network-node-id">Ingress Network Node ID</name>
          <artwork name="" type="" align="center" alt="" pn="section-4.3-2.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 = 0x06  |U|   Length    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                        Node ID                                ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t indent="0" pn="section-4.3-3">The fields are described as follows:</t>
        <dl newline="false" spacing="normal" indent="3" pn="section-4.3-4">
          <dt pn="section-4.3-4.1">Length:</dt>
          <dd pn="section-4.3-4.2">Indicates the length of the Node ID in octets (see <xref target="RFC8300" section="2.5.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8300#section-2.5.1" derivedContent="RFC8300"/>).</dd>
          <dt pn="section-4.3-4.3">Node ID:</dt>
          <dd pn="section-4.3-4.4">Represents an opaque value of the ingress network Node ID. The structure 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-octet MAC address, an 8-octet MAC address (64-bit Extended Unique Identifier (EUI-64)), etc.</dd>
        </dl>
      </section>
      <section anchor="ingress-net-sitf-sec" numbered="true" toc="include" removeInRFC="false" pn="section-4.4">
        <name slugifiedName="name-ingress-network-source-inte">Ingress Network Source Interface</name>
        <t indent="0" pn="section-4.4-1">This context identifies the ingress interface of the ingress network node. The l2vlan (135), l3ipvlan (136), ipForward (142), and mpls (166) in <xref target="IANAifType" format="default" sectionFormat="of" derivedContent="IANAifType"/> are examples of source interfaces.
</t>
        <figure anchor="ingress-net-sitf-fig" align="left" suppress-title="false" pn="figure-10">
          <name slugifiedName="name-ingress-network-source-inter">Ingress Network Source Interface</name>
          <artwork name="" type="" align="center" alt="" pn="section-4.4-2.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 = 0x07  |U|    Length   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                     Source Interface                          ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t indent="0" pn="section-4.4-3">The fields are described as follows:</t>
        <dl newline="false" spacing="normal" indent="3" pn="section-4.4-4">
          <dt pn="section-4.4-4.1">Length:</dt>
          <dd pn="section-4.4-4.2">Indicates the length of the Source Interface in octets (see <xref target="RFC8300" section="2.5.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8300#section-2.5.1" derivedContent="RFC8300"/>).</dd>
          <dt pn="section-4.4-4.3">Source Interface:</dt>
          <dd pn="section-4.4-4.4">Represents an opaque value of the identifier of the ingress interface of the ingress network node.</dd>
        </dl>
      </section>
      <section anchor="flow-id-sec" numbered="true" toc="include" removeInRFC="false" pn="section-4.5">
        <name slugifiedName="name-flow-id">Flow ID</name>
        <t indent="0" pn="section-4.5-1">
    Flow ID provides a field in NSH MD Type 2 to label packets belonging to the same flow. For example, <xref target="RFC8200" format="default" sectionFormat="of" derivedContent="RFC8200"/> defines IPv6 Flow Label as Flow ID. Another example of Flow ID is how <xref target="RFC6790" format="default" sectionFormat="of" derivedContent="RFC6790"/> defines an entropy label that is generated based on flow information in the MPLS network. Absence of this field or
    a value of zero denotes that packets have not been labeled with a Flow ID.
</t>
        <figure anchor="flow-id-ipv6-fig1" align="left" suppress-title="false" pn="figure-11">
          <name slugifiedName="name-ipv6-flow-id">IPv6 Flow ID</name>
          <artwork name="" type="" align="center" alt="" pn="section-4.5-2.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 = 0x08  |U| Length = 4  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|CT=0x0 |   Reserved    |           IPv6 Flow ID                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <figure anchor="flow-id-mplse-fig2" align="left" suppress-title="false" pn="figure-12">
          <name slugifiedName="name-mpls-entropy-label">MPLS Entropy Label</name>
          <artwork name="" type="" align="center" alt="" pn="section-4.5-3.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 = 0x08  |U| Length = 4  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|CT=0x1 |   Reserved    |        MPLS entropy label             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t indent="0" pn="section-4.5-4">The fields are described as follows:</t>
        <dl newline="false" spacing="normal" indent="3" pn="section-4.5-5">
          <dt pn="section-4.5-5.1">Length:</dt>
          <dd pn="section-4.5-5.2">Indicates the length of the Flow ID in octets (see <xref target="RFC8300" section="2.5.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8300#section-2.5.1" derivedContent="RFC8300"/>). For example, the IPv6 Flow Label in <xref target="RFC8200" format="default" sectionFormat="of" derivedContent="RFC8200"/> is 20 bits long. An entropy label in the MPLS network in <xref target="RFC6790" format="default" sectionFormat="of" derivedContent="RFC6790"/> is also 20 bits long. </dd>
          <dt pn="section-4.5-5.3">Context Type (CT):</dt>
          <dd pn="section-4.5-5.4">
            <t indent="0" pn="section-4.5-5.4.1">This 4-bit field that defines the interpretation of the Flow ID field. Please see the IANA considerations in <xref target="iana-tlv-flowid-type" format="default" sectionFormat="of" derivedContent="Section 6.3"/>. This document defines these CT values:</t>
            <dl newline="false" spacing="normal" indent="6" pn="section-4.5-5.4.2">
              <dt pn="section-4.5-5.4.2.1">0x0:</dt>
              <dd pn="section-4.5-5.4.2.2">20-bit IPv6 Flow Label in <xref target="RFC8200" format="default" sectionFormat="of" derivedContent="RFC8200"/>. See <xref target="flow-id-ipv6-fig1" format="default" sectionFormat="of" derivedContent="Figure 11"/>. </dd>
              <dt pn="section-4.5-5.4.2.3">0x1:</dt>
              <dd pn="section-4.5-5.4.2.4">20-bit entropy label in the MPLS network in <xref target="RFC6790" format="default" sectionFormat="of" derivedContent="RFC6790"/>. See <xref target="flow-id-mplse-fig2" format="default" sectionFormat="of" derivedContent="Figure 12"/>.</dd>
            </dl>
          </dd>
          <dt pn="section-4.5-5.5">Reserved:</dt>
          <dd pn="section-4.5-5.6">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="include" removeInRFC="false" pn="section-4.6">
        <name slugifiedName="name-source-and-or-destination-g">Source and/or Destination Groups</name>
        <t indent="0" pn="section-4.6-1">
       Intent-based systems can use this data to express the logical
       grouping of source and/or destination objects.
       <xref target="OpenStack" format="default" sectionFormat="of" derivedContent="OpenStack"/> and <xref target="OpenDaylight" format="default" sectionFormat="of" derivedContent="OpenDaylight"/> provide examples of such a
       system. Each is expressed as a 32-bit opaque object.
        </t>
        <figure anchor="src-dst-group-fig" align="left" suppress-title="false" pn="figure-13">
          <name slugifiedName="name-source-destination-groups">Source/Destination Groups</name>
          <artwork name="" type="" align="center" alt="" pn="section-4.6-2.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 = 0x09  |U|  Length=8   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Source Group                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      Destination Group                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t indent="0" pn="section-4.6-3">
If there is no group information specified for the Source Group or Destination Group field, the field <bcp14>MUST</bcp14> be sent as zero and ignored on receipt.
</t>
      </section>
      <section anchor="policy-id-sec" numbered="true" toc="include" removeInRFC="false" pn="section-4.7">
        <name slugifiedName="name-policy-id">Policy ID</name>
        <t indent="0" pn="section-4.7-1">
       Traffic handling policies are often referred to by a system-generated identifier, which
       is then used by the devices to look up the policy's content
       locally.  For example, this identifier could be an index to an
       array, a lookup key, or a database ID.  The identifier allows
       enforcement agents or services to look up the content of their
       part of the policy. 
        </t>
        <figure anchor="policy-id-fig" align="left" suppress-title="false" pn="figure-14">
          <name slugifiedName="name-policy-id-2">Policy ID</name>
          <artwork name="" type="" align="center" alt="" pn="section-4.7-2.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 = 0x0A  |U|    Length   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                           Policy ID                           ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
        </figure>
        <t indent="0" pn="section-4.7-3">The fields are described as follows:</t>
        <dl newline="false" spacing="normal" indent="3" pn="section-4.7-4">
          <dt pn="section-4.7-4.1">Length:</dt>
          <dd pn="section-4.7-4.2">Indicates the length of the Policy ID in octets (see <xref target="RFC8300" section="2.5.1" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8300#section-2.5.1" derivedContent="RFC8300"/>).</dd>
          <dt pn="section-4.7-4.3">Policy ID:</dt>
          <dd pn="section-4.7-4.4">Represents an opaque value of the Policy ID.</dd>
        </dl>
        <t indent="0" pn="section-4.7-5">
This Policy ID is a general Policy ID, essentially a key to allow Service Functions (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" sectionFormat="of" derivedContent="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" format="default" sectionFormat="of" derivedContent="RFC8979"/>.
        
</t>
      </section>
    </section>
    <section anchor="security-sec" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-5-1">A misbehaving node from within the SFC-enabled domain may alter the content of the Context Headers, which may lead to service disruption. Such an attack is not unique to the Context Headers defined in this document. Measures discussed in <xref target="RFC8300" section="8" sectionFormat="of" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8300#section-8" derivedContent="RFC8300"/> describes the general security considerations for protecting the NSH. <xref target="RFC9145" format="default" sectionFormat="of" derivedContent="RFC9145"/> specifies methods of protecting the integrity of the NSH metadata. If the NSH includes the Message Authentication Code (MAC) and Encrypted Metadata Context Header <xref target="RFC9145" format="default" sectionFormat="of" derivedContent="RFC9145"/>, the authentication of the packet <bcp14>MUST</bcp14> be verified before using any data. If the verification fails, the receiver <bcp14>MUST</bcp14> stop processing the Variable-Length Context Headers and notify an operator.
</t>
      <t indent="0" pn="section-5-2">The security and privacy considerations for the 7 types of Context Headers specified above are discussed below. Since NSH-ignorant SFs will never see the NSH, then even if they are malign, they cannot compromise security or privacy based on the NSH or any of these Context Headers; however, they could cause compromise based on the rest of the packet. To the extent that any of these headers are included when they would be unneeded or have no effect, they provide a covert channel for the entity adding the Context Header to communicate a limited amount of arbitrary information to downstream entities within the SFC-enabled domain.</t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-5.1">
        <name slugifiedName="name-forwarding-context-2">Forwarding Context</name>
        <t indent="0" pn="section-5.1-1">All of the Forwarding Context variants specified in this document (those with CT values between 0 and 4) merely repeat a field that is available in the packet encapsulated by the NSH. These variants repeat that field in the NSH for convenience. Thus, there are no special security or privacy considerations in these cases. Any future new values of CT for the Forwarding Context must specify the security and privacy considerations for those extensions.
</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-5.2">
        <name slugifiedName="name-tenant-id-2">Tenant ID</name>
        <t indent="0" pn="section-5.2-1">The Tenant ID indicates the tenant to which traffic belongs and might be used to tie together and correlate packets for a tenant that some monitoring function could not otherwise group, especially if other possible identifiers were being randomized. As such, it may reduce security by facilitating traffic analysis but only within the SFC-enabled domain where this Context Header is present in packets.
</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-5.3">
        <name slugifiedName="name-ingress-network-node-informa">Ingress Network Node Information</name>
        <t indent="0" pn="section-5.3-1">The SFC-enabled domain manager normally operates the initial ingress/classifier node and is thus potentially aware of the information provided by this Context Header. Furthermore, in many cases, the SPI that will be present in the NSH identifies or closely constrains the ingress node. Also, in most cases, it is anticipated that many entities will be sending packets into an SFC-enabled domain through the same ingress node. Thus, under most circumstances, this Context Header is expected to weaken security and privacy to only a minor extent and only within the SFC-enabled domain.
</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-5.4">
        <name slugifiedName="name-ingress-node-source-interfa">Ingress Node Source Interface</name>
        <t indent="0" pn="section-5.4-1">This Context Header is likely to be meaningless unless the Ingress Network Node Information Context Header is also present. When that node information header is present, this source interface header provides a more fine-grained view of the source by identifying not just the initial ingress/classifier node but also the port of that node on which the data arrived. Thus, it is more likely to identify a specific source entity or at least to more tightly constrain the set of possible source entities than just the node information header. As a result, inclusion of this Context Header with the node information Context Header is potentially a greater threat to security and privacy than the node information header alone, but this threat is still constrained to the SFC-enabled domain.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-5.5">
        <name slugifiedName="name-flow-id-2">Flow ID</name>
        <t indent="0" pn="section-5.5-1">The variations of this Context Header specified in this document simply repeat fields already available in the packet and thus have no special security or privacy considerations. Any future new values of CT for the Flow ID must specify the security and privacy considerations for those extensions.
</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-5.6">
        <name slugifiedName="name-source-and-or-destination-gr">Source and/or Destination Groups</name>
        <t indent="0" pn="section-5.6-1">This Context Header provides additional information that might help identify the source and/or destination of packets. Depending on the granularity of the groups, it could either (1) distinguish packets as part of flows from and/or to objects where those flows could not otherwise be easily distinguished but appear to be part of one or fewer flows or (2) group packet flows that are from and/or to an object where those flows could not otherwise be easily grouped for analysis or another purpose. 
Thus, the presence of this Context Header with non-zero source and/or destination groups can, within the SFC-enabled domain, erode security and privacy to an extent that depends on the details of the grouping.
</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-5.7">
        <name slugifiedName="name-policy-id-3">Policy ID</name>
        <t indent="0" pn="section-5.7-1">
This Context Header carries an identifier that nodes in the SFC-enabled domain can 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 included. If there are such decisions, the information on which they are to be based needs to be included somewhere in the packet. There is no reason for inclusion in this Context Header to have any security or privacy considerations that would not apply to any other plaintext way of including such information. It may provide additional information to help identify a flow of data for analysis.
</t>
      </section>
    </section>
    <section anchor="iana-tlv-class-reg-sec" numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <section anchor="iana-tlv-class-context-type" numbered="true" toc="include" removeInRFC="false" pn="section-6.1">
        <name slugifiedName="name-md-type-2-context-types">MD Type 2 Context Types</name>
        <t indent="0" pn="section-6.1-1">
	IANA has assigned the following types (<xref target="type-values-tbl" format="default" sectionFormat="of" derivedContent="Table 1"/>) from the "NSH IETF-Assigned Optional Variable-Length Metadata Types" registry available at <xref target="IANA-NSH-MD2" format="default" sectionFormat="of" derivedContent="IANA-NSH-MD2"/>.
        </t>
        <table anchor="type-values-tbl" align="center" pn="table-1">
          <name slugifiedName="name-type-values">Type Values</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Value</th>
              <th align="center" colspan="1" rowspan="1">Description</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x04</td>
              <td align="center" colspan="1" rowspan="1">Forwarding Context</td>
              <td align="left" colspan="1" rowspan="1">RFC 9263</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x05</td>
              <td align="center" colspan="1" rowspan="1">Tenant ID</td>
              <td align="left" colspan="1" rowspan="1">RFC 9263</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x06</td>
              <td align="center" colspan="1" rowspan="1">Ingress Network Node ID</td>
              <td align="left" colspan="1" rowspan="1">RFC 9263</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x07</td>
              <td align="center" colspan="1" rowspan="1">Ingress Network Interface</td>
              <td align="left" colspan="1" rowspan="1">RFC 9263</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x08</td>
              <td align="center" colspan="1" rowspan="1">Flow ID</td>
              <td align="left" colspan="1" rowspan="1">RFC 9263</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x09</td>
              <td align="center" colspan="1" rowspan="1">Source and/or Destination Groups</td>
              <td align="left" colspan="1" rowspan="1">RFC 9263</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x0A</td>
              <td align="center" colspan="1" rowspan="1">Policy ID</td>
              <td align="left" colspan="1" rowspan="1">RFC 9263</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="iana-fc-type" numbered="true" toc="include" removeInRFC="false" pn="section-6.2">
        <name slugifiedName="name-forwarding-context-types">Forwarding Context Types</name>
        <t indent="0" pn="section-6.2-1">IANA has created a new subregistry for "Forwarding Context Types"  at <xref target="IANA-NSH-MD2" format="default" sectionFormat="of" derivedContent="IANA-NSH-MD2"/> as follows.
        </t>
        <t indent="0" pn="section-6.2-2">The registration policy is IETF Review.</t>
        <table anchor="Forwarding-CT-iana-tbl" align="center" pn="table-2">
          <name slugifiedName="name-forwarding-context-types-2">Forwarding Context Types</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Value</th>
              <th align="center" colspan="1" rowspan="1">Description</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x0</td>
              <td align="center" colspan="1" rowspan="1">12-bit VLAN identifier</td>
              <td align="left" colspan="1" rowspan="1">RFC 9263</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x1</td>
              <td align="center" colspan="1" rowspan="1">24-bit double tagging identifiers</td>
              <td align="left" colspan="1" rowspan="1">RFC 9263</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x2</td>
              <td align="center" colspan="1" rowspan="1">20-bit MPLS VPN label</td>
              <td align="left" colspan="1" rowspan="1">RFC 9263</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x3</td>
              <td align="center" colspan="1" rowspan="1">24-bit virtual network identifier (VNI)</td>
              <td align="left" colspan="1" rowspan="1">RFC 9263</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x4</td>
              <td align="center" colspan="1" rowspan="1">32-bit Session ID</td>
              <td align="left" colspan="1" rowspan="1">RFC 9263</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x5-0xE</td>
              <td align="center" colspan="1" rowspan="1">Unassigned</td>
              <td align="left" colspan="1" rowspan="1"/>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0xF</td>
              <td align="center" colspan="1" rowspan="1">Reserved</td>
              <td align="left" colspan="1" rowspan="1">RFC 9263</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="iana-tlv-flowid-type" numbered="true" toc="include" removeInRFC="false" pn="section-6.3">
        <name slugifiedName="name-flow-id-context-types">Flow ID Context Types</name>
        <t indent="0" pn="section-6.3-1">IANA has created a new subregistry for "Flow ID Context Types" at <xref target="IANA-NSH-MD2" format="default" sectionFormat="of" derivedContent="IANA-NSH-MD2"/> as follows.
        </t>
        <t indent="0" pn="section-6.3-2">The registration policy is IETF Review.</t>
        <table anchor="flow-id-CT-iana-tbl" align="center" pn="table-3">
          <name slugifiedName="name-flow-id-context-types-2">Flow ID Context Types</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Value</th>
              <th align="center" colspan="1" rowspan="1">Description</th>
              <th align="left" colspan="1" rowspan="1">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x0</td>
              <td align="center" colspan="1" rowspan="1">20-bit IPv6 Flow Label</td>
              <td align="left" colspan="1" rowspan="1">RFC 9263</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x1</td>
              <td align="center" colspan="1" rowspan="1">20-bit entropy label in the MPLS network</td>
              <td align="left" colspan="1" rowspan="1">RFC 9263</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0x2-0xE</td>
              <td align="center" colspan="1" rowspan="1">Unassigned</td>
              <td align="left" colspan="1" rowspan="1"/>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">0xF</td>
              <td align="center" colspan="1" rowspan="1">Reserved</td>
              <td align="left" colspan="1" rowspan="1">RFC 9263</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <references pn="section-7">
      <name slugifiedName="name-references">References</name>
      <references pn="section-7.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="IANA-NSH-MD2" target="https://www.iana.org/assignments/nsh" quoteTitle="true" derivedAnchor="IANA-NSH-MD2">
          <front>
            <title>Network Service Header (NSH) Parameters</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IEEE.802.1Q_2018" target="https://ieeexplore.ieee.org/document/8403927" quoteTitle="true" derivedAnchor="IEEE.802.1Q_2018">
          <front>
            <title>IEEE Standard for Local and Metropolitan Area Network -- Bridges and Bridged Networks</title>
            <author>
              <organization showOnFrontPage="true">IEEE</organization>
            </author>
            <date month="July" year="2018"/>
          </front>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S" surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t indent="0">In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized.  This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC3931" target="https://www.rfc-editor.org/info/rfc3931" quoteTitle="true" derivedAnchor="RFC3931">
          <front>
            <title>Layer Two Tunneling Protocol - Version 3 (L2TPv3)</title>
            <author fullname="J. Lau" initials="J" role="editor" surname="Lau"/>
            <author fullname="M. Townsley" initials="M" role="editor" surname="Townsley"/>
            <author fullname="I. Goyret" initials="I" role="editor" surname="Goyret"/>
            <date month="March" year="2005"/>
            <abstract>
              <t indent="0">This document describes "version 3" of the Layer Two Tunneling Protocol (L2TPv3).  L2TPv3 defines the base control protocol and encapsulation for tunneling multiple Layer 2 connections between two IP nodes.  Additional documents detail the specifics for each data link type being emulated. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3931"/>
          <seriesInfo name="DOI" value="10.17487/RFC3931"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B" surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t indent="0">RFC 2119 specifies common key words that may be used in protocol specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8300" target="https://www.rfc-editor.org/info/rfc8300" quoteTitle="true" derivedAnchor="RFC8300">
          <front>
            <title>Network Service Header (NSH)</title>
            <author fullname="P. Quinn" initials="P" role="editor" surname="Quinn"/>
            <author fullname="U. Elzur" initials="U" role="editor" surname="Elzur"/>
            <author fullname="C. Pignataro" initials="C" role="editor" surname="Pignataro"/>
            <date month="January" year="2018"/>
            <abstract>
              <t indent="0">This document describes a Network Service Header (NSH) imposed on packets or frames to realize Service Function Paths (SFPs).  The NSH also provides a mechanism for metadata exchange along the instantiated service paths.  The NSH is the Service Function Chaining (SFC) encapsulation required to support the SFC architecture (defined in RFC 7665).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8300"/>
          <seriesInfo name="DOI" value="10.17487/RFC8300"/>
        </reference>
        <reference anchor="RFC9145" target="https://www.rfc-editor.org/info/rfc9145" quoteTitle="true" derivedAnchor="RFC9145">
          <front>
            <title>Integrity Protection for the Network Service Header (NSH) and Encryption of Sensitive Context Headers</title>
            <author fullname="M. Boucadair" initials="M" surname="Boucadair"/>
            <author fullname="T. Reddy.K" initials="T" surname="Reddy.K"/>
            <author fullname="D. Wing" initials="D" surname="Wing"/>
            <date month="December" year="2021"/>
            <abstract>
              <t indent="0">This specification presents an optional method to add integrity protection directly to the Network Service Header (NSH) used for Service Function Chaining (SFC).  Also, this specification allows for the encryption of sensitive metadata (MD) that is carried in the NSH.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9145"/>
          <seriesInfo name="DOI" value="10.17487/RFC9145"/>
        </reference>
      </references>
      <references pn="section-7.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="IANAifType" target="https://www.iana.org/assignments/ianaiftype-mib" quoteTitle="true" derivedAnchor="IANAifType">
          <front>
            <title>IANAifType-MIB DEFINITIONS</title>
            <author>
              <organization showOnFrontPage="true">IANA</organization>
            </author>
            <date year="2021"/>
          </front>
        </reference>
        <reference anchor="OpenDaylight" target="https://docs.opendaylight.org/en/stable-fluorine/user-guide/group-based-policy-user-guide.html?highlight=group%20policy#" quoteTitle="true" derivedAnchor="OpenDaylight">
          <front>
            <title>Group Based Policy User Guide</title>
            <author>
              <organization showOnFrontPage="true">OpenDaylight</organization>
            </author>
            <date year="2021"/>
          </front>
        </reference>
        <reference anchor="OpenDaylight-VTN" target="https://nexus.opendaylight.org/content/sites/site/org.opendaylight.docs/master/userguide/manuals/userguide/bk-user-guide/content/_vtn.html" quoteTitle="true" derivedAnchor="OpenDaylight-VTN">
          <front>
            <title>OpenDaylight VTN</title>
            <author>
              <organization showOnFrontPage="true">OpenDaylight</organization>
            </author>
            <date year="2021"/>
          </front>
        </reference>
        <reference anchor="OpenStack" target="https://wiki.openstack.org/wiki/GroupBasedPolicy" quoteTitle="true" derivedAnchor="OpenStack">
          <front>
            <title>GroupBasedPolicy</title>
            <author>
              <organization showOnFrontPage="true">OpenStack</organization>
            </author>
            <date year="2021"/>
          </front>
        </reference>
        <reference anchor="RFC2890" target="https://www.rfc-editor.org/info/rfc2890" quoteTitle="true" derivedAnchor="RFC2890">
          <front>
            <title>Key and Sequence Number Extensions to GRE</title>
            <author fullname="G. Dommety" initials="G" surname="Dommety"/>
            <date month="September" year="2000"/>
            <abstract>
              <t indent="0">This document describes extensions by which two fields, Key and Sequence Number, can be optionally carried in the GRE Header. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2890"/>
          <seriesInfo name="DOI" value="10.17487/RFC2890"/>
        </reference>
        <reference anchor="RFC3032" target="https://www.rfc-editor.org/info/rfc3032" quoteTitle="true" derivedAnchor="RFC3032">
          <front>
            <title>MPLS Label Stack Encoding</title>
            <author fullname="E. Rosen" initials="E" surname="Rosen"/>
            <author fullname="D. Tappan" initials="D" surname="Tappan"/>
            <author fullname="G. Fedorkow" initials="G" surname="Fedorkow"/>
            <author fullname="Y. Rekhter" initials="Y" surname="Rekhter"/>
            <author fullname="D. Farinacci" initials="D" surname="Farinacci"/>
            <author fullname="T. Li" initials="T" surname="Li"/>
            <author fullname="A. Conta" initials="A" surname="Conta"/>
            <date month="January" year="2001"/>
            <abstract>
              <t indent="0">This document specifies the encoding to be used by an LSR in order to transmit labeled packets on Point-to-Point Protocol (PPP) data links, on LAN data links, and possibly on other data links as well.  This document also specifies rules and procedures for processing the various fields of the label stack encoding. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3032"/>
          <seriesInfo name="DOI" value="10.17487/RFC3032"/>
        </reference>
        <reference anchor="RFC4364" target="https://www.rfc-editor.org/info/rfc4364" quoteTitle="true" derivedAnchor="RFC4364">
          <front>
            <title>BGP/MPLS IP Virtual Private Networks (VPNs)</title>
            <author fullname="E. Rosen" initials="E" surname="Rosen"/>
            <author fullname="Y. Rekhter" initials="Y" surname="Rekhter"/>
            <date month="February" year="2006"/>
            <abstract>
              <t indent="0">This document describes a method by which a Service Provider may use an IP backbone to provide IP Virtual Private Networks (VPNs) for its customers.  This method uses a "peer model", in which the customers' edge routers (CE routers) send their routes to the Service Provider's edge routers (PE routers); there is no "overlay" visible to the customer's routing algorithm, and CE routers at different sites do not peer with each other.  Data packets are tunneled through the backbone, so that the core routers do not need to know the VPN routes. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4364"/>
          <seriesInfo name="DOI" value="10.17487/RFC4364"/>
        </reference>
        <reference anchor="RFC6790" target="https://www.rfc-editor.org/info/rfc6790" quoteTitle="true" derivedAnchor="RFC6790">
          <front>
            <title>The Use of Entropy Labels in MPLS Forwarding</title>
            <author fullname="K. Kompella" initials="K" surname="Kompella"/>
            <author fullname="J. Drake" initials="J" surname="Drake"/>
            <author fullname="S. Amante" initials="S" surname="Amante"/>
            <author fullname="W. Henderickx" initials="W" surname="Henderickx"/>
            <author fullname="L. Yong" initials="L" surname="Yong"/>
            <date month="November" year="2012"/>
            <abstract>
              <t indent="0">Load balancing is a powerful tool for engineering traffic across a network.  This memo suggests ways of improving load balancing across MPLS networks using the concept of "entropy labels".  It defines the concept, describes why entropy labels are useful, enumerates properties of entropy labels that allow maximal benefit, and shows how they can be signaled and used for various applications.  This document updates RFCs 3031, 3107, 3209, and 5036. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6790"/>
          <seriesInfo name="DOI" value="10.17487/RFC6790"/>
        </reference>
        <reference anchor="RFC7665" target="https://www.rfc-editor.org/info/rfc7665" quoteTitle="true" derivedAnchor="RFC7665">
          <front>
            <title>Service Function Chaining (SFC) Architecture</title>
            <author fullname="J. Halpern" initials="J" role="editor" surname="Halpern"/>
            <author fullname="C. Pignataro" initials="C" role="editor" surname="Pignataro"/>
            <date month="October" year="2015"/>
            <abstract>
              <t indent="0">This document describes an architecture for the specification, creation, and ongoing maintenance of Service Function Chains (SFCs) in a network.  It includes architectural concepts, principles, and components used in the construction of composite services through deployment of SFCs, with a focus on those to be standardized in the IETF.  This document does not propose solutions, protocols, or extensions to existing protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7665"/>
          <seriesInfo name="DOI" value="10.17487/RFC7665"/>
        </reference>
        <reference anchor="RFC8200" target="https://www.rfc-editor.org/info/rfc8200" quoteTitle="true" derivedAnchor="RFC8200">
          <front>
            <title>Internet Protocol, Version 6 (IPv6) Specification</title>
            <author fullname="S. Deering" initials="S" surname="Deering"/>
            <author fullname="R. Hinden" initials="R" surname="Hinden"/>
            <date month="July" year="2017"/>
            <abstract>
              <t indent="0">This document specifies version 6 of the Internet Protocol (IPv6).  It obsoletes RFC 2460.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="86"/>
          <seriesInfo name="RFC" value="8200"/>
          <seriesInfo name="DOI" value="10.17487/RFC8200"/>
        </reference>
        <reference anchor="RFC8926" target="https://www.rfc-editor.org/info/rfc8926" quoteTitle="true" derivedAnchor="RFC8926">
          <front>
            <title>Geneve: Generic Network Virtualization Encapsulation</title>
            <author fullname="J. Gross" initials="J" role="editor" surname="Gross"/>
            <author fullname="I. Ganga" initials="I" role="editor" surname="Ganga"/>
            <author fullname="T. Sridhar" initials="T" role="editor" surname="Sridhar"/>
            <date month="November" year="2020"/>
            <abstract>
              <t indent="0">Network virtualization involves the cooperation of devices with a wide variety of capabilities such as software and hardware tunnel endpoints, transit fabrics, and centralized control clusters.  As a result of their role in tying together different elements of the system, the requirements on tunnels are influenced by all of these components.  Therefore, flexibility is the most important aspect of a tunneling protocol if it is to keep pace with the evolution of technology.  This document describes Geneve, an encapsulation protocol designed to recognize and accommodate these changing capabilities and needs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8926"/>
          <seriesInfo name="DOI" value="10.17487/RFC8926"/>
        </reference>
        <reference anchor="RFC8979" target="https://www.rfc-editor.org/info/rfc8979" quoteTitle="true" derivedAnchor="RFC8979">
          <front>
            <title>Subscriber and Performance Policy Identifier Context Headers in the Network Service Header (NSH)</title>
            <author fullname="B. Sarikaya" initials="B" surname="Sarikaya"/>
            <author fullname="D. von Hugo" initials="D" surname="von Hugo"/>
            <author fullname="M. Boucadair" initials="M" surname="Boucadair"/>
            <date month="February" year="2021"/>
            <abstract>
              <t indent="0">This document defines the Subscriber and Performance Policy Identifier Context Headers.  These Variable-Length Context Headers can be carried in the Network Service Header (NSH) and are used to inform Service Functions (SFs) of subscriber- and performance-related information for the sake of policy enforcement and appropriate Service Function Chaining (SFC) operations.  The structure of each Context Header and their use and processing by NSH-aware nodes are described.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8979"/>
          <seriesInfo name="DOI" value="10.17487/RFC8979"/>
        </reference>
      </references>
    </references>
    <section numbered="false" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgments">Acknowledgments</name>
      <t indent="0" pn="section-appendix.a-1">
	The authors would like to thank <contact fullname="Paul Quinn"/>, <contact fullname="Behcet Sarikaya"/>, <contact fullname="Dirk von Hugo"/>, <contact fullname="Mohamed Boucadair"/>, <contact fullname="Gregory Mirsky"/>, and <contact fullname="Joel Halpern"/> for providing invaluable concepts and content for this document.
      </t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Yuehua Wei" initials="Y." surname="Wei" role="editor">
        <organization showOnFrontPage="true">ZTE Corporation</organization>
        <address>
          <postal>
            <street>No.50, Software Avenue</street>
            <city>Nanjing</city>
            <region/>
            <code>210012</code>
            <country>China</country>
          </postal>
          <email>wei.yuehua@zte.com.cn</email>
        </address>
      </author>
      <author initials="U." surname="Elzur" fullname="Uri Elzur">
        <organization showOnFrontPage="true">Intel</organization>
        <address>
          <email>uri.elzur@intel.com</email>
        </address>
      </author>
      <author initials="S." surname="Majee" fullname="Sumandra Majee">
        <organization showOnFrontPage="true">Individual Contributor</organization>
        <address>
          <email>Sum.majee@gmail.com</email>
        </address>
      </author>
      <author initials="C." surname="Pignataro" fullname="Carlos Pignataro">
        <organization showOnFrontPage="true">Cisco</organization>
        <address>
          <email>cpignata@cisco.com</email>
        </address>
      </author>
      <author initials="D." surname="Eastlake 3rd" fullname="Donald E. Eastlake, 3rd">
        <organization showOnFrontPage="true">Futurewei Technologies</organization>
        <address>
          <postal>
            <street>2386 Panoramic Circle</street>
            <city>Apopka</city>
            <region>FL</region>
            <code>32703</code>
            <country>United States of America</country>
          </postal>
          <phone>+1-508-333-2270</phone>
          <email>d3e3e3@gmail.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
