<?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.7 (Ruby 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-watal-spring-srv6-sfc-sr-aware-functions-00" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.20.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-00"/>
    <author initials="W." surname="Mishima" fullname="Wataru Mishima">
      <organization>NTT Communications</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 Communications</organization>
      <address>
        <postal>
          <country>Japan</country>
        </postal>
        <email>y.fukagawa@ntt.com</email>
      </address>
    </author>
    <date year="2024" month="March" day="04"/>
    <area>Routing</area>
    <workgroup>SPRING</workgroup>
    <keyword>SRv6</keyword>
    <keyword>SFC</keyword>
    <abstract>
      <?line 35?>

<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, so that reduces 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://https/github.com/watal"/>.</t>
    </note>
  </front>
  <middle>
    <?line 43?>

<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).
The SFC based on Segment Routing (SR) is defined in <xref target="I-D.draft-ietf-spring-sr-service-programming"/>, which describes SFC proxies like End.AS/AD/AM are necessary to use 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 SID function and 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 (FP), control plane (CP), management plane (MP), application plane (AP), northbound interface, southbound interface 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>SRv6 Service Function Node: an SR segment endpoint node that provides SR-aware functions as service segments.</t>
          </li>
          <li>
            <t>Classification Rule Controller: applies sets of SR policy and flows to SR Source Nodes.</t>
          </li>
          <li>
            <t>Service Function Controller: applies service segments to SRv6 Service Function Nodes.</t>
          </li>
          <li>
            <t>SRv6 Controller: controls SRv6 services comprehensively, consisting of a Service Function Controller, a PCE, and a Classification Rule Controller.</t>
          </li>
          <li>
            <t>SRv6 Managers: manage SRv6 SFC infrastructure, consisting of a Virtualized Network Function (VNF) Manager, a Virtualized Infrastructure Manager (VIM), and a data collector of 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>
      <t>## Goals/Objectives
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 and service segments are provided by a centralized controller.  </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 a 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 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                |
 +------------------------|-----------------------+
                          | Control Plane Northbound Interface
 +--- SRv6 Controller ----v-----------------------+
 | +--------------+ +-------------+ +-----------+ | +-----------+
 | |Classification| |    Path     | | Service   | | |  Service  |
 | |     Rule     | | Computation | | Function  | | |  Funtion  |
 | |  Controller  | |Element (PCE)| |Controller | | |  Managers |
 | +------|-------+ +-^---------|-+ +-----|-----+ | +-----|-----+
 +--------|-----------|---------|---------|-------+   Management
          |           |         |         |             Plane
         Control Plane Southbound Interfaces          Southbound
          |           |         |         |           Interface
 +--------|-----------|---------|---------|---------------|-------+
 | +------v-----------|---------v-+ +-----v---------------v-----+ |
 | |     SRv6 SR Source Node /    | |       SRv6 Service        | |
 | |    Service Classification    |-|         Function          | |
 | |           Function           | |           Node            | |
 | +------------------------------+ +---------------------------+ |
 +--------------------------- SR domain --------------------------+
]]></sourcecode>
      </figure>
      <t>This architecture is based on SDN <xref target="RFC7426"/> separating the forwarding plane (FP), control plane (CP), management plane (MP), and application plane (AP).
