<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.26 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-huang-spring-sr-hsfc-00" category="std" consensus="true" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.0 -->
  <front>
    <title abbrev="SR-based hSFC">Hierarchical Service Function Chaining with Segment Routing</title>
    <seriesInfo name="Internet-Draft" value="draft-huang-spring-sr-hsfc-00"/>
    <author initials="H." surname="Huang" fullname="Hongyi Huang">
      <organization>Huawei</organization>
      <address>
        <email>hongyi.huang@huawei.com</email>
      </address>
    </author>
    <author initials="X." surname="Chen" fullname="Xia Chen">
      <organization>Huawei</organization>
      <address>
        <email>jescia.chenxia@huawei.com</email>
      </address>
    </author>
    <author initials="Z." surname="Li" fullname="Zhenbin Li">
      <organization>Huawei</organization>
      <address>
        <email>lizhenbin@huawei.com</email>
      </address>
    </author>
    <date year="2023" month="March" day="13"/>
    <area>Routing Area</area>
    <workgroup>SPRING</workgroup>
    <abstract>
      <t>SFC offers ordered list of service functions applied to packets, include traditional network service functions and application-specific functions.
hSFC defines a hierarchical architecture to deploy SFC in large networks, typically spanning multiple data centers or domains.</t>
      <t>This document complements RFC 8459 to enable SR-based hSFC. This document specifies and categorizes the interactions between upper-level domains and lower-level sub-domains and appends SR-specific support in constructing hSFC.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="intro">
      <name>Introduction</name>
      <t>Service Function Chaining (SFC) defines an ordered set of service functions and subsequent "steering" of traffic through them. The architecture of SFC is defined in <xref target="RFC7665"/>.</t>
      <t>To ease the problem of implementing SFC across a large, geographically dispersed network, hSFC<xref target="RFC8459"/> is proposed to decomposing a large domain to multiple SFC-enabled sub-domains. 
The topmost level domain encompasses the entire network domain to be managed, and each sub-domain may support a subset of the Service Functions (SFs). 
Such hierarchical approach can reduce SFC's management complexity and improve the scalability.</t>
      <t>A simple example to deploy hSFC is where data centers with scattered locations host different types of service functions on a range of hardware and services are provided by SFCs spanning multiple data centers with each as an independent SFC sub-domain <xref target="I-D.draft-ietf-sfc-dc-use-cases"/>.</t>
      <t>SFC can be implemented based on Network Service Header (NSH) <xref target="RFC8300"/>, which requires a mapping between both Service Path Identifier (SPI) and Service Index (SI) to next-hop forwarding. SFC can also be instantiated based on SR<xref target="I-D.draft-ietf-spring-sr-service-programming"/>, where service SIDs can be combined in a SID-list explicitly indicated by the source SR node to represent an SFC.</t>
      <t><xref target="RFC8459"/> proposes the hSFC data plane solution based on the assumption of NSH. As a supplement, this document is also based on hierarchical SFC but utilizes SR-based service programming <xref target="I-D.draft-ietf-spring-sr-service-programming"/> instead.</t>
      <t>This document follows the same concept of Internal Boundary Node (IBN) defined in <xref target="RFC8459"/> to act as a gateway between upper-level domain and lower-level sub-domain. 
