<?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.7.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-watal-spring-srv6-sfc-sr-aware-functions-05" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="SRv6 SFC with SR-aware Functions">SRv6 SFC Architecture with SR-aware Functions</title>
    <seriesInfo name="Internet-Draft" value="draft-watal-spring-srv6-sfc-sr-aware-functions-05"/>
    <author initials="W." surname="Mishima" fullname="Wataru Mishima">
      <organization>NTT docomo Business</organization>
      <address>
        <postal>
          <country>Japan</country>
        </postal>
        <email>w.mishima@ntt.com</email>
      </address>
    </author>
    <author initials="Y." surname="Fukagawa" fullname="Yuta Fukagawa">
      <organization>NTT docomo Business</organization>
      <address>
        <postal>
          <country>Japan</country>
        </postal>
        <email>y.fukagawa@ntt.com</email>
      </address>
    </author>
    <date year="2026" month="July" day="04"/>
    <area>Routing</area>
    <workgroup>SPRING</workgroup>
    <keyword>SRv6</keyword>
    <keyword>SFC</keyword>
    <abstract>
      <?line 36?>

<t>This document describes the architecture of Segment Routing over IPv6 (SRv6) Service Function Chaining (SFC) with SR-aware functions.
This architecture provides the following benefits:</t>
      <ul spacing="normal">
        <li>
          <t>Comprehensive Management: a centralized controller for SFC, handling SR Policy, link-state, and network metrics.</t>
        </li>
        <li>
          <t>Simplicity: no SFC proxies, which reduces the number of nodes and address resource consumption.</t>
        </li>
      </ul>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Source Packet Routing in Networking Working Group mailing list (spring@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/spring/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/watal"/>.</t>
    </note>
  </front>
  <middle>
    <?line 44?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Segment Routing over IPv6 (SRv6) <xref target="RFC8986"/> enables packet steering through a set of instructions called a segment list.
Each SR segment endpoint node provides SRv6 Endpoint Behaviors, including Prefix/Adjacency Segments, VPNs, and Binding Segments.</t>
      <t>Service Function Chaining (SFC) <xref target="RFC7665"/> can be used in various scenarios (e.g. FW, IPS, IDS, NAT, and DPI).
SFC based on Segment Routing (SR) is defined in <xref target="I-D.draft-ietf-spring-sr-service-programming"/>, which describes some SRv6 Endpoint Behaviors, such as End.AS/AD/AM, are necessary for using SR-unaware functions.</t>
      <t>This document describes an architecture for SRv6 SFC with SR-aware functions, which provides comprehensive management of SRv6 network resources and services.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <section anchor="terminology-defined-in-related-rfcs-and-internet-drafts">
        <name>Terminology Defined in Related RFCs and Internet-Drafts</name>
        <t>The following terms are used in this document as defined in the related RFCs and Internet-Drafts:</t>
        <ul spacing="normal">
          <li>
            <t>SR, SR Domain, Segment ID (SID), SRv6, SR Policy, Prefix Segment, Adjacency Segment, Anycast Segment, Active Segment, and Distributed/Centralized/Hybrid Control Plane defined in <xref target="RFC8402"/>.</t>
          </li>
          <li>
            <t>SR Source Node, Transit Node, and SR Segment Endpoint Node defined in <xref target="RFC8754"/>.</t>
          </li>
          <li>
            <t>SRv6 Endpoint Behavior defined in <xref target="RFC8986"/>.</t>
          </li>
          <li>
            <t>SFC, SFC Proxy, and Service Classification Function defined in <xref target="RFC7665"/>.</t>
          </li>
          <li>
            <t>Service Segment, SR-Aware Service, SR-Unaware Service, End.AS, End.AD and End.AM defined in <xref target="I-D.draft-ietf-spring-sr-service-programming"/>.</t>
          </li>
          <li>
            <t>Headend, Color, and Endpoint defined in <xref target="RFC9256"/>.</t>
          </li>
          <li>
            <t>Quality of Service (QoS), Service Level Agreement (SLA), and Service Level Objective (SLO) defined in <xref target="RFC9522"/>.</t>
          </li>
          <li>
            <t>Forwarding Plane, Control Plane, Management Plane, Application Plane defined in <xref target="RFC7426"/>.</t>
          </li>
          <li>
            <t>Path Computation Client (PCC), Path Computation Element (PCE), and Traffic Engineering Database (TED) defined in <xref target="RFC5440"/>.</t>
          </li>
          <li>
            <t>BGP Flow Specification defined in <xref target="RFC8955"/></t>
          </li>
        </ul>
      </section>
      <section anchor="newly-defined-terminology">
        <name>Newly Defined Terminology</name>
        <t>The following terms are used in this document as defined below:</t>
        <ul spacing="normal">
          <li>
            <t>Service Function Node: an SR segment endpoint node that provides SR-aware functions as service segments.</t>
          </li>
          <li>
            <t>SRv6 Controller: controls SRv6 Forwarding Plane, consisting of a PCE and a Classification Rule Controller.</t>
          </li>
          <li>
            <t>Classification Rule Controller: applies sets of SR Policy and flows to SR source nodes.</t>
          </li>
          <li>
            <t>Service Function Manager: configures network function instances, enables SR-aware functions as service segments, and collects network metrics.</t>
          </li>
        </ul>
      </section>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>
      </section>
    </section>
    <section anchor="design-objectives-and-assumptions">
      <name>Design Objectives and Assumptions</name>
      <section anchor="goalsobjectives">
        <name>Goals/Objectives</name>
        <t>SRv6 SFC Architecture is designed with two main objectives:</t>
        <ul spacing="normal">
          <li>
            <t>Comprehensive Management: a centralized controller for SFC, handling SR Policy, link-state, and network metrics.
When providing SRv6 services, meeting SLAs for each customer is required.
These SLAs consist of one or more SLOs such as availability, latency, and bandwidth.
In an SRv6 SFC network, service segment provisioning, link-state collection, and SR Policy calculation are required to meet SLOs, respectively.  </t>
            <t><xref target="RFC8402"/> outlines a hybrid control plane that merges a distributed control plane and a centralized control plane.
In this hybrid control plane, forwarding information like Node/Adjacency SIDs are advertised mutually by distributed SR nodes via IGPs such as ISIS and OSPF, while other information like SR Policies, classification rules, and service segments are provided by a centralized controller and manager.  </t>
            <t>
Software-Defined Networking (SDN) <xref target="RFC7426"/> provides centralized management of a network by a controller and a manager.
Centralized management reduces operational costs through abstraction and automation.
The SDN framework allows users to manage an SR domain without considering the details of a forwarding plane like a topology and node state.
Operators can use an SRv6 controller to build SR Policies for SFC and QoS, manage the state of network functions, issue service segments automatically, and specify disaster recovery with protection.</t>
          </li>
          <li>
            <t>Simplicity: no SFC proxies, so that reduces nodes and address resource consumption.
Network complexity increases operating costs.
Generally, using a variety of protocols in a network raises operational costs, including designing, building, monitoring, and troubleshooting.  </t>
            <t>
Using an SFC proxy may increase forwarding overhead due to additional header manipulations.</t>
          </li>
        </ul>
      </section>
      <section anchor="assumptions">
        <name>Assumptions</name>
        <t>To achieve these objectives, this architecture is based on two main assumptions:</t>
        <ul spacing="normal">
          <li>
            <t>Straightforward extension of the SRv6 network programming model  </t>
            <t>
The protocol used in this architecture is compatible with SRv6.
This streamlines the operation of services like traffic steering, including SFC, redundancy, and local protection.
Standardized protocols such as BGP, PCEP, IS-IS, OSPF, TI-LFA, and Anycast SID are used in this architecture.  </t>
            <t>
This architecture is SRv6 compliant, enabling support for SR-unaware functions, although SR-aware functions are expected to meet the objective.</t>
          </li>
          <li>
            <t>SDN framework compliance and comprehensive management of SRv6 SFC by controllers  </t>
            <t>
A controller is used to provide comprehensive management.
To simplify building and operating, the controller uses standardized protocols and abstracted service interfaces.
This also provides programmability by controlling policies that meet a user's intent including SFC and quality of service (QoS).</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="overview-of-architecture">
      <name>Overview of Architecture</name>
      <t>Figure 1 illustrates an overview of this architecture.</t>
      <figure anchor="overview">
        <name>Overview of SRv6 SFC Architecture with SR-aware Functions</name>
        <sourcecode type="drawing"><![CDATA[
 +----------------------- Application Plane ----------------------+
 |                        User Application                        |
 +-----------------------------------|----------------------------+
                                     |
 +- Control Plane (SRv6 Controller) -v-----+ +- Management Plane -+
 | +--------------+ +--------------------+ | | +----------------+ |
 | |Classification| |        Path        | | | |    Service     | |
 | |     Rule     | |     Computation    | | | |    Function    | |
 | |  Controller  | |    Element (PCE)   | | | |    Manager     | |
 | +------|-------+ +-^-------|--------^-+ | | +----------------+ |
 +--------|-----------|-------|--------|---+ +---------|----------+
          |           |       |        |               |
 +--------|-----------|-------|--------|---------------|---+
 | +------v-----------|-------v-+    +-|---------------v-+ |
 | |                            |    |      Service      | |
 | |       SR Source Node       |----|      Function     | |
 | |                            |    |        Node       | |
 | +----------------------------+    +-------------------+ |
 +------------------- Forwarding Plane --------------------+
]]></sourcecode>
      </figure>
      <t>This architecture is based on <xref target="RFC7426"/> and consists of forwarding plane, control plane, management plane, and application plane.</t>
      <ul spacing="normal">
        <li>
          <t>Forwarding Plane: classifies packets and encapsulates SRH, forwards them, and applies SRv6 Endpoint Behavior.
          </t>
          <ul spacing="normal">
            <li>
              <t>Provides SR-aware function using End.AN.</t>
            </li>
            <li>
              <t>Classifies flows and applies them to a TE application with PBR.</t>
            </li>
            <li>
              <t>Ensures redundancy with anycast.</t>
            </li>
            <li>
              <t>Provides local protection with Fast Reroute (FRR).</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Control Plane: makes decisions about packet forwarding and provides rules for a forwarding plane.
          </t>
          <ul spacing="normal">
            <li>
              <t>Collects link-state including SRv6 locators, prefixes, behaviors, and delays.</t>
            </li>
            <li>
              <t>Calculates and provisions SR Policies.</t>
            </li>
            <li>
              <t>Applies SR Policies to each flow by provisioning flow classification rules.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Management Plane: deploys and monitors network functions and devices.
          </t>
          <ul spacing="normal">
            <li>
              <t>Sets up network functions.</t>
            </li>
            <li>
              <t>Collects metrics of devices, network functions, and SFC services.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Application Plane: provides user API for the control/management planes.
          </t>
          <ul spacing="normal">
            <li>
              <t>Offers an interface for operators or customers.</t>
            </li>
            <li>
              <t>Applies intents defined in <xref target="RFC9315"/>.</t>
            </li>
          </ul>
        </li>
      </ul>
      <t>Each component communicates using standardized protocols.
These are designed to be loosely coupled and cooperate by using an abstraction layer.</t>
      <t>This document suggests handling a control plane by application plane, but a detailed design of an application plane is out of the scope of this document.
This is because application plane components and abstraction layers should be designed based on individual network utilization and operator intent.
In the following sections, details of a forwarding plane, control plane, and management plane are explained.</t>
    </section>
    <section anchor="forwarding-plane">
      <name>Forwarding Plane</name>
      <t>A forwarding plane provides SFC through packet classification, SRv6 encapsulation, and forwarding.
In this architecture, all forwarding plane components are located within the SR domain.</t>
      <figure anchor="fp">
        <name>Forwarding Plane</name>
        <sourcecode type="drawing"><![CDATA[
 +-----------------------------------------------------------------+
 | +-----------+             +----------+             +----------+ |
 | |           | SRv6 Packet | Service  | SRv6 Packet | Service  | |
 | | SR Source |(S2,S1; SL:1)| Function |(S2,S1; SL:1)| Function | |
-->|    Node   |------------>|   Node   |------------>|   Node   |-->
 | |           |             |   (S1)   |             |   (S2)   | |
 | +-----------+             +----------+             +----------+ |
 +--------------------------- SR domain ---------------------------+
]]></sourcecode>
      </figure>
      <t>Figure 2 shows an example of SFC with two network functions.
Firstly, the SR source node classifies the flow and encapsulates it with an SRH containing the segment list &lt;S1, S2&gt;.
Next, the service function node (S1) receives the packet and applies a network function associated with an End.AN S1.
Finally, the service function node (S2) receives the packet and also applies a network function associated End.AN S2, thus achieving SFC.</t>
      <section anchor="endan-based-service-segment-provisioning">
        <name>End.AN-based Service Segment Provisioning</name>
        <t>End.AN provides an SR-aware function.</t>
        <t>Functions with the same role MAY be assigned as the same service segment within the SR domain.
By using Anycast SIDs, multiple nodes can be grouped as part of the same service segment.</t>
        <t>End.AN MAY have optional arguments.
This can provide additional programmability by embedding network function instructions in the segment list.</t>
        <t>By using virtualized spaces within routers or on generic servers, network functions can be provided at any node in an SR domain.
This allows for scaling and flexible redundancy of network functions.</t>
        <section anchor="when-a-network-function-becomes-unavailable">
          <name>When a Network Function Becomes Unavailable</name>
          <t>When a network function becomes unavailable, the node removes the SID from its routing table.
If an anycast SID is used, packets are redirected to another node.
If no other nodes are available, the node drops the packets and sends an ICMPv6 message (Type 1: Destination Unreachable, Code 0: no route to destination).</t>
        </section>
        <section anchor="anycast-segment">
          <name>Anycast Segment</name>
          <t>The concept of the Anycast Segment is introduced in <xref target="RFC8402"/>.
In the SRv6 SFC, it realizes to provide the same network function segment as the same Anycast Segment.
In such cases, the state between network functions MUST be shared mutually.</t>
        </section>
        <section anchor="fast-reroute">
          <name>Fast Reroute</name>
          <t>The ordering of network functions in an SRv6 SFC is guaranteed by the segment list, even if an FRR occurs,
When an FRR occurs, if the Active segment is an Anycast SID, it MAY be forwarded to another service function node.
In such a case, since state synchronization may not have been completed, the network function MUST have a mechanism to handle rerouted packets, such as buffering to wait for synchronization.</t>
        </section>
      </section>
      <section anchor="service-function-chains">
        <name>Service Function Chains</name>
        <t>In this architecture, each SFC is represented as an SR Policy.
The purpose or intent of each SR Policy can be identified using attributes such as color or name.</t>
        <t>In general, SFC is achieved by using loose source routing.
If both SFC and QoS are desired, they can be achieved by using strict source routing or loose source routing with Flex-Algo SIDs.</t>
      </section>
      <section anchor="per-flow-encapsulation">
        <name>Per-Flow Encapsulation</name>
        <t>In an SR source node, which serves as the Service Classification Function, packets are classified on a per-flow basis using PBR and encapsulated with SR Policy.
Therefore, the SR source node MUST be capable of identifying packets using at least a 5-tuple or even more detailed information.</t>
        <t>In this architecture, aiming for comprehensive management, the Service Classification Function has an API to communicate with the controller.</t>
      </section>
    </section>
    <section anchor="control-plane">
      <name>Control Plane</name>
      <t>A control plane sets up a forwarding plane by creating SR policies, including SFCs, and applying them to each flow.</t>
      <figure anchor="cp">
        <name>Control Plane</name>
        <sourcecode type="drawing"><![CDATA[
 +- Control Plane (SRv6 Controller) -------+
 | +--------------+ +--------------------+ |
 | |Classification| |        Path        | |
 | |     Rule     | |     Computation    | |
 | |  Controller  | |    Element (PCE)   | |
 | +------|-------+ +-^-------|--------^-+ |
 +--------|-----------|-------|--------|---+
  Classification link-state SR Policy link-state(Service Segment)
        Rule      (BGP-LS) (PCEP/BGP) (BGP-LS)
  (BGP Flowspec)      |       |        |
 +--------|-----------|-------|--------|-------------------+
 | +------v-----------|-------v-+    +-|-----------------+ |
 | |                            |    |      Service      | |
 | |       SR Source Node       |----|      Function     | |
 | |                            |    |        Node       | |
 | +----------------------------+    +-------------------+ |
 +------------------- Forwarding Plane --------------------+
]]></sourcecode>
      </figure>
      <t>The SRv6 Controller consists of the following two components:</t>
      <ul spacing="normal">
        <li>
          <t>PCE: provides SR Policies that fulfill SFC/QoS requirements from the headend to the tailend and sends them to the SR source node.</t>
        </li>
        <li>
          <t>Classification Rule Controller: provides an Encapsulation Policy that corresponds to a specific flow and SR Policy, and sends them to the SR source node.</t>
        </li>
      </ul>
      <section anchor="path-computation-element-pce">
        <name>Path Computation Element (PCE)</name>
        <t>PCE is a controller that provides SR Policy.
As an Active Stateful PCE, it establishes sessions with all PEs in an SR domain and manages SFCs.
SR Policies MUST support both explicit and dynamic paths.</t>
        <t>For dynamic path computation, the Constrained Shortest Path First (CSPF) algorithm considers not only the SFC but also QoS constraints.</t>
        <t>The PCE builds a Traffic Engineering Database (TED) of the SR domain using BGP-LS and installs SR policies via PCEP <xref target="RFC5440"/> or BGP SR Policy <xref target="I-D.draft-ietf-idr-segment-routing-te-policy"/>.</t>
        <t>To enable dynamic path calculation based on the state of service segments and Network Functions, the BGP-LS Service Segment extension <xref target="I-D.draft-ietf-idr-bgp-ls-sr-service-segments"/> is required.</t>
      </section>
      <section anchor="classification-rule-controller">
        <name>Classification Rule Controller</name>
        <t>A Classification Rule Controller determines flows to apply specific SFC.</t>
        <t>The classification results are advertised to each SR source node as a set of flow, endpoints, and color with an extended protocol based on BGP Flowspec defined in <xref target="I-D.draft-ietf-idr-ts-flowspec-srv6-policy"/>.</t>
      </section>
    </section>
    <section anchor="management-plane">
      <name>Management Plane</name>
      <t>A management plane configures network function instances, enables SR-aware functions as service segments, monitors resources, and collects network metrics.
The details of each manager are outside the scope of this document, as the southbound interface of the management plane may be different for each service and hardware architecture.</t>
      <figure anchor="mp">
        <name>Management Plane</name>
        <sourcecode type="drawing"><![CDATA[
 +-------------------- Function Managers ---------------------+
 | +-----------+ +--------------+ +-----------+ +-----------+ |
 | |  Service  | | Virtualized  | |    VNF    | |  Network  | |
 | |  Function | |Infrastructure| |  Manager  | |  Metric   | |
 | |  Manager  | |   Manager    | |           | |  Manager  | |
 | +-----|-----+ +------^-------+ +-----|-----+ +-----^-----+ |
 +-------|--------------|---------------|-------------|-------+
         |              |               |             |
             Management Plane Southbound Interfaces
         |              |               |             |
 +-------|--------------|---------------|-------------|--------+
 | +-----v--------------v---------------v-------------|------+ |
 | |                  Service Function Node                  | |
 | +---------------------------------------------------------+ |
 +------------------------- SR domain -------------------------+
]]></sourcecode>
      </figure>
      <t>Figure 4 shows examples of managers that MAY be added to a management plane:</t>
      <ul spacing="normal">
        <li>
          <t>Service Function Manager: provides an SID for a network service and manages this state.</t>
        </li>
        <li>
          <t>VNF Manager: manages the lifecycle of network functions.
          </t>
          <ul spacing="normal">
            <li>
              <t>It instantiates, configures, scales, heals, updates, and terminates network functions.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>VIM: manages virtualized compute, storage, and network resources.
          </t>
          <ul spacing="normal">
            <li>
              <t>In SRv6 SFC, a VIM MAY manage virtualized environments hosted on generic servers or within routers.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Network Metrics Manager: collects metrics for SR Policy calculation and evaluation.
          </t>
          <ul spacing="normal">
            <li>
              <t>Metrics are collected from multiple data sources, including IPFIX, TCP statistics, and SRv6 path tracing <xref target="I-D.draft-filsfils-spring-path-tracing"/>.</t>
            </li>
            <li>
              <t>Metrics can be used as input for PCE path computation.</t>
            </li>
          </ul>
        </li>
      </ul>
      <section anchor="service-function-manager">
        <name>Service Function Manager</name>
        <t>Service Function Manager enables and disables service segments of service function nodes.</t>
        <t>The Manager advertises the following parameters to each service function node:</t>
        <ul spacing="normal">
          <li>
            <t>Behavior: End.AN</t>
          </li>
          <li>
            <t>SID: the SID of End.AN (in IPv6 Address format). If service segments support slicing, they are represented as Flex-Algo SIDs.</t>
          </li>
          <li>
            <t>Function Name: type of network function</t>
          </li>
          <li>
            <t>Action: enable</t>
          </li>
          <li>
            <t>TLV:
            </t>
            <ul spacing="normal">
              <li>
                <t>Specification of the Anycast Group: when deploying multiple Network Functions within the same context, it MUST use the Anycast Group TLV to indicate a shared anycast group SID.</t>
              </li>
              <li>
                <t>Allows for the specification of unique parameters and context associated with a particular network function.</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC8986">
        <front>
          <title>Segment Routing over IPv6 (SRv6) Network Programming</title>
          <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
          <author fullname="P. Camarillo" initials="P." role="editor" surname="Camarillo"/>
          <author fullname="J. Leddy" initials="J." surname="Leddy"/>
          <author fullname="D. Voyer" initials="D." surname="Voyer"/>
          <author fullname="S. Matsushima" initials="S." surname="Matsushima"/>
          <author fullname="Z. Li" initials="Z." surname="Li"/>
          <date month="February" year="2021"/>
          <abstract>
            <t>The Segment Routing over IPv6 (SRv6) Network Programming framework enables a network operator or an application to specify a packet processing program by encoding a sequence of instructions in the IPv6 packet header.</t>
            <t>Each instruction is implemented on one or several nodes in the network and identified by an SRv6 Segment Identifier in the packet.</t>
            <t>This document defines the SRv6 Network Programming concept and specifies the base set of SRv6 behaviors that enables the creation of interoperable overlays with underlay optimization.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8986"/>
        <seriesInfo name="DOI" value="10.17487/RFC8986"/>
      </reference>
      <reference anchor="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>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="I-D.draft-ietf-spring-sr-service-programming">
        <front>
          <title>Service Programming with Segment Routing</title>
          <author fullname="Ahmed Abdelsalam" initials="A." surname="Abdelsalam">
            <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="3" month="November" year="2025"/>
          <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-12"/>
      </reference>
      <reference anchor="RFC8402">
        <front>
          <title>Segment Routing Architecture</title>
          <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
          <author fullname="S. Previdi" initials="S." role="editor" surname="Previdi"/>
          <author fullname="L. Ginsberg" initials="L." surname="Ginsberg"/>
          <author fullname="B. Decraene" initials="B." surname="Decraene"/>
          <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
          <author fullname="R. Shakir" initials="R." surname="Shakir"/>
          <date month="July" year="2018"/>
          <abstract>
            <t>Segment Routing (SR) leverages the source routing paradigm. A node steers a packet through an ordered list of instructions, called "segments". A segment can represent any instruction, topological or service based. A segment can have a semantic local to an SR node or global within an SR domain. SR provides a mechanism that allows a flow to be restricted to a specific topological path, while maintaining per-flow state only at the ingress node(s) to the SR domain.</t>
            <t>SR can be directly applied to the MPLS architecture with no change to the forwarding plane. A segment is encoded as an MPLS label. An ordered list of segments is encoded as a stack of labels. The segment to process is on the top of the stack. Upon completion of a segment, the related label is popped from the stack.</t>
            <t>SR can be applied to the IPv6 architecture, with a new type of routing header. A segment is encoded as an IPv6 address. An ordered list of segments is encoded as an ordered list of IPv6 addresses in the routing header. The active segment is indicated by the Destination Address (DA) of the packet. The next active segment is indicated by a pointer in the new routing header.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8402"/>
        <seriesInfo name="DOI" value="10.17487/RFC8402"/>
      </reference>
      <reference anchor="RFC8754">
        <front>
          <title>IPv6 Segment Routing Header (SRH)</title>
          <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
          <author fullname="D. Dukes" initials="D." role="editor" surname="Dukes"/>
          <author fullname="S. Previdi" initials="S." surname="Previdi"/>
          <author fullname="J. Leddy" initials="J." surname="Leddy"/>
          <author fullname="S. Matsushima" initials="S." surname="Matsushima"/>
          <author fullname="D. Voyer" initials="D." surname="Voyer"/>
          <date month="March" year="2020"/>
          <abstract>
            <t>Segment Routing can be applied to the IPv6 data plane using a new type of Routing Extension Header called the Segment Routing Header (SRH). This document describes the SRH and how it is used by nodes that are Segment Routing (SR) capable.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8754"/>
        <seriesInfo name="DOI" value="10.17487/RFC8754"/>
      </reference>
      <reference anchor="RFC9256">
        <front>
          <title>Segment Routing Policy Architecture</title>
          <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
          <author fullname="K. Talaulikar" initials="K." role="editor" surname="Talaulikar"/>
          <author fullname="D. Voyer" initials="D." surname="Voyer"/>
          <author fullname="A. Bogdanov" initials="A." surname="Bogdanov"/>
          <author fullname="P. Mattes" initials="P." surname="Mattes"/>
          <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="RFC9522">
        <front>
          <title>Overview and Principles of Internet Traffic Engineering</title>
          <author fullname="A. Farrel" initials="A." role="editor" surname="Farrel"/>
          <date month="January" year="2024"/>
          <abstract>
            <t>This document describes the principles of traffic engineering (TE) in the Internet. The document is intended to promote better understanding of the issues surrounding traffic engineering in IP networks and the networks that support IP networking and to provide a common basis for the development of traffic-engineering capabilities for the Internet. The principles, architectures, and methodologies for performance evaluation and performance optimization of operational networks are also discussed.</t>
            <t>This work was first published as RFC 3272 in May 2002. This document obsoletes RFC 3272 by making a complete update to bring the text in line with best current practices for Internet traffic engineering and to include references to the latest relevant work in the IETF.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9522"/>
        <seriesInfo name="DOI" value="10.17487/RFC9522"/>
      </reference>
      <reference anchor="RFC7426">
        <front>
          <title>Software-Defined Networking (SDN): Layers and Architecture Terminology</title>
          <author fullname="E. Haleplidis" initials="E." role="editor" surname="Haleplidis"/>
          <author fullname="K. Pentikousis" initials="K." role="editor" surname="Pentikousis"/>
          <author fullname="S. Denazis" initials="S." surname="Denazis"/>
          <author fullname="J. Hadi Salim" initials="J." surname="Hadi Salim"/>
          <author fullname="D. Meyer" initials="D." surname="Meyer"/>
          <author fullname="O. Koufopavlou" initials="O." surname="Koufopavlou"/>
          <date month="January" year="2015"/>
          <abstract>
            <t>Software-Defined Networking (SDN) refers to a new approach for network programmability, that is, the capacity to initialize, control, change, and manage network behavior dynamically via open interfaces. SDN emphasizes the role of software in running networks through the introduction of an abstraction for the data forwarding plane and, by doing so, separates it from the control plane. This separation allows faster innovation cycles at both planes as experience has already shown. However, there is increasing confusion as to what exactly SDN is, what the layer structure is in an SDN architecture, and how layers interface with each other. This document, a product of the IRTF Software-Defined Networking Research Group (SDNRG), addresses these questions and provides a concise reference for the SDN research community based on relevant peer-reviewed literature, the RFC series, and relevant documents by other standards organizations.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7426"/>
        <seriesInfo name="DOI" value="10.17487/RFC7426"/>
      </reference>
      <reference anchor="RFC5440">
        <front>
          <title>Path Computation Element (PCE) Communication Protocol (PCEP)</title>
          <author fullname="JP. Vasseur" initials="JP." role="editor" surname="Vasseur"/>
          <author fullname="JL. Le Roux" initials="JL." role="editor" surname="Le Roux"/>
          <date month="March" year="2009"/>
          <abstract>
            <t>This document specifies the Path Computation Element (PCE) Communication Protocol (PCEP) for communications between a Path Computation Client (PCC) and a PCE, or between two PCEs. Such interactions include path computation requests and path computation replies as well as notifications of specific states related to the use of a PCE in the context of Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) Traffic Engineering. PCEP is designed to be flexible and extensible so as to easily allow for the addition of further messages and objects, should further requirements be expressed in the future. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5440"/>
        <seriesInfo name="DOI" value="10.17487/RFC5440"/>
      </reference>
      <reference anchor="RFC8955">
        <front>
          <title>Dissemination of Flow Specification Rules</title>
          <author fullname="C. Loibl" initials="C." surname="Loibl"/>
          <author fullname="S. Hares" initials="S." surname="Hares"/>
          <author fullname="R. Raszuk" initials="R." surname="Raszuk"/>
          <author fullname="D. McPherson" initials="D." surname="McPherson"/>
          <author fullname="M. Bacher" initials="M." surname="Bacher"/>
          <date month="December" year="2020"/>
          <abstract>
            <t>This document defines a Border Gateway Protocol Network Layer Reachability Information (BGP NLRI) encoding format that can be used to distribute (intra-domain and inter-domain) traffic Flow Specifications for IPv4 unicast and IPv4 BGP/MPLS VPN services. This allows the routing system to propagate information regarding more specific components of the traffic aggregate defined by an IP destination prefix.</t>
            <t>It also specifies BGP Extended Community encoding formats, which can be used to propagate Traffic Filtering Actions along with the Flow Specification NLRI. Those Traffic Filtering Actions encode actions a routing system can take if the packet matches the Flow Specification.</t>
            <t>This document obsoletes both RFC 5575 and RFC 7674.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8955"/>
        <seriesInfo name="DOI" value="10.17487/RFC8955"/>
      </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"/>
          <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"/>
          <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>
      <reference anchor="RFC9315">
        <front>
          <title>Intent-Based Networking - Concepts and Definitions</title>
          <author fullname="A. Clemm" initials="A." surname="Clemm"/>
          <author fullname="L. Ciavaglia" initials="L." surname="Ciavaglia"/>
          <author fullname="L. Z. Granville" initials="L. Z." surname="Granville"/>
          <author fullname="J. Tantsura" initials="J." surname="Tantsura"/>
          <date month="October" year="2022"/>
          <abstract>
            <t>Intent and Intent-Based Networking are taking the industry by storm. At the same time, terms related to Intent-Based Networking are often used loosely and inconsistently, in many cases overlapping and confused with other concepts such as "policy." This document clarifies the concept of "intent" and provides an overview of the functionality that is associated with it. The goal is to contribute towards a common and shared understanding of terms, concepts, and functionality that can be used as the foundation to guide further definition of associated research and engineering problems and their solutions.</t>
            <t>This document is a product of the IRTF Network Management Research Group (NMRG). It reflects the consensus of the research group, having received many detailed and positive reviews by research group participants. It is published for informational purposes.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9315"/>
        <seriesInfo name="DOI" value="10.17487/RFC9315"/>
      </reference>
      <reference anchor="I-D.draft-ietf-idr-segment-routing-te-policy">
        <front>
          <title>Advertising Segment Routing Policies in BGP</title>
          <author fullname="Stefano Previdi" initials="S." surname="Previdi">
            <organization>Huawei Technologies</organization>
          </author>
          <author fullname="Clarence Filsfils" initials="C." surname="Filsfils">
            <organization>Cisco Systems</organization>
          </author>
          <author fullname="Ketan Talaulikar" initials="K." surname="Talaulikar">
            <organization>Cisco Systems</organization>
          </author>
          <author fullname="Paul Mattes" initials="P." surname="Mattes">
            <organization>Microsoft</organization>
          </author>
          <author fullname="Dhanendra Jain" initials="D." surname="Jain">
            <organization>Google</organization>
          </author>
          <date day="23" month="October" year="2023"/>
          <abstract>
            <t>   This document introduces a BGP SAFI with two NLRIs to advertise a
   candidate path of a Segment Routing (SR) Policy.  An SR Policy is an
   ordered list of segments (i.e., instructions) that represent a
   source-routed policy.  An SR Policy consists of one or more candidate
   paths, each consisting of one or more segment lists.  A headend may
   be provisioned with candidate paths for an SR Policy via several
   different mechanisms, e.g., CLI, NETCONF, PCEP, or BGP.  This
   document specifies how BGP may be used to distribute SR Policy
   candidate paths.  It defines sub-TLVs for the Tunnel Encapsulation
   Attribute for signaling information about these candidate paths.

   This documents updates RFC9012 with extensions to the Color Extended
   Community to support additional steering modes over SR Policy.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-idr-segment-routing-te-policy-26"/>
      </reference>
      <reference anchor="I-D.draft-ietf-idr-bgp-ls-sr-service-segments">
        <front>
          <title>BGP-LS Advertisement of Segment Routing Service Segments</title>
          <author fullname="Gaurav Dawra" initials="G." surname="Dawra">
            <organization>LinkedIn</organization>
          </author>
          <author fullname="Clarence Filsfils" initials="C." surname="Filsfils">
            <organization>Cisco Systems</organization>
          </author>
          <author fullname="Ketan Talaulikar" initials="K." surname="Talaulikar">
            <organization>Cisco Systems</organization>
          </author>
          <author fullname="Francois Clad" initials="F." surname="Clad">
            <organization>Cisco Systems</organization>
          </author>
          <author fullname="Daniel Bernier" initials="D." surname="Bernier">
            <organization>Bell Canada</organization>
          </author>
          <author fullname="Jim Uttaro" initials="J." surname="Uttaro">
            <organization>AT&amp;T</organization>
          </author>
          <author fullname="Bruno Decraene" initials="B." surname="Decraene">
            <organization>Orange</organization>
          </author>
          <author fullname="Hani Elmalky" initials="H." surname="Elmalky">
            <organization>Ericsson</organization>
          </author>
          <author fullname="Xiaohu Xu" initials="X." surname="Xu">
            <organization>Capitalonline</organization>
          </author>
          <author fullname="Jim Guichard" initials="J." surname="Guichard">
            <organization>Futurewei Technologies</organization>
          </author>
          <author fullname="Cheng Li" initials="C." surname="Li">
            <organization>Huawei Technologies</organization>
          </author>
          <date day="5" month="November" year="2022"/>
          <abstract>
            <t>   Service functions are deployed as, physical or virtualized elements
   along with network nodes or on servers in data centers.  Segment
   Routing (SR) brings in the concept of segments which can be
   topological or service instructions.  Service segments are SR
   segments that are associated with service functions.  SR Policies are
   used for the setup of paths for steering of traffic through service
   functions using their service segments.

   BGP Link-State (BGP-LS) enables distribution of topology information
   from the network to a controller or an application in general so it
   can learn the network topology.  This document specifies the
   extensions to BGP-LS for the advertisement of service functions along
   their associated service segments.  The BGP-LS advertisement of
   service function information along with the network nodes that they
   are attached to, or associated with, enables controllers compute and
   setup service paths in the network.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-idr-bgp-ls-sr-service-segments-02"/>
      </reference>
      <reference anchor="I-D.draft-ietf-idr-ts-flowspec-srv6-policy">
        <front>
          <title>Traffic Steering using BGP FlowSpec with SR Policy</title>
          <author fullname="Jiang Wenying" initials="J." surname="Wenying">
            <organization>China Mobile</organization>
          </author>
          <author fullname="Yisong Liu" initials="Y." surname="Liu">
            <organization>China Mobile</organization>
          </author>
          <author fullname="Shunwan Zhuang" initials="S." surname="Zhuang">
            <organization>Huawei Technologies</organization>
          </author>
          <author fullname="Gyan Mishra" initials="G. S." surname="Mishra">
            <organization>Verizon Communications Inc.</organization>
          </author>
          <author fullname="Shuanglong Chen" initials="S." surname="Chen">
            <organization>Huawei Technologies</organization>
          </author>
          <date day="18" month="March" year="2026"/>
          <abstract>
            <t>   BGP Flow Specification version 1 (FSv1), defined in [RFC8955],
   [RFC8956] and [RFC9117] has been proposed to distribute BGP [RFC4271]
   FlowSpec NLRI to FlowSpec clients to mitigate (distributed) denial-
   of-service attacks, and to provide traffic filtering in the context
   of a BGP/MPLS VPN service.  Recently, traffic steering applications
   in the context of SR-MPLS and SRv6 using FlowSpec are being used in
   networks.  This document introduces the usage of BGP FSv1 to steer
   packets into an SR Policy.



            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-idr-ts-flowspec-srv6-policy-10"/>
      </reference>
      <reference anchor="I-D.draft-filsfils-spring-path-tracing">
        <front>
          <title>Path Tracing in SRv6 networks</title>
          <author fullname="Clarence Filsfils" initials="C." surname="Filsfils">
            <organization>Cisco Systems, Inc.</organization>
          </author>
          <author fullname="Ahmed Abdelsalam" initials="A." surname="Abdelsalam">
            <organization>Cisco Systems, Inc.</organization>
          </author>
          <author fullname="Pablo Camarillo" initials="P." surname="Camarillo">
            <organization>Cisco Systems, Inc.</organization>
          </author>
          <author fullname="Mark Yufit" initials="M." surname="Yufit">
            <organization>Broadcom</organization>
          </author>
          <author fullname="Thomas Graf" initials="T." surname="Graf">
            <organization>Swisscom</organization>
          </author>
          <author fullname="Yuanchao Su" initials="Y." surname="Su">
            <organization>Alibaba, Inc</organization>
          </author>
          <author fullname="Satoru Matsushima" initials="S." surname="Matsushima">
            <organization>SoftBank</organization>
          </author>
          <author fullname="Mike Valentine" initials="M." surname="Valentine">
            <organization>Goldman Sachs</organization>
          </author>
          <author fullname="Amit Dhamija" initials="" surname="Dhamija">
            <organization>Arrcus</organization>
          </author>
          <date day="23" month="October" year="2023"/>
          <abstract>
            <t>   Path Tracing provides a record of the packet path as a sequence of
   interface ids.  In addition, it provides a record of end-to-end
   delay, per-hop delay, and load on each egress interface along the
   packet delivery path.

   Path Tracing allows to trace 14 hops with only a 40-bytes IPv6 Hop-
   by-Hop extension header.

   Path Tracing supports fine grained timestamp.  It has been designed
   for linerate hardware implementation in the base pipeline.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-filsfils-spring-path-tracing-05"/>
      </reference>
    </references>
    <?line 328?>