Each plane has the following roles:</t>
      <ul spacing="normal">
        <li>
          <t>Forwarding plane: classifies packets and encapsulates SRH, forwards them, and applies endpoint behavior.
          </t>
          <ul spacing="normal">
            <li>
              <t>Provides SR-aware function using End.AN.</t>
            </li>
            <li>
              <t>Classify flow and apply them to TE application with PBR.</t>
            </li>
            <li>
              <t>Ensures redundancy with Anycast.</t>
            </li>
            <li>
              <t>Ensure 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 locator, prefix, behavior, and delay.</t>
            </li>
            <li>
              <t>Calculates and provisioning SR Policies.</t>
            </li>
            <li>
              <t>Applies SR Policies to each flow by provisioning flow classification rules.</t>
            </li>
            <li>
              <t>Manages the provisioning of Service Segments to SR-aware functions.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Management plane: monitors and maintenances of SRv6 devices and services
          </t>
          <ul spacing="normal">
            <li>
              <t>Monitors and deploys network functions.</t>
            </li>
            <li>
              <t>Manages hypervisor resources.</t>
            </li>
            <li>
              <t>Collects metrics of devices, network functions, and SFC services.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Application plane: provides APIs for users to use a control and management plane.
          </t>
          <ul spacing="normal">
            <li>
              <t>Provide an interface to operators or customers.</t>
            </li>
            <li>
              <t>Applying intents defined in <xref target="RFC9315"/>, including Operational, Rule, Service, and Flow intents.</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 is responsible for providing 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 SR    | SRv6 Packet |  SRv6  | SRv6 Packet |  SRv6  | |
 | | Source Node  |(S2,S1; SL:1)|Service |(S2,S1; SL:1)|Service | |
-->|  / Service   |------------>|Function|------------>|Function|-->
 | |Classification|             |  Node  |             |  Node  | |
 | |   Function   |             |  (S1)  |             |  (S2)  | |
 | +--------------+             +--------+             +--------+ |
 +-------------------------- SR domain ---------------------------+
]]></sourcecode>
      </figure>
      <t>Figure 2 shows an example of SFC with two network functions.
Firstly, the SRv6 SR source node classifies the flow and encapsulates it with an SRH containing the segment list &lt;S1, S2&gt;.
Next, the SRv6 Service Function Node (S1) receives the packet and applies a network function associated with an End.AN S1.
Finally, the SRv6 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-goes-down">
          <name>When a Network Function Goes Down</name>
          <t>If a network function experiences a failure, the associated route MUST be promptly removed.
In the case of Anycast configuration, it MUST be gracefully rerouted to other nodes.
Additionally, if no alternative nodes are available, consider either dropping the packet and sending an ICMP Destination Unreachable message or forwarding it as a pass-through.</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 SRv6 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 SRv6 Policy <xref target="RFC9256"/>.
The purpose or intent of each SRv6 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 the SRv6 SR source node, which serves as the Service Classifier, packets are classified on a per-flow basis using PBR and encapsulated with SRv6 Policy.
Therefore, the SRv6 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 classifier has an API to communicate with the controller.</t>
      </section>
    </section>
    <section anchor="control-plane">
      <name>Control Plane</name>
      <t>A control plane is responsible for enabling comprehensive management of SRv6 SFC.
It enables SR-aware functions as service segments and specifies SR Policies including SFC for each flow.
A control plane has a Northbound API to receive user requests and a Southbound API to manipulate a forwarding plane.</t>
      <figure anchor="cp">
        <name>Control Plane</name>
        <sourcecode type="drawing"><![CDATA[
 +---------------- SRv6 Controller ----------------+
 | +--------------+ +-------------+ +------------+ |
 | |Classification| |    Path     | |  Service   | |
 | |     Rule     | | Computation | |  Function  | |
 | |  Controller  | |Element (PCE)| | Controller | |
 | +------|-------+ +-^---------|-+ +------|-----+ |
 +--------|-----------|---------|----------|-------+
   Classification link-state SR Policy Enable/Disable
        Rule       (BGP-LS) (PCEP/BGP) a Service Segment
   (BGP Flowspec)     |         |     (End.AN SID:S1)
 +--------|-----------|---------|----------|----------------------+
 | +------v-----------|---------v-+ +------v--------------------+ |
 | |     SRv6 SR Source Node /    | |       SRv6 Service        | |
 | |    Service Classification    |-|         Function          | |
 | |           Function           | |           Node            | |
 | +------------------------------+ +---------------------------+ |
 +--------------------------- SR domain --------------------------+
]]></sourcecode>
      </figure>
      <t>The SRv6 Controller consists of the following three components:</t>
      <ul spacing="normal">
        <li>
          <t>Service Function Controller: provides an SID for a network service and manages this state.</t>
        </li>
        <li>
          <t>PCE: provides SR Policies that fulfill SFC/QoS requirements from the headend to the tailend and sends them to the SRv6 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 SRv6 SR source node.</t>
        </li>
      </ul>
      <section anchor="service-function-controller">
        <name>Service Function Controller</name>
        <t>Service Function Controller is responsible for enabling and disabling service segments of SRv6 Service Function Nodes.