This document mainly describes possible interactions of the upper and lower domains at the IBN using taxonomy and appends SR-specific support in constructing hSFC. This document assumes IBN is SR-aware and follows similar endpoint behavior in <xref target="I-D.draft-ietf-spring-sr-service-programming"/>.</t>
      <t><xref target="I-D.draft-ietf-spring-nsh-sr"/> provides another SR-based method (i.e., SR-based SFC with integrated NSH service plane) to implement SFC in single domain. The methods specified in this document still apply to that scenario with some modifications and this may be considered in future work.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The terms in this document are defined in <xref target="RFC7665"/>, <xref target="RFC8459"/> and <xref target="I-D.draft-ietf-spring-sr-service-programming"/>.</t>
        <t>The following lists widely used terms in this document.</t>
        <t>CF: Classifier</t>
        <t>IBN: Internal Boundary Node</t>
        <t>NSH: Network Service Header</t>
        <t>SF: Service Function</t>
        <t>SFC: Service Function Chaining</t>
        <t>hSFC: Hierarchical Service Function Chaining</t>
        <t>SR: Segment Routing</t>
        <t>SC: Service Chain</t>
        <t>TTL: Time To Live</t>
        <t>NAT: Network Address Translator</t>
      </section>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>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"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      </section>
    </section>
    <section anchor="ibn">
      <name>Internal Boundary Node (IBN)</name>
      <t>This document follows the concept of Internal Boundary Node (IBN) defined in <xref target="RFC8459"/>, which acts as a gateway to connect the upper and lower domains.</t>
      <t><xref target="hSFC"/> depicts an example architecture of hSFC. In SR-based hSFC, an IBN acts as an SR Proxy in the upper-level domain and as a classifier in the lower-level domain . The CF within IBN performs lower-level path selection (reclassification in sub-domain) and SR Proxy within IBN is responsible to handle upper-level SR paths, including caching and restoring them whenever the packets exit the sub-domain via IBN. IBN also realizes some cross-domain information transfer (e.g., SFC metadata).</t>
      <t>In the example, packets are classified to traverse SC#1 in the upper-level classifier. When they arrives at the IBN, they're further re-classified by lower-level classifier to enter either SC#2 or SC#3. After the packets are processed by last SF (i.e., SF#2.2 or SF#3.2) of each lower-level SC, they're returned to IBN and then resume SC#1 traversal.</t>
      <figure anchor="hSFC">
        <name>Illustration of hSFC Architecture</name>
        <artwork><![CDATA[
                                 +------------+
                                 |            |
              +--------+         |    IBN     |
              | Upper- |  SC#1   |            |       SC#1
              | level  +-------> | +--------+ +-------------->
              |  CF    |         | |  SFF   | |
              +--------+         | +--------+ |
                                 |            |
                                 | +--------+ |
                                 | | Lower- | |
                 ***************** | level  | *****************
                 * sub-domain    | |   CF   | |               *
                 *        +----+-+-+--------^<+--------+      *
                 *        |    |            |          |      *
                 *        |    |            |          |      *
                 *        | +--v----+      ++------+   |      *
                 *        | | SF#3.1+------> SF#3.2|   |      *
                 *        | +-------+      +-------+   |      *
                 *        |                            |      *
                 *      +-v-------+            +-------+-+    *
                 *      | SF#2.1  +------------> SF#2.2  |    *
                 *      +---------+            +---------+    *
                 *                                            *
                 **********************************************
]]></artwork>
      </figure>
      <section anchor="path-selectionre-classification">
        <name>Path Selection/(Re-)Classification</name>
        <t>The classification in upper-level domain (SR-based) follows the definition in <xref target="I-D.draft-ietf-spring-sr-service-programming"/>. The packets steered into an SR policy carry an ordered list of segments associated with that SR policy including corresponding IBNs<xref target="RFC9256"/>.</t>
        <t>The re-classification in lower-level domain varies according to the SFC deployment method applied in the sub-domain, <xref target="I-D.draft-ietf-spring-sr-service-programming"/> for SR-based SFC and <xref target="RFC8300"/> for NSH-based SFC.</t>
      </section>
      <section anchor="path-restoration">
        <name>Path Restoration</name>
        <t>The information of upper-level SC is either not required or not available in the sub-domain. As per <xref target="RFC8459"/>, it's recommended to store such information somewhere, within the packets themselves or in the IBN. At the termination of an SC in the sub-domain, the packets <bcp14>SHOULD</bcp14> be restored to the original upper-level SC to resume remaining SFC.</t>
        <t>The following methods are categorized into stateful and stateless according to whether the state is stored in IBN.</t>
        <section anchor="stateful-ibn">
          <name>Stateful IBN</name>
          <t>The stateful method needs to store the state in the IBN, including the upper-level SC path (e.g., the whole IPv6 header, or partial fields such as SRH that are necessary to recover the path) and other auxiliary information (e.g., SFC metadata), and restore the state in order to recover the upper-level path when packets are returned to the IBN in the sub-domain.</t>
          <t>The state saved in the IBN needs to be organized by selecting an appropriate index method so that the upper-level path can be accurately restored when exiting the sub-domain and consequently packets resume the remaining SFC processing.</t>
          <t>The downside of stateful method is that it requires IBN to maintain scalability to handle the state explosion in large-scale networks with massive flows. The design of scalable IBNs is out-of-scope in this document.</t>
          <t>This document further categorizes stateful methods with different indexing system.</t>
          <section anchor="flow-indexed-state">
            <name>Flow-indexed State</name>
            <t>IBN can identify traffic in the granularity of flow such as five-tuple (source address, destination address, source port, destination port) , and use such information as an index to cache the state. Assume that the flow-specific information should not be modified in the lower-level domain, the path can be later restored by adopting the same identification.</t>
            <t>However, this information may be modified in the lower-level domain (SFs such as NAT may modify the fields in the five-tuple). In this case, it is necessary to assign flow IDs with flow granularity in the IBN as described in <xref section="4.1.5" sectionFormat="of" target="RFC8459"/> and encapsulate it in the packet (e.g., carried by metadata as shown in <xref target="flow-id"/>), and use flow ID to index the state when exiting the sub-domain, with the assumption that this flow ID <bcp14>MUST NOT</bcp14> be modified along the path.</t>
            <figure anchor="flow-id">
              <name>Encode Flow ID in Metadata</name>
              <artwork><![CDATA[
                +----------------------+
                |     Lower-level      |
                |     SFC Header       |
                +----------------------+
                |      Metadata        |
                |     (Flow ID)        |
                +----------------------+
                |   Original Packet    |
                +----------------------+
]]></artwork>
            </figure>
          </section>
          <section anchor="path-indexed-state">
            <name>Path-indexed State</name>
            <t>This section describes how to index state in IBN by path-specific identifier.</t>
            <section anchor="upper-level-path-id">
              <name>Upper-level Path ID</name>
              <t>As per <xref target="RFC8459"/>, SPI is used to distinguish different upper-level SC paths which can be used as an index method. As for SR-based SFC where service information is carried by data plane (e.g., SID list), the data plane information can be utilized to recognize different upper-level SC paths.</t>
              <t>A passive method is to reuse the unique identifier of the upper-level path provided by native data plane mechanism such as path segment <xref target="I-D.draft-ietf-spring-srv6-path-segment"/> to index the states in IBN and encapsulate it in the metadata of packets throughout the sub-domain whereas the upper-level data plane information is thereby stripped and cached in IBN. Such path-specific identifiers can be used to index the state and perform path recovery at the termination of sub-domain in the IBN.</t>
              <t>A proactive method is to compute and assign the path ID based of hash value of data plane information (e.g., source address and segment list) when the packets arrived at IBN. The packets would carry this path ID in metadata within the sub-domain. This identifier is also used to index the state and realize path restoration when the packets terminates sub-domain SC at the exit of IBN.</t>
              <t>The assumption of the above two methods is that the sub-domain <bcp14>MUST NOT</bcp14> modify the path ID carried by metadata in the packets.</t>
            </section>
            <section anchor="lower-level-path-id">
              <name>Lower-level Path ID</name>
              <t>When the IBN reclassifies the packets, it can uniquely assign unique path ID to the selected lower-level path. This path ID is utilized to index the state and also be carried by the packet in order to restore the upper-level state, following the aforementioned methods as upper-level path ID.</t>
              <t>This method can only be effective assuming the traffic from different upper-level SCs <bcp14>MUST NOT</bcp14> be re-classified to the same lower-level SC. Otherwise, the same path ID will be ambiguously mapped into multiple upper-level path states.</t>
              <t><strong>Comparison</strong>: Typically, a class of flows may be classified into the same service function path. Therefore, flow-indexed method needs to assign more flow-specific identifiers (as index) and store more corresponding states (as value) to realize path restoration compared with path-indexed one.</t>
            </section>
          </section>
          <section anchor="sid-bound-state">
            <name>SID-bound State</name>
            <t><xref target="I-D.draft-ietf-spring-sr-service-programming"/> proposes SR proxies to support SR-unaware SFs so that the SFs are agnostic about the SR network. This concept can also apply in hSFC since the lower-level SFC sub-domain is agnostic about the upper-level SR network. 