<section numbered="false" anchor="appendix-a-implementation-experience">
      <name>Appendix A. Implementation Experience</name>
      <t>Note to the RFC Editor: Please remove this appendix before publication as an RFC.</t>
      <t>This appendix is informative and non-normative.</t>
      <t>Several components of the architecture have been implemented and validated in IETF Hackathons.</t>
      <t>A.1. Flow-based Service Classification</t>
      <t>The following functionality has been implemented in GoBGP:</t>
      <ul spacing="normal">
        <li>
          <t>Advertisement of classification rules using BGP Flowspec extensions for SRv6 Policy.</t>
        </li>
      </ul>
      <t>A.2. SR Policy Computation and Provisioning</t>
      <t>The following functionality has been implemented in Pola PCE:</t>
      <ul spacing="normal">
        <li>
          <t>Centralized SR Policy computation for SFC using a stateful PCE.</t>
        </li>
        <li>
          <t>Support for explicit and dynamic SRv6 Policies with loose source routing.</t>
        </li>
      </ul>
      <t>A.3. Service Segment Advertisement</t>
      <t>The following functionality has been implemented in GoBGP and ExaBGP:</t>
      <ul spacing="normal">
        <li>
          <t>Advertisement of VNF and End.AN information using BGP-LS Service Segment extensions.</t>
        </li>
      </ul>
      <t>A.4. Service and Infrastructure Management</t>
      <t>The following functionality has been implemented using OpenStack and Ansible:</t>
      <ul spacing="normal">
        <li>
          <t>Deployment of VNFs.</t>
        </li>
        <li>
          <t>Provisioning of SRv6 End.AN behaviors.</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank Mitsuru Maruyama, Katsuhiro Sebayashi, Yuma Ito, and Taisei Tanabe for their valuable reviews.</t>
      <t>This work was partially supported by NICT commissioned research (No. JPJ012368C03101) and JST CRONOS (No. JPMJCS24N9).</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
TwAA

-->

</rfc>