To manage service segments, it utilizes the extensions provided in a BGP-LS service segment, as outlined in <xref target="I-D.draft-ietf-idr-bgp-ls-sr-service-segments"/> and TODO: draft-watal-idr-bgp-ls-sr-service-segments-enabler, and defines the following parameters:</t>
        <ul spacing="normal">
          <li>
            <t>Behavior: End.AN</t>
          </li>
          <li>
            <t>SID: the SID of End.AN (in IPv6 Address format). Service segments that support slicing are specified here 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 Segment Group: when deploying multiple Network Functions within the same context, it MUST use the Anycast Group TLV to specify the same anycast segment 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 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.
For dynamic path, Constrained Shortest Path First (CSPF) considers not only SFC but also QoS.</t>
        <t>It acquires the Traffic Engineering Database (TED) of the SR domain using BGP-LS and deploys SR Policies via PCEP <xref target="RFC5440"/> or BGP SR Policy <xref target="I-D.draft-ietf-idr-segment-routing-te-policy"/>.
The BGP-LS service segment is required to calculate dynamic paths based on the state of service segments and network functions.</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 SRv6 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 is responsible for configuring network function instances, monitoring resources, and collecting 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[
 +----------------- SRv6 Manager ------------------+
 | +--------------+ +--------------+ +-----------+ |
 | | Virtualized  | |     VNF      | |  Network  | |
 | |Infrastructure| |   Manager    | |  Metric   | |
 | |   Manager    | |              | |  Manager  | |
 | +------^-------+ +------^-------+ +-----^-----+ |
 +--------|----------------|---------------|-------+
          |                |               |
        Management Plane Southbound Interfaces
          |                |               |
 +--------|----------------|---------------|-------+
 | +------|----------------v---------------|-----+ |
 | |                 SRv6 Service                | |
 | |                   Function                  | |
 | |                     Node                    | |
 | +---------------------------------------------+ |
 +------------------- SR domain -------------------+
]]></sourcecode>
      </figure>
      <t>Figure 4 shows examples of managers that MAY be added to a management plane:
* VNF Manager: handles deployment and scaling of network functions.
* This manager considers redundancy and link utilization optimization.</t>
      <ul spacing="normal">
        <li>
          <t>VIM: monitors hypervisor resources on SRv6 Service Function Node.
          </t>
          <ul spacing="normal">
            <li>
              <t>In SRv6 SFC, a hypervisor managed by a VIM MAY be located in virtualized spaces within routers or on generic servers.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Network Metrics Manager: collects metrics for SRv6 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 for PCE calculation parameters.</t>
            </li>
          </ul>
        </li>
      </ul>
    </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="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="20" month="February" year="2024"/>
          <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-09"/>
      </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-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-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-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="16" month="June" year="2023"/>
          <abstract>
            <t>   BGP Flow Specification (FlowSpec) [RFC8955] and [RFC8956] 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 also attract attention.  This document introduces
   the usage of BGP FlowSpec to steer packets into an SR Policy.


            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-idr-ts-flowspec-srv6-policy-03"/>
      </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 333?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to acknowledge the review and inputs from Mitsuru Maruyama, Katsuhiro Sebayashi, Yuma Ito, and Taisei Tanabe.
We partially obtained the research results from NICT's commissioned research No. JPJ012368C03101.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
eXT85ZuvT15+efTy6KD339/JnrgbTwAA

-->

</rfc>