Therefore, SR-based hSFC can reuse the architecture of SR proxies (either static or dynamic) defined in <xref target="I-D.draft-ietf-spring-sr-service-programming"/> and thus, realize incremental deployment from single-layer SR SFC to hierarchical one. In such case, an IBN is composed of an SR Proxy in place of SFF in <xref target="hSFC"/> and an additional sub-domain classifier. The SR Proxy and the classifier could be deployed in either co-located or separate devices.</t>
            <t>As shown in <xref target="sr-proxy"/>, IBN in SR-based hSFC could be bound with SID in the granularity of upper-level path. As per <xref target="I-D.draft-ietf-spring-sr-service-programming"/>, the SID is bound to a pair of directed interfaces (i.e., IFACE-IN and IFACE-OUT) on the proxy, where the matched traffic is sent via IFACE-OUT towards the associated lower-level CF and receiving the traffic returning from the CF via IFACE-IN. 
When the destination address of a packet matches the bound SID entry in the FIB of the SR-aware IBN, IBN decapsulates the upper-level SR Header of the packet and stores the state indexed by the receiving interface(IFACE-IN). After classified by the CF, lower-level SR header (if sub-domain supports SR-based SFC) will be encapsulated to the original packet in order for sub-domain SFC traversal.</t>
            <figure anchor="sr-proxy">
              <name>Example of IBN Evolving from SR Proxy</name>
              <artwork><![CDATA[
                  +--------------+                +--------------+
                  |  Upper-level |                |  Upper-level |
                  |   SR Header  |                |   SR Header  |
                  +--------------+                +--------------+
                  |   Original   |                |   Original   |
                  |    Packet    |                |    Packet    |
                  +--------------+                +--------------+

                             ~~~~~~~~~~~~~~~~~~~~~~~~~
                             ~         IBN           ~
                             ~                       ~
                             ~ +-------------------+ ~
            +--------+       ~ |     SR Proxy      | ~
            | Upper- | SC#1  ~ | +-------+-------+ | ~    SC#1
            | level  +------>~ | | IFACE | IFACE | | ~--------->
            |  CF    | (1)   ~ +-+  OUT  |  IN   +-+ ~    (3)
            +--------+       ~   +-------+-------+   ~
                             ~                       ~
                             ~   +---------------+   ~
                             ~   |  Lower-level  |   ~
                             ~~~~|      CF       |~~~~
                    *************|               |**************
                    * sub-domain +--+--------^---+             *
                    *               |        |                 *
                    *        +----+-+        +---^-------+     *
                    *        |    |              |       |     *
                    *        | +--v----+      +--+----+  |     *
                    *        | | SF#3.1+------> SF#3.2|  |     *
                    *        | +-------+      +-------+  |     *
                    *        |                           |     *
                    *      +-v-------+            +------+-+   *
                    *      | SF#2.1  +------------> SF#2.2 |   *
                    *      +---------+    (2)     +--------+   *
                    ********************************************

                                   +--------------+
                                   |  Lower-level |
                                   |   SR Header  |
                                   +--------------+
                                   |   Original   |
                                   |    Packet    |
                                   +--------------+

]]></artwork>
            </figure>
          </section>
        </section>
        <section anchor="stateless-ibn">
          <name>Stateless IBN</name>
          <t>Compared with the stateful method, when entering the sub-domain, the stateless method does not require to store the state in the IBN locally. All upper-level path states are carried along with the packets themselves by either metadata or header encapsulation described below.</t>
          <t>The disadvantage is that it will enlarge the original packet header, which may encounter MTU problems and reduce transmission efficiency in the sub-domains.</t>
          <t>As the state is no longer stored in the IBN, when the sub-domain completes lower-level SFP, it is no longer required to return to the centralized IBN for the recovery of the upper-level path.
Especially when some nodes (e.g., the last SF/SFF in lower-level path) are capable of restoring the upper-level SFP from the packet as IBN does, these nodes can extract the path information themselves without packets' going back to IBN. Furthermore, the packet can be directly forward to next-hop of upper-level path if the upper-level routing policy is visible to the sub-domain. This optimization would reduce the workload of the centralized IBN, promoting the scalability and reliability.</t>
          <t>There are generally two ways to carry upper-level path state within the packet: metadata and header encapsulation.</t>
          <section anchor="metadata">
            <name>Metadata</name>
            <t>In <xref section="7" sectionFormat="of" target="I-D.draft-ietf-spring-sr-service-programming"/> and <xref section="2" sectionFormat="of" target="RFC8300"/>, several methods of SFC metadata are defined, most of which are avaiable to take along upper-level path state as shown in <xref target="path-state"/>.</t>
            <figure anchor="path-state">
              <name>Encode Upper-level Path State in Metadata</name>
              <artwork><![CDATA[
                  +----------------------+
                  |     Lower-level      |
                  |     SFC Header       |
                  +----------------------+
                  |      Metadata        |
                  |    (Upper-level      |
                  |      Path State)     |
                  +----------------------+
                  |   Original Packet    |
                  +----------------------+
]]></artwork>
            </figure>
            <t>In such case, SFs in the sub-domain are all required to support the recognition of the metadata it uses. Therefore, the inner payload can be processed by transparently skipping the metadata.</t>
          </section>
          <section anchor="header-encapsulation">
            <name>Header Encapsulation</name>
            <t>The header encapsulation method is to nest the upper-level SR header between the header of the lower-level SFP and the inner payload as illustrated in <xref target="sr-encap"/> and <xref target="nsh-encap"/>. This requires all SFs in the sub-domain to be able to identify the upper-level IPv6 and extension header nested behind lower-level SFC header(e.g., SR or NSH). Therefore, the inner payload can be processed by transparently skipping the upper-SR header.</t>
            <figure anchor="sr-encap">
              <name>Encapsulation for SR-based Sub-domain</name>
              <artwork><![CDATA[
                 +----------------------+
                 |                      |
                 |   Lower-SR Header    |
                 |                      |
                 +----------------------+
                 |                      |
                 |   Upper-SR Header    |
                 |                      |
                 +----------------------+
                 |                      |
                 |   Original Packet    |
                 |                      |
                 +----------------------+
]]></artwork>
            </figure>
            <figure anchor="nsh-encap">
              <name>Encapsulation for NSH-based Sub-domain</name>
              <artwork><![CDATA[
                 +----------------------+
                 |                      |
                 |  Ourter-transport    |
                 |    Encapsulation     |
                 +----------------------+
                 |                      |
                 |   Lower-NSH Header   |
                 |                      |
                 +----------------------+
                 |                      |
                 |   Upper-SR Header    |
                 |                      |
                 +----------------------+
                 |                      |
                 |   Original Packet    |
                 |                      |
                 +----------------------+
]]></artwork>
            </figure>
            <t><strong>Comparison</strong>: The encapsulation method requires to retain the whole upper-level header. In comparison, metadata can only carry partial information that is sufficient to reconstruct the upper-level path.</t>
          </section>
        </section>
      </section>
    </section>
    <section anchor="control-plane">
      <name>Control Plane</name>
      <t>In addition to the hierarchical data plane, the control plane in hSFC is also hierarchical. In other words, the control planes across different domains can be invisible to each other. For example, a lower-level domain is agnostic about network service provided in neither upper-level domain nor other sub-domains, and vice versa.</t>
      <t>In the case that the lower-level is willing to expose more information, SFCs can be orchestrated in more globally optimized manner, which, nevertheless, gradually walks away from the "hierarchical principle" and complicates the management and deployment.</t>
      <t><xref target="RFC9015"/> and <xref target="I-D.draft-li-spring-sr-sfc-control-plane-framework"/> provides some solutions for control plane of NSH and SR, respectively.
But the control plane of hSFC still needs to be completed.</t>
    </section>
    <section anchor="experimental-considerations">
      <name>Experimental Considerations</name>
      <section anchor="oam">
        <name>OAM</name>
        <t>SR-based SFC uses SRH Flags to mark O-bit identifying OAM packets while NSH-based SFC uses the unused bit of NSH Header as O-bit to identify OAM packets. For the end-to-end OAM method, IBN needs to hold consistent marker on the packets traversing different domains, that is, the O-bit needs to be copied to the corresponding position at IBN.</t>
        <t>Deploying more OAM methods in hSFC, such as IOAM, iFIT <xref target="I-D.draft-song-opsawg-ifit-framework"/>, etc., needs to be considered by future work.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TBD.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TBD.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC8300">
          <front>
            <title>Network Service Header (NSH)</title>
            <author fullname="P. Quinn" initials="P." role="editor" surname="Quinn">
              <organization/>
            </author>
            <author fullname="U. Elzur" initials="U." role="editor" surname="Elzur">
              <organization/>
            </author>
            <author fullname="C. Pignataro" initials="C." role="editor" surname="Pignataro">
              <organization/>
            </author>
            <date month="January" year="2018"/>
            <abstract>
              <t>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="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>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="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>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>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC7665">
          <front>
            <title>Service Function Chaining (SFC) Architecture</title>
            <author fullname="J. Halpern" initials="J." role="editor" surname="Halpern">
              <organization/>
            </author>
            <author fullname="C. Pignataro" initials="C." role="editor" surname="Pignataro">
              <organization/>
            </author>
            <date month="October" year="2015"/>
            <abstract>
              <t>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="RFC8459">
          <front>
            <title>Hierarchical Service Function Chaining (hSFC)</title>
            <author fullname="D. Dolson" initials="D." surname="Dolson">
              <organization/>
            </author>
            <author fullname="S. Homma" initials="S." surname="Homma">
              <organization/>
            </author>
            <author fullname="D. Lopez" initials="D." surname="Lopez">
              <organization/>
            </author>
            <author fullname="M. Boucadair" initials="M." surname="Boucadair">
              <organization/>
            </author>
            <date month="September" year="2018"/>
            <abstract>
              <t>Hierarchical Service Function Chaining (hSFC) is a network architecture allowing an organization to decompose a large-scale network into multiple domains of administration.</t>
              <t>The goals of hSFC are to make a large-scale network easier to design, simpler to control, and supportive of independent functional groups within large network operators.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8459"/>
          <seriesInfo name="DOI" value="10.17487/RFC8459"/>
        </reference>
        <reference anchor="RFC9256">
          <front>
            <title>Segment Routing Policy Architecture</title>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils">
              <organization/>
            </author>
            <author fullname="K. Talaulikar" initials="K." role="editor" surname="Talaulikar">
              <organization/>
            </author>
            <author fullname="D. Voyer" initials="D." surname="Voyer">
              <organization/>
            </author>
            <author fullname="A. Bogdanov" initials="A." surname="Bogdanov">
              <organization/>
            </author>
            <author fullname="P. Mattes" initials="P." surname="Mattes">
              <organization/>
            </author>
            <date month="July" year="2022"/>
            <abstract>
              <t>Segment Routing (SR) allows a node to steer a packet flow along any path. Intermediate per-path states are eliminated thanks to source routing. SR Policy is an ordered list of segments (i.e., instructions) that represent a source-routed policy. Packet flows are steered into an SR Policy on a node where it is instantiated called a headend node. The packets steered into an SR Policy carry an ordered list of segments associated with that SR Policy.</t>
              <t>This document updates RFC 8402 as it details the concepts of SR Policy and steering into an SR Policy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9256"/>
          <seriesInfo name="DOI" value="10.17487/RFC9256"/>
        </reference>
        <reference anchor="I-D.draft-ietf-spring-sr-service-programming">
          <front>
            <title>Service Programming with Segment Routing</title>
            <author fullname="Francois Clad" initials="F." surname="Clad">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Xiaohu Xu" initials="X." surname="Xu">
              <organization>China Mobile</organization>
            </author>
            <author fullname="Clarence Filsfils" initials="C." surname="Filsfils">
              <organization>Cisco Systems, Inc.</organization>
            </author>
            <author fullname="Daniel Bernier" initials="D." surname="Bernier">
              <organization>Bell Canada</organization>
            </author>
            <author fullname="Cheng Li" initials="C." surname="Li">
              <organization>Huawei</organization>
            </author>
            <author fullname="Bruno Decraene" initials="B." surname="Decraene">
              <organization>Orange</organization>
            </author>
            <author fullname="Shaowen Ma" initials="S." surname="Ma">
              <organization>Mellanox</organization>
            </author>
            <author fullname="Chaitanya Yadlapalli" initials="C." surname="Yadlapalli">
              <organization>AT&amp;T</organization>
            </author>
            <author fullname="Wim Henderickx" initials="W." surname="Henderickx">
              <organization>Nokia</organization>
            </author>
            <author fullname="Stefano Salsano" initials="S." surname="Salsano">
              <organization>Universita di Roma "Tor Vergata"</organization>
            </author>
            <date day="15" month="February" year="2023"/>
            <abstract>
              <t>   This document defines data plane functionality required to implement
   service segments and achieve service programming in SR-enabled MPLS
   and IPv6 networks, as described in the Segment Routing architecture.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-spring-sr-service-programming-07"/>
        </reference>
        <reference anchor="I-D.draft-ietf-spring-nsh-sr">
          <front>
            <title>Integration of Network Service Header (NSH) and Segment Routing for Service Function Chaining (SFC)</title>
            <author fullname="Jim Guichard" initials="J." surname="Guichard">
              <organization>Futurewei Technologies</organization>
            </author>
            <author fullname="Jeff Tantsura" initials="J." surname="Tantsura">
              <organization>Microsoft</organization>
            </author>
            <date day="20" month="April" year="2022"/>
            <abstract>
              <t>   This document describes the integration of the Network Service Header
   (NSH) and Segment Routing (SR), as well as encapsulation details, to
   support Service Function Chaining (SFC) in an efficient manner while
   maintaining separation of the service and transport planes as
   originally intended by the SFC architecture.

   Combining these technologies allows SR to be used for steering
   packets between Service Function Forwarders (SFF) along a given
   Service Function Path (SFP) while NSH has the responsibility for
   maintaining the integrity of the service plane, the SFC instance
   context, and any associated metadata.

   This integration demonstrates that NSH and SR can work cooperatively
   and provide a network operator with the flexibility to use whichever
   transport technology makes sense in specific areas of their network
   infrastructure while still maintaining an end-to-end service plane
   using NSH.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-spring-nsh-sr-11"/>
        </reference>
        <reference anchor="I-D.draft-ietf-spring-srv6-path-segment">
          <front>
            <title>Path Segment for SRv6 (Segment Routing in IPv6)</title>
            <author fullname="Cheng Li" initials="C." surname="Li">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Weiqiang Cheng" initials="W." surname="Cheng">
              <organization>China Mobile</organization>
            </author>
            <author fullname="Mach Chen" initials="M." surname="Chen">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Dhruv Dhody" initials="D." surname="Dhody">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Yongqing Zhu" initials="Y." surname="Zhu">
              <organization>China Telecom</organization>
            </author>
            <date day="24" month="October" year="2022"/>
            <abstract>
              <t>   Segment Routing (SR) allows for a flexible definition of end-to-end
   paths by encoding an ordered list of instructions, called "segments".
   The SR architecture can be implemented over an MPLS data plane as
   well as an IPv6 data plane.

   Currently, Path Segment has been defined to identify an SR path in
   SR-MPLS networks, and is used for various use-cases such as end-to-
   end SR Path Protection and Performance Measurement (PM) of an SR
   path.  This document defines the Path Segment to identify an SRv6
   path in an IPv6 network.


              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-spring-srv6-path-segment-05"/>
        </reference>
        <reference anchor="I-D.draft-song-opsawg-ifit-framework">
          <front>
            <title>A Framework for In-situ Flow Information Telemetry</title>
            <author fullname="Haoyu Song" initials="H." surname="Song">
              <organization>Futurewei</organization>
            </author>
            <author fullname="Fengwei Qin" initials="F." surname="Qin">
              <organization>China Mobile</organization>
            </author>
            <author fullname="Huanan Chen" initials="H." surname="Chen">
              <organization>China Telecom</organization>
            </author>
            <author fullname="Jaewhan Jin" initials="J." surname="Jin">
              <organization>LG U+</organization>
            </author>
            <author fullname="Jongyoon Shin" initials="J." surname="Shin">
              <organization>SK Telecom</organization>
            </author>
            <date day="24" month="October" year="2022"/>
            <abstract>
              <t>   As network scale increases and network operation becomes more
   sophisticated, existing Operation, Administration, and Maintenance
   (OAM) methods are no longer sufficient to meet the monitoring and
   measurement requirements.  Emerging data-plane on-path telemetry
   techniques, such as IOAM and AltMrk, which provide high-precision
   flow insight and issue notifications in real time can supplement
   existing proactive and reactive methods that run in active and
   passive modes.  They enable quality of experience for users and
   applications, and identification of network faults and deficiencies.
   This document describes a reference framework, named as In-situ Flow
   Information Telemetry, for the on-path telemetry techniques.

   The high-level framework outlines the system architecture for
   applying the on-path telemetry techniques to collect and correlate
   performance measurement information from the network.  It identifies
   the components that coordinate existing protocol tools and telemetry
   mechanisms, and addresses deployment challenges for flow-oriented on-
   path telemetry techniques, especially in carrier networks.

   The document is a guide for system designers applying the referenced
   techniques.  It is also intended to motivate further work to enhance
   the OAM ecosystem.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-song-opsawg-ifit-framework-19"/>
        </reference>
        <reference anchor="RFC9015">
          <front>
            <title>BGP Control Plane for the Network Service Header in Service Function Chaining</title>
            <author fullname="A. Farrel" initials="A." surname="Farrel">
              <organization/>
            </author>
            <author fullname="J. Drake" initials="J." surname="Drake">
              <organization/>
            </author>
            <author fullname="E. Rosen" initials="E." surname="Rosen">
              <organization/>
            </author>
            <author fullname="J. Uttaro" initials="J." surname="Uttaro">
              <organization/>
            </author>
            <author fullname="L. Jalil" initials="L." surname="Jalil">
              <organization/>
            </author>
            <date month="June" year="2021"/>
            <abstract>
              <t>This document describes the use of BGP as a control plane for networks that support service function chaining.  The document introduces a new BGP address family called the "Service Function Chain (SFC) Address Family Identifier / Subsequent Address Family Identifier" (SFC AFI/SAFI) with two Route Types.  One Route Type is originated by a node to advertise that it hosts a particular instance of a specified service function.  This Route Type also provides "instructions" on how to send a packet to the hosting node in a way that indicates that the service function has to be applied to the packet.  The other Route Type is used by a controller to advertise the paths of "chains" of service functions and give a unique designator to each such path so that they can be used in conjunction with the Network Service Header (NSH) defined in RFC 8300.</t>
              <t>This document adopts the service function chaining architecture described in RFC 7665.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9015"/>
          <seriesInfo name="DOI" value="10.17487/RFC9015"/>
        </reference>
        <reference anchor="I-D.draft-li-spring-sr-sfc-control-plane-framework">
          <front>
            <title>A Framework for Constructing Service Function Chaining Systems Based on Segment Routing</title>
            <author fullname="Cheng Li" initials="C." surname="Li">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Ahmed El Sawaf" initials="A." surname="El Sawaf">
              <organization>Saudi Telecom Company</organization>
            </author>
            <author fullname="Hongyi Huang" initials="H." surname="Huang">
              <organization>Huawei Technologies</organization>
            </author>
            <author fullname="Zhenbin Li" initials="Z." surname="Li">
              <organization>Huawei Technologies</organization>
            </author>
            <date day="11" month="January" year="2023"/>
            <abstract>
              <t>   Segment Routing (SR) allows for a flexible definition of end-to-end
   paths by encoding paths as sequences of topological sub-paths, called
   "segments".  Segment routing architecture can be implemented over an
   MPLS data plane as well as an IPv6 data plane.

   Service Function Chaining (SFC) provides support for the creation of
   composite services that consist of an ordered set of Service
   Functions (SF) that are to be applied to packets and/or frames
   selected as a result of classification.

   SFC can be implemented based on several technologies, such as Network
   Service Header (NSH) and SR.  This document describes a framework for
   constructing SFC based on Segment Routing.  The document reviews the
   control plane solutions for route distribution of service function
   instance and service function path, and steering packets into a
   service function chain.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-li-spring-sr-sfc-control-plane-framework-08"/>
        </reference>
        <reference anchor="I-D.draft-ietf-sfc-dc-use-cases">
          <front>
            <title>Service Function Chaining Use Cases In Data Centers</title>
            <author fullname="Surendra Kumar" initials="S." surname="Kumar">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Mudassir Tufail" initials="M." surname="Tufail">
              <organization>Citi</organization>
            </author>
            <author fullname="Sumandra Majee" initials="S." surname="Majee">
              <organization>F5 Networks</organization>
            </author>
            <author fullname="Claudiu Captari" initials="C." surname="Captari">
              <organization>Telstra Corporation</organization>
            </author>
            <author fullname="Shunsuke Homma" initials="S." surname="Homma">
              <organization>NTT</organization>
            </author>
            <date day="22" month="February" year="2017"/>
            <abstract>
              <t>   Data center operators deploy a variety of layer 4 through layer 7
   service functions in both physical and virtual form factors.  Most
   traffic originating, transiting, or terminating in the data center is
   subject to treatment by multiple service functions.

   This document describes use cases that demonstrate the applicability
   of Service Function Chaining (SFC) within a data center environment
   and provides SFC requirements for data center centric use cases, with
   primary focus on Enterprise data centers.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-sfc-dc-use-cases-06"/>
        </reference>
      </references>
    </references>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
    </section>
    <section numbered="false" anchor="contributors">
      <name>Contributors</name>
    </section>
  </back>
  <!-- ##markdown-source:
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
pi6rbYP+F0hkZPt9WAAA

-->

</rfc>
