<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.5.8 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-bestbar-teas-ns-packet-10" category="info">

  <front>
    <title abbrev="IP/MPLS Network Slicing">Realizing Network Slices in IP/MPLS Networks</title>

    <author initials="T." surname="Saad" fullname="Tarek Saad">
      <organization>Juniper Networks</organization>
      <address>
        <email>tsaad@juniper.net</email>
      </address>
    </author>
    <author initials="V." surname="Beeram" fullname="Vishnu Pavan Beeram">
      <organization>Juniper Networks</organization>
      <address>
        <email>vbeeram@juniper.net</email>
      </address>
    </author>
    <author initials="J." surname="Dong" fullname="Jie Dong">
      <organization>Huawei Technologies</organization>
      <address>
        <email>jie.dong@huawei.com</email>
      </address>
    </author>
    <author initials="B." surname="Wen" fullname="Bin Wen">
      <organization>Comcast</organization>
      <address>
        <email>Bin_Wen@cable.comcast.com</email>
      </address>
    </author>
    <author initials="D." surname="Ceccarelli" fullname="Daniele Ceccarelli">
      <organization>Ericsson</organization>
      <address>
        <email>daniele.ceccarelli@ericsson.com</email>
      </address>
    </author>
    <author initials="J." surname="Halpern" fullname="Joel Halpern">
      <organization>Ericsson</organization>
      <address>
        <email>joel.halpern@ericsson.com</email>
      </address>
    </author>
    <author initials="S." surname="Peng" fullname="Shaofu Peng">
      <organization>ZTE Corporation</organization>
      <address>
        <email>peng.shaofu@zte.com.cn</email>
      </address>
    </author>
    <author initials="R." surname="Chen" fullname="Ran Chen">
      <organization>ZTE Corporation</organization>
      <address>
        <email>chen.ran@zte.com.cn</email>
      </address>
    </author>
    <author initials="X." surname="Liu" fullname="Xufeng Liu">
      <organization>Volta Networks</organization>
      <address>
        <email>xufeng.liu.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="L." surname="Contreras" fullname="Luis M. Contreras">
      <organization>Telefonica</organization>
      <address>
        <email>luismiguel.contrerasmurillo@telefonica.com</email>
      </address>
    </author>
    <author initials="R." surname="Rokui" fullname="Reza Rokui">
      <organization>Ciena</organization>
      <address>
        <email>rrokui@ciena.com</email>
      </address>
    </author>
    <author initials="L." surname="Jalil" fullname="Luay Jalil">
      <organization>Verizon</organization>
      <address>
        <email>luay.jalil@verizon.com</email>
      </address>
    </author>

    <date year="2022" month="May" day="04"/>

    
    <workgroup>TEAS Working Group</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>Realizing network slices may require the Service Provider to have the ability to
partition a physical network into multiple logical networks of varying sizes,
structures, and functions so that each slice can be dedicated to specific
services or customers. Multiple network slices can be realized on the same
network while ensuring slice elasticity in terms of network resource
allocation. This document describes a scalable solution to realize network
slicing in IP/MPLS networks by supporting multiple services on top of a single
physical network by relying on compliant domains and nodes to provide
forwarding treatment (scheduling, drop policy, resource usage) on to packets
that carry identifiers that indicate the slicing service that is to be applied
to the packets.</t>



    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>Network slicing allows a Service Provider to create independent and logical
networks on top of a shared physical network infrastructure. Such network
slices can be offered to customers or used internally by the Service Provider
to enhance the delivery of their service offerings. A Service Provider can also
use network slicing to structure and organize the elements of its
infrastructure. The solution discussed in this document works with any path
control technology (such as RSVP-TE, or SR) that can be used by a Service Provider
to realize network slicing in IP/MPLS networks.</t>

<t><xref target="I-D.ietf-teas-ietf-network-slices"/> provides the definition of a network
slice for use within the IETF and discusses the general framework for
requesting and operating IETF Network Slices, their characteristics, and the
necessary system components and interfaces. It also  discusses the function of
an IETF Network Slice Controller and the requirements on its northbound and
southbound interfaces.</t>

<t>This document introduces the notion of a Slice-Flow Aggregate which comprises
of one or more IETF network slice traffic streams. It also describes the
Network Resource Partition (NRP) and the NRP Policy that can be used to
instantiate control and data plane behaviors on select topological elements
associated with the NRP that supports a Slice-Flow
Aggregate - refer <xref target="SliceDefinition"/> for further details.</t>

<t>The IETF Network Slice Controller is responsible for the aggregation of
multiple IETF network traffic streams into a Slice-Flow Aggregate, and for
maintaining the mapping required between them. The mechanisms used by the
controller to determine the mapping of one or more IETF network slice to a
Slice-Flow Aggregate are outside the scope of this document. The focus of this
document is on the mechanisms required at the device level to address the
requirements of network slicing in packet networks.</t>

<t>In a Diffserv (DS) domain <xref target="RFC2475"/>, packets requiring the same forwarding
treatment (scheduling and drop policy) are classified and marked with the
respective Class Selector (CS) Codepoint (or the Traffic Class (TC) field for
MPLS packets <xref target="RFC5462"/>) at the DS domain ingress nodes.  Such packets are said
to belong to a Behavior Aggregate (BA) that has a common set of behavioral
characteristics or a common set of delivery requirements.  At transit nodes,
the CS is inspected to determine the specific forwarding treatment to be
applied before the packet is forwarded.  A similar approach is adopted in this
document to realize network slicing. The solution proposed in this document
does not mandate Diffserv to be enabled in the network to provide a specific
forwarding treatment.</t>

<t>When logical networks associated with an NRP are realized on top of a shared
physical network infrastructure, it is important to steer traffic on the
specific network resources partition that is allocated for a given Slice-Flow
Aggregate.  In packet networks, the packets of a specific Slice-Flow Aggregate
may be identified by one or more specific fields carried within the packet. An
NRP ingress boundary node (where Slice-Flow Aggregate traffic enters the NRP)
populates the respective field(s) in packets that are
mapped to a Slice-Flow Aggregate in order to allow interior NRP nodes to
identify and apply the specific Per NRP Hop Behavior (NRP-PHB) associated with the
Slice-Flow Aggregate. The NRP-PHB defines the scheduling treatment and, in some
cases, the packet drop probability.</t>

<t>If Diffserv is enabled within the network, the Slice-Flow Aggregate traffic can
further carry a Diffserv CS to enable differentiation of forwarding treatments
for packets within a Slice-Flow Aggregate.</t>

<t>For example, when using MPLS as a dataplane, it is possible to identify packets
belonging to the same Slice-Flow Aggregate by carrying an identifier in an MPLS Label Stack Entry (LSE).
Additional Diffserv classification may be indicated in the Traffic
Class (TC) bits of the global MPLS label to allow further differentiation of forwarding
treatments for traffic traversing the same NRP.</t>

<t>This document covers different modes of NRPs and discusses how
each mode can ensure proper placement of Slice-Flow Aggregate paths
and respective treatment of Slice-Flow Aggregate traffic.</t>

<section anchor="terminology" title="Terminology">

<t>The reader is expected to be familiar with the terminology specified in
<xref target="I-D.ietf-teas-ietf-network-slices"/>.</t>

<t>The following terminology is used in the document:</t>

<t><list style="hanging">
  <t hangText="IETF Network Slice:"><vspace blankLines='0'/>
  refer to the definition of ‘IETF network slice’ in 
<xref target="I-D.ietf-teas-ietf-network-slices"/>.</t>
  <t hangText="IETF Network Slice Controller (NSC):"><vspace blankLines='0'/>
  refer to the definition in <xref target="I-D.ietf-teas-ietf-network-slices"/>.</t>
  <t hangText="Network Resource Partition:"><vspace blankLines='0'/>
  refer to the definition in <xref target="I-D.ietf-teas-ietf-network-slices"/>.</t>
  <t hangText="Slice-Flow Aggregate:"><vspace blankLines='0'/>
  a collection of packets that match an NRP Policy and are given the same
forwarding treatment; a Slice-Flow Aggregate comprises of one or more IETF
network slice traffic streams; the mapping of one or more IETF network slices
to a Slice-Flow Aggregate is maintained by the IETF Network Slice Controller.
The boundary nodes MAY also maintain a mapping of specific IETF network slice
service(s) to a SFA.</t>
  <t hangText="Network Resource Partition Policy (NRP):"><vspace blankLines='0'/>
  a policy construct that enables instantiation of mechanisms in support 
of IETF network slice specific control and data plane behaviors 
on select topological elements; the enforcement of an NRP Policy 
results in the creation of an NRP.</t>
  <t hangText="NRP Identifier (NRP-ID):"><vspace blankLines='0'/>
  an identifier that is globally unique within an NRP domain and that can
be used in the control or management plane to identify the resources associated with the NRP.</t>
  <t hangText="NRP Capable Node:"><vspace blankLines='0'/>
  a node that supports one of the NRP modes described in this document.</t>
  <t hangText="NRP Incapable Node:"><vspace blankLines='0'/>
  a node that does not support any of the NRP modes described in this document.</t>
  <t hangText="Slice-Flow Aggregate Path:"><vspace blankLines='0'/>
  a path that is setup over the NRP that is associated with a specific Slice-Flow Aggregate.</t>
  <t hangText="Slice-Flow Aggregate Packet:"><vspace blankLines='0'/>
  a packet that traverses over the NRP that is associated with a specific Slice-Flow Aggregate.</t>
  <t hangText="NRP Filter Topology:"><vspace blankLines='0'/>
  a set of topological elements associated with a Network Resource Partition.</t>
  <t hangText="NRP state aware TE (NRP-TE):"><vspace blankLines='0'/>
  a mechanism for TE path selection that takes into account the available network resources associated with a specific NRP.</t>
</list></t>

</section>
<section anchor="acronyms-and-abbreviations" title="Acronyms and Abbreviations">

<t><list style='empty'>
  <t>BA: Behavior Aggregate</t>
</list></t>

<t><list style='empty'>
  <t>CS: Class Selector</t>
</list></t>

<t><list style='empty'>
  <t>NRP-PHB: NRP Per Hop Behavior as described in <xref target="SlicePHB"/></t>
</list></t>

<t><list style='empty'>
  <t>FAS: Flow Aggregate Selector</t>
</list></t>

<t><list style='empty'>
  <t>FASL: Flow Aggregate Selector Label as described in <xref target="SliceSelector"/></t>
</list></t>

<t><list style='empty'>
  <t>SLA: Service Level Agreements</t>
</list></t>

<t><list style='empty'>
  <t>SLO: Service Level Objectives</t>
</list></t>

<t><list style='empty'>
  <t>SLE: Service Level Expectations</t>
</list></t>

<t><list style='empty'>
  <t>Diffserv: Differentiated Services</t>
</list></t>

<t><list style='empty'>
  <t>MPLS: Multiprotocol Label Switching</t>
</list></t>

<t><list style='empty'>
  <t>LSP: Label Switched Path</t>
</list></t>

<t><list style='empty'>
  <t>RSVP: Resource Reservation Protocol</t>
</list></t>

<t><list style='empty'>
  <t>TE: Traffic Engineering</t>
</list></t>

<t><list style='empty'>
  <t>SR: Segment Routing</t>
</list></t>

<t><list style='empty'>
  <t>VRF: VPN Routing and Forwarding</t>
</list></t>

<t><list style='empty'>
  <t>AC: Attachment Circuit</t>
</list></t>

<t><list style='empty'>
  <t>CE: Customer Edge</t>
</list></t>

<t><list style='empty'>
  <t>PE: Provider Edge</t>
</list></t>

<t><list style='empty'>
  <t>PCEP: Path Computation Element (PCE) Communication Protocol (PCEP)</t>
</list></t>

</section>
</section>
<section anchor="network-resource-slicing-membership" title="Network Resource Slicing Membership">

<t>An NRP that supports a Slice-Flow Aggregate can be
instantiated over parts of an IP/MPLS network (e.g., all or specific network
resources in the access, aggregation, or core network), and can stretch across
multiple domains administered by a provider.  The NRP topology may
be comprised of dedicated and/or shared network resources (e.g., in
terms of processing power, storage, and bandwidth).</t>

<t>The physical network resources may be fully dedicated to a specific Slice-Flow
Aggregate.  For example, traffic belonging to a Slice-Flow Aggregate can traverse
dedicated network resources without being subjected to contention from traffic of
other Slice-Flow Aggregates.  Dedicated physical network resource slicing allows for simple
partitioning of the physical network resources amongst Slice-Flow Aggregates without
the need to distinguish packets traversing the dedicated network resources
since only one Slice-Flow Aggregate traffic stream can traverse the dedicated
resource at any time.</t>

<t>To optimize network utilization, sharing of the physical network resources may
be desirable. In such case, the same physical network resource capacity is
divided among multiple NRPs that support multiple Slice-Flow
Aggregates. The shared physical network resources can be
partitioned in the data plane (for example by applying hardware policers and
shapers) and/or partitioned in the control plane by providing a logical
representation of the physical link that has a subset of the network resources
available to it.</t>

</section>
<section anchor="NSRealization" title="IETF Network Slice Realization">

<t><xref target="ns-workflow"/> describes the steps required to realize an IETF network slice
service in a provider network  using the solution proposed in this document.
While Figure 4 of <xref target="I-D.ietf-teas-ietf-network-slices"/> provides an abstract
architecture of an IETF Network Slice, this section intends to offer a
realization of that architecture specific for IP/MPLS packet networks.</t>

<t>Each of the steps is further elaborated on in a subsequent section.</t>

<figure title="IETF network slice realization steps." anchor="ns-workflow"><artwork><![CDATA[
                          --      --      --
                         |CE|    |CE|    |CE|
                          --      --      --
                        AC :    AC :    AC :
                        ----------------------       -------
                       ( |PE|....|PE|....|PE| )     ( IETF  )
      IETF Network    (   --:     --     :--   )   ( Network )
      Slice Service   (     :............:     )   (  Slice  )
      Request          (  IETF Network Slice  )     (       )  Customer
        v               ----------------------       -------     View
        v        ............................\........./...............
        v                                     \       /        Provider
        v    >>>>>>>>>>>>>>>  Slice-Flow       \     /           View
        v   ^                 Aggregate Mapping v   v
        v   ^             -----------------------------------------
        v   ^            ( |PE|.......|PE|........|PE|.......|PE|  )
       ---------        (   --:        --         :--         --    )
      |         |       (     :...................:                 )
      |   NSC   |        (        Network Resource Partition       )
      |         |         -----------------------------------------
      |         |                             ^
      |         |>>>>>  Resource Partitioning |
       ---------          of Filter Topology  |
        v   v                                 |
        v   v            -----------------------------      --------
        v   v           (|PE|..-..|PE|... ..|PE|..|PE|)    (        )
        v   v          ( :--  |P|  --   :-:  --   :--  )  (  Filter  )
        v   v          ( :.-   -:.......|P|       :-   )  ( Topology )
        v   v          (  |P|...........:-:.......|P|  )   (        )
        v   v           (  -    Filter Topology       )     --------
        v   v            -----------------------------       ^
        v    >>>>>>>>>>>>  Topology Filter ^                /
        v        ...........................\............../...........
        v                                    \            /  Underlay
       ----------                             \          /  (Physical)
      |          |                             \        /    Network
      | Network  |    ----------------------------------------------
      |Controller|   ( |PE|.....-.....|PE|......    |PE|.......|PE| )
      |          |  (   --     |P|     --      :-...:--     -..:--   )
       ----------  (    :       -:.............|P|.........|P|        )
           v       (    -......................:-:..-       -         )
            >>>>>>> (  |P|.........................|P|......:        )
        Program the  (  -                           -               )
          Network     ----------------------------------------------
                               (NRP Policies and Paths)*

   * : NRP Policy installation and path placement can be centralized
       or distributed.
]]></artwork></figure>

<section anchor="network-topology-filters" title="Network Topology Filters">

<t>The Physical Network may be filtered into a number of Filter
Topologies.  Filter actions may include selection of specific nodes
and links according to their capabilities and are based on network-
wide policies.  The resulting topologies can be used to host IETF
Network Slices and provide a useful way for the network operator to
know that all of the resources they are using to plan a network
slice meet specific SLOs.  This step can be done offline during
planning activity, or could be performed dynamically
as new demands arise.</t>

<t><xref target="SlicePolicyTopology"/> describes how topology filters can be
associated with the NRP instantiated by the NRP Policy.</t>

</section>
<section anchor="NetworkSliceServiceRequest" title="IETF Network Slice Service Request">

<t>The customer requests an IETF Network Slice Service specifying the
CE-AC-PE points of attachment, the connectivity matrix, and the
SLOs/SLEs as described in <xref target="I-D.ietf-teas-ietf-network-slices"/>.
These capabilities are always provided based on a Service Level Agreement (SLA)
between the network slice costumer and the provider.</t>

<t>This defines the traffic flows that need to be supported
when the slice is realized.  Depending on the mechanism and
encoding of the Attachment Circuit (AC), the IETF Network Slice Service may also include
information that will allow the operator’s controllers to configure
the PEs to determine what customer traffic is intended
for this IETF Network Slice.</t>

<t>IETF Network Slice Service Requests are likely to arrive at various
times in the life of the network, and may also be modified.</t>

</section>
<section anchor="SliceAggregateMapping" title="Slice-Flow Aggregation">

<t>A network may be called upon to support very many IETF Network
Slices, and this could present scaling challenges in the operation
of the network.  In order to overcome this, the IETF Network Slice
streams may be aggregated into groups according to similar characteristics.</t>

<t>A Slice-Flow Aggregate is a construct that comprises the traffic flows of one or
more IETF Network Slices. The mapping of IETF Network Slices into an Slice-Flow
Aggregate is a matter of local operator policy is a function executed by the
Controller.  The Slice-Flow Aggregate may be preconfigured, created on demand, or
modified dynamically.</t>

</section>
<section anchor="PathPlacement" title="Path Placement over NRP Filter Topology">

<t>Depending on the underlying network technology, the paths are selected in the
network in order to best deliver the SLOs for the different services carried by
the Slice-Flow Aggregate.  The path placement function (carried on ingress node
or by a controller) is performed on the Filter Topology that is
selected to support the Slice-Flow Aggregate.</t>

<t>Note that this step may indicate the need to increase the capacity of the
underlying Filter Topology or to create a new Filter Topology.</t>

</section>
<section anchor="nrp-policy-installation" title="NRP Policy Installation">

<t>A Controller function programs the physical network with policies for handling
the traffic flows belonging to the Slice-Flow Aggregate.  These policies instruct
underlying routers how to handle traffic for a specific Slice-Flow Aggregate: the
routers correlate markers present in the packets that belong to the Slice-Flow
Aggregate.  The way in which the NRP Policy is
installed in the routers and the way that the traffic is marked is
implementation specific. The NRP Policy instantiation in the network is
further described in <xref target="SlicePolicyInstantiation"/>.</t>

</section>
<section anchor="path-instantiation" title="Path Instantiation">

<t>Depending on the underlying network technology, a Controller function may
install the forwarding state specific to the Slice-Flow Aggregate so that traffic is
routed along paths derived in the Path Placement step described in
<xref target="PathPlacement"/>.  The way in which the paths are instantiated is
implementation specific.</t>

</section>
<section anchor="service-mapping" title="Service Mapping">

<t>The edge points can be configured to support the network slice service by
mapping the customer traffic to Slice-Flow Aggregates, possibly using
information supplied when the IETF network slice service was requested.  The
edge points may also be instructed to mark the packets so that the network
routers will know which policies and routing instructions to apply.
The steering of traffic onto Slice-Flow Aggregate paths is further described in <xref target="TrafficToSFAPath"/>.</t>

</section>
</section>
<section anchor="SliceModes" title="Network Resource Partition Modes">

<t>An NRP Policy can be used to dictate if the network resource partitioning
of the shared network resources among multiple Slice-Flow Aggregates can be achieved:</t>

<t><list style="format %c)" counter="bar">
  <t>in data plane only,</t>
  <t>in control plane only, or</t>
  <t>in both control and data planes.</t>
</list></t>

<section anchor="DataplaneSlicing" title="Data plane Network Resource Partition Mode">

<t>The physical network resources can be partitioned on network devices
by applying a Per Hop forwarding Behavior (PHB) onto packets that traverse the
network devices. In the Diffserv model, a Class Selector (CS) codepoint is carried in the
packet and is used by transit nodes to apply the PHB that
determines the scheduling treatment and drop probability for packets.</t>

<t>When data plane NRP mode is applied, packets need to be forwarded on the
specific NRP that supports the Slice-Flow Aggregate to ensure the proper
forwarding treatment dictated in the NRP Policy is applied (refer to
<xref target="SliceDefinition"/> below).  In this case, a Flow Aggregate Selector
(FAS) must be carried in each packet to identify the Slice-Flow Aggregate that
it belongs to.</t>

<t>The ingress node of an NRP domain adds a FAS field if one is not already
present in each Slice-Flow Aggregate packet. In the data plane NRP mode, the
transit nodes within an NRP domain use the FAS to associate packets with a
Slice-Flow Aggregate and to determine the Network Resource Partition Per Hop
Behavior (NRP-PHB) that is applied to the packet (refer to <xref target="SlicePHB"/> for
further details). The CS is used to apply a Diffserv PHB on to the packet to
allow differentiation of traffic treatment within the same Slice-Flow
Aggregate.</t>

<t>When data plane only NRP mode is used, routers may rely on a
network state independent view of the topology to determine the best paths.
In this case, the best path selection dictates the
forwarding path of packets to the destination. The FAS field carried in each
packet determines the specific NRP-PHB treatment along the
selected path.</t>

</section>
<section anchor="control-plane-network-resource-partition-mode" title="Control Plane Network Resource Partition Mode">

<t>Multiple NRPs can be realized over the same set of physical resources.  Each
NRP is identified by an identifier (NRP-ID) that is globally unique within the
NRP domain. The NRP state reservations for each NRP can be maintained on the
network element or on a controller.</t>

<t>The network reservation states for a specific partition can be represented
in a topology that contains all or a subset of the physical network
elements (nodes and links) and reflect the network state reservations in
that NRP. The logical network resources that appear in the NRP topology can
reflect a part, whole, or in-excess of the physical network resource capacity
(e.g., when oversubscription is desirable).</t>

<t>For example, the physical link bandwidth can be
divided into fractions, each dedicated to an NRP that supports a Slice-Flow Aggregate.
The topology associated with the NRP supporting a Slice-Flow Aggregate
can be used by routing protocols, or by the ingress/PCE when computing NRP state
aware TE paths.</t>

<t>To perform NRP state aware Traffic Engineering (NRP-TE), the resource reservation
on each link needs to be NRP aware. The NRP reservations state can be managed
locally on the device or off device (e.g. on a controller).</t>

<t>The same physical link may be member of multiple slice policies that
instantiate different NRPs. The NRP
reservable or utilized bandwidth on such a link is updated (and may be
advertised) whenever new paths are placed in the network. The NRP
reservation state, in this case, is maintained on each device or off the
device on a resource reservation manager that holds reservation states for
those links in the network.</t>

<t>Multiple NRPs that support Slice-Flow Aggregates can form a group and share the available network
resources allocated to each. In this case, a node can update
the reservable bandwidth for each NRP to take into consideration
the available bandwidth from other NRPs in the same group.</t>

<t>For illustration purposes, <xref target="resource-sharing"/> describes bandwidth partitioning
or sharing amongst a group of NRPs. In Figure 2a, the NRPs identified by the following NRP-IDs:
NRP1, NRP2, NRP3 and NRP4 are not sharing any bandwidths between each
other. In Figure 2b, the NRPs: NRP1 and NRP2 can share the
available bandwidth portion allocated to each amongst them.
Similarly, NRP3 and NRP4 can share amongst themselves any available bandwidth
allocated to them, but they cannot share available bandwidth allocated to
NRP1 or NRP2.  In both cases, the Max Reservable Bandwidth may exceed the
actual physical link resource capacity to allow for over subscription.</t>

<figure title="Bandwidth isolation/sharing among NRPs." anchor="resource-sharing"><artwork><![CDATA[
   I-----------------------------I       I-----------------------------I 
   <--NRP1->                     I       I-----------------I           I
   I---------I                   I       I <-NRP1->        I           I
   I         I                   I       I I-------I       I           I
   I---------I                   I       I I       I       I           I
   I                             I       I I-------I       I           I
   <-----NRP2------>             I       I                 I           I
   I-----------------I           I       I <-NRP2->        I           I
   I                 I           I       I I---------I     I           I
   I-----------------I           I       I I         I     I           I
   I                             I       I I---------I     I           I
   <---NRP3---->                 I       I                 I           I
   I-------------I               I       I NRP1 + NRP2     I           I
   I             I               I       I-----------------I           I
   I-------------I               I       I                             I
   I                             I       I                             I
   <---NRP4---->                 I       I-----------------I           I
   I-------------I               I       I <-NRP3->        I           I
   I             I               I       I I-------I       I           I
   I-------------I               I       I I       I       I           I
   I                             I       I I-------I       I           I
   I NRP1+NRP2+NRP3+NRP4         I       I                 I           I
   I                             I       I <-NRP4->        I           I
   I-----------------------------I       I I---------I     I           I
   <--Max Reservable Bandwidth-->        I I         I     I           I
                                         I I---------I     I           I
                                         I                 I           I
                                         I NRP3 + NRP4     I           I
                                         I-----------------I           I
                                         I NRP1+NRP2+NRP3+NRP4         I
                                         I                             I
                                         I-----------------------------I
                                         <--Max Reservable Bandwidth-->

   (a) No bandwidth sharing              (b) Sharing bandwidth between
       between NRPs.                         NRPs of the same group. 

]]></artwork></figure>

</section>
<section anchor="data-and-control-plane-network-resource-partition-mode" title="Data and Control Plane Network Resource Partition Mode">

<t>In order to support strict guarantees for Slice-Flow
Aggregates, the network resources can be partitioned in both the control plane
and data plane.</t>

<t>The control plane partitioning allows the creation of customized topologies per
NRP that each supports a Slice-Flow Aggregate. The ingress routers or a Path
Computation Engine (PCE) may use the customized topologies and the NRP state
to determine optimal path placement for specific demand flows using NRP-TE.</t>

<t>The data plane partitioning provides isolation for Slice-Flow Aggregate traffic, and
protection when resource contention occurs due to bursts of traffic from other Slice-Flow
Aggregate traffic that traverses the same shared network resource.</t>

</section>
</section>
<section anchor="SlicePolicyInstantiation" title="Network Resource Partition Instantiation">

<t>A network slice can span multiple technologies and multiple administrative
domains.  Depending on the network slice customer requirements, a network
slice can be differentiated from other network slices in terms of data, control,
and management planes.</t>

<t>The customer of a network slice service expresses their intent
by specifying requirements rather than mechanisms to realize the slice as described
in <xref target="NetworkSliceServiceRequest"/>.</t>

<t>The network slice controller is fed with the network slice service
intent and realizes it with an appropriate Network Resource Partition Policy (NRP Policy).
Multiple IETF network slices are mapped to the same Slice-Flow Aggregate as described in <xref target="SliceAggregateMapping"/>.</t>

<t>The network wide consistent NRP Policy definition is distributed to the
devices in the network as shown in <xref target="ns-workflow"/>. The specification of
the network slice intent on the northbound interface of the controller and the
mechanism used to map the network slice to a Slice-Flow Aggregate are outside the scope
of this document and will be addressed in separate documents.</t>

<section anchor="SliceDefinition" title="NRP Policy Definition">

<t>The NRP Policy is network-wide construct that is supplied to network devices,
and may include rules that control the following:</t>

<t><list style="symbols">
  <t>Data plane specific policies: This includes the FAS, any firewall rules or
flow-spec filters, and QoS profiles associated with the NRP Policy and any
classes within it.</t>
  <t>Control plane specific policies: This includes bandwidth reservations, any
network resource sharing amongst slice policies, and reservation preference to
prioritize reservations of a specific NRP over others.</t>
  <t>Topology membership policies: This defines the topology filter policies that dictate
node/link/function membership to a specific NRP.</t>
</list></t>

<t>There is a desire for flexibility in realizing network slices to support the
services across networks consisting of implementations from multiple vendors.  These
networks may also be grouped into disparate domains and deploy various path
control technologies and tunnel techniques to carry traffic across the network.
It is expected that a standardized data model for NRP
Policy will facilitate the instantiation and management of the NRP
on the topological elements selected by the NRP
Policy topology filter.</t>

<t>It is also possible to distribute the NRP Policy to
network devices using several mechanisms, including protocols such as NETCONF
or RESTCONF, or exchanging it using a suitable routing protocol that network
devices participate in (such as IGP(s) or BGP). The extensions to enable
specific protocols to carry an NRP Policy definition will
be described in separate documents.</t>

<section anchor="SliceSelector" title="Network Resource Partition - Flow-Aggregate Selector">

<t>A router should be able to identify a packet belonging to a Slice-Flow Aggregate
before it can apply the associated dataplane forwarding treatment or NRP-PHB.
One or more fields within the packet are used as an FAS to do this.</t>

<t>Forwarding Address Based FAS:</t>

<t><list style='empty'>
  <t>It is possible to assign a different forwarding address (or MPLS forwarding
 label in case of MPLS network) for each Slice-Flow Aggregate on a specific node
 in the network. <xref target="RFC3031"/> states in Section 2.1 that: ‘Some routers
 analyze a packet’s network layer header not merely to choose the packet’s
 next hop, but also to determine a packet’s “precedence” or “class of
 service”’. Assigning a unique forwarding address (or MPLS forwarding label)
 to each Slice-Flow Aggregate allows Slice-Flow Aggregate packets destined to a node
 to be distinguished by the destination address (or
 MPLS forwarding label) that is carried in the packet.</t>
</list></t>

<t><list style='empty'>
  <t>This approach requires maintaining per Slice-Flow Aggregate state
for each destination in the network in both the control and data plane and on
each router in the network. For example, consider a network slicing provider
with a network composed of ‘N’ nodes, each with ‘K’ adjacencies to its
neighbors.  Assuming a node can be reached over ‘M’ different Slice-Flow Aggregates,
the node assigns and advertises reachability to ‘N’ unique
forwarding addresses, or MPLS forwarding labels.
Similarly, each node assigns a unique forwarding address
(or MPLS forwarding label) for each of its ‘K’ adjacencies to enable strict
steering over the adjacency for each slice.  The total number of control and data plane states that
need to be stored and programmed in a router’s forwarding is (N+K)*M states.
Hence, as ‘N’, ‘K’, and ‘M’ parameters increase, this approach suffers from scalability challenges
in both the control and data planes.</t>
</list></t>

<t>Global Identifier Based FAS:</t>

<t><list style='empty'>
  <t>An NRP Policy may include a Global Identifier FAS (G-FAS) field that is carried
in each packet in order to associate it to the NRP supporting a Slice-Flow Aggregate,
independent of the forwarding address or MPLS forwarding label that is bound to
the destination. Routers within the NRP domain can use the forwarding
address (or MPLS forwarding label) to determine the forwarding next-hop(s),
and use the G-FAS field in the packet to infer the specific forwarding treatment that needs to be applied on
the packet.</t>
</list></t>

<t><list style='empty'>
  <t>The G-FAS can be carried in one of multiple fields within the packet, depending on
the dataplane used. For example, in MPLS networks, the G-FAS can be
encoded within an MPLS label that is carried in the packet’s MPLS label stack.
All packets that belong to the same Slice-Flow Aggregate may carry the same G-FAS in the
MPLS label stack. It is also possible to have multiple G-FAS’s map
to the same Slice-Flow Aggregate.</t>
</list></t>

<t><list style='empty'>
  <t>The G-FAS can be encoded in an MPLS label and may appear in several positions in the MPLS label stack.
For example, the VPN service label may act as a G-FAS to allow VPN packets
to be mapped to the Slice-Flow Aggregate. In this case, a single VPN service label
acting as a G-FAS may be allocated by all Egress PEs of a VPN.
Alternatively, multiple VPN service labels may act as G-FAS’s that map a single VPN to the same Slice-Flow Aggregate to
allow for multiple Egress PEs to allocate different VPN service labels for a VPN.
In other cases, a range of VPN service labels acting as multiple G-FAS’s may map multiple VPN traffic to
a single Slice-Flow Aggregate. An example of such deployment is shown in <xref target="bottom-stack"/>.</t>
</list></t>

<figure title="G-FAS or VPN label at bottom of label stack." anchor="bottom-stack"><artwork><![CDATA[
  SR Adj-SID:          G-FAS (VPN service label) on PE2: 1001
     9012: P1-P2
     9023: P2-PE2

         /-----\        /-----\        /-----\       /-----\
         | PE1 | -----  | P1  | ------ | P2  |------ | PE2 |
         \-----/        \-----/        \-----/       \-----/

In 
packet: 
+------+       +------+         +------+        +------+
| IP   |       | 9012 |         | 9023 |        | 1001 |
+------+       +------+         +------+        +------+
| Pay- |       | 9023 |         | 1001 |        | IP   | 
| Load |       +------+         +------+        +------+
+----- +       | 1001 |         | IP   |        | Pay- |
               +------+         +------+        | Load |
               | IP   |         | Pay- |        +------+
               +------+         | Load |
               | Pay- |         +------+
               | Load |
               +------+
]]></artwork></figure>

<t><list style='empty'>
  <t>In some cases, the position of the G-FAS may not be at a fixed position
in the MPLS label header. In this case, the G-FAS label can show up in any
position in the MPLS label stack. To enable a transit router to identify
the position of the G-FAS label, a special purpose label 
can be used to indicate the presence of a G-FAS
in the MPLS label stack as shown in <xref target="sli-sl"/>.</t>
</list></t>

<figure title="FAI and G-FAS label in the label stack." anchor="sli-sl"><artwork><![CDATA[
     SR Adj-SID:          G-FAS: 1001
        9012: P1-P2
        9023: P2-PE2

            /-----\        /-----\        /-----\       /-----\
            | PE1 | -----  | P1  | ------ | P2  |------ | PE2 |
            \-----/        \-----/        \-----/       \-----/

   In
   packet:
   +------+       +------+         +------+        +------+
   | IP   |       | 9012 |         | 9023 |        | FAI  |
   +------+       +------+         +------+        +------+
   | Pay- |       | 9023 |         | FAI  |        | 1001 |
   | Load |       +------+         +------+        +------+
   +------+       | FAI  |         | 1001 |        | IP   |
                  +------+         +------+        +------+
                  | 1001 |         | IP   |        | Pay- |
                  +------+         +------+        | Load |
                  | IP   |         | Pay- |        +------+
                  +------+         | Load |
                  | Pay- |         +------+
                  | Load |
                  +------+
]]></artwork></figure>

<t><list style='empty'>
  <t>When the slice is realized over an IP dataplane, the G-FAS can be encoded in
the IP header (e.g. as an  IPv6 option header).</t>
</list></t>

</section>
<section anchor="network-resource-partition-resource-reservation" title="Network Resource Partition Resource Reservation">

<t>Bandwidth and network resource allocation strategies for slice policies are
essential to achieve optimal placement of paths within the
network while still meeting the target SLOs.</t>

<t>Resource reservation allows for the management of available bandwidth and the
prioritization of existing allocations to enable preference-based preemption
when contention on a specific network resource arises. Sharing of a network
resource’s available bandwidth amongst a group of NRPs
may also be desirable.  For example, a Slice-Flow Aggregate may not be using all of
the NRP reservable bandwidth; this allows other NRPs in
the same group to use the available bandwidth resources for other Slice-Flow
Aggregates.</t>

<t>Congestion on shared network resources may result from sub-optimal placement
of paths in different slice policies. When this occurs, preemption
of some Slice-Flow Aggregate paths may be desirable to alleviate congestion.
A preference-based allocation scheme enables prioritization of Slice-Flow Aggregate paths
that can be preempted.</t>

<t>Since network characteristics and its state can change over time, the NRP
topology and its network state need to be propagated in the network to enable
ingress TE routers or Path Computation Engine (PCEs) to perform accurate path placement
based on the current state of the NRP network resources.</t>

</section>
<section anchor="SlicePHB" title="Network Resource Partition Per Hop Behavior">

<t>In Diffserv terminology, the forwarding behavior that is assigned to a specific
class is called a Per Hop Behavior (PHB). The PHB defines the forwarding
precedence that a marked packet with a specific CS receives in relation to
other traffic on the Diffserv-aware network.</t>

<t>The NRP Per Hop Behavior (NRP-PHB) is the externally
observable forwarding behavior applied to a specific packet belonging to a
Slice-Flow Aggregate. The goal of an NRP-PHB is to provide a specified amount
of network resources for traffic belonging to a specific Slice-Flow Aggregate.
A single NRP may also support multiple forwarding
treatments or services that can be carried over the same logical network.</t>

<t>The Slice-Flow Aggregate traffic may be identified at NRP ingress boundary
nodes by carrying a FAS to allow routers to apply a specific forwarding
treatment that guarantee the SLA(s).</t>

<t>With Differentiated Services (Diffserv) it is possible to carry  multiple
services over a single converged network. Packets requiring the same forwarding
treatment are marked with a CS at domain ingress nodes. Up to
eight classes or Behavior Aggregates (BAs) may be supported for a given
Forwarding Equivalence Class (FEC) <xref target="RFC2475"/>.  To support multiple
forwarding treatments over the same Slice-Flow Aggregate, a Slice-Flow Aggregate packet may
also carry a Diffserv CS to identify the specific Diffserv forwarding treatment
to be applied on the traffic belonging to the same NRP.</t>

<t>At transit nodes, the CS field carried inside the packets are used to determine the
specific PHB that determines the forwarding and scheduling
treatment before packets are forwarded, and in some cases, drop probability for
each packet.</t>

</section>
<section anchor="SlicePolicyTopology" title="Network Resource Partition Topology">

<t>A key element of the NRP Policy is a customized topology that may include the
full or subset of the physical network topology. The NRP topology
could also span multiple administrative domains and/or multiple dataplane
technologies.</t>

<t>An NRP topology can overlap or share a subset of links
with another NRP topology. A number of topology
filtering policies can be defined as part of the NRP
Policy to limit the specific topology elements that belong to the NRP.
For example, a topology filtering policy can leverage Resource
Affinities as defined in <xref target="RFC2702"/> to include or exclude certain links that
the NRP is instantiated on in supports of the Slice-Flow
Aggregate.</t>

<t>The NRP Policy may also include a reference to a
predefined topology (e.g., derived from a Flexible Algorithm Definition (FAD)
as defined in <xref target="I-D.ietf-lsr-flex-algo"/>, or Multi-Topology ID as defined
<xref target="RFC4915"/>.</t>

</section>
</section>
<section anchor="NRPBoundary" title="Network Resource Partition Boundary">

<t>A network slice originates at the edge nodes of a network slice provider.
Traffic that is steered over the corresponding NRP supporting a Slice-Flow
Aggregate may traverse NRP capable as well as NRP incapable interior nodes.</t>

<t>The network slice may encompass one or more domains administered by a provider.
For example, an organization’s intranet or an ISP.  The network provider
is responsible for ensuring that adequate network resources are
provisioned and/or reserved to support the SLAs offered by the network
end-to-end.</t>

<section anchor="network-resource-partition-edge-nodes" title="Network Resource Partition Edge Nodes">

<t>NRP edge nodes sit at the boundary of a network slice provider network
and receive traffic that requires steering over network resources specific to a
NRP that supports a Slice-Flow Aggregate. These edge nodes are responsible for identifying Slice-Flow
Aggregate specific traffic flows by possibly inspecting multiple fields from
inbound packets (e.g., implementations may inspect IP traffic’s network 5-tuple
in the IP and transport protocol headers) to decide on which NRP it
can be steered.</t>

<t>Network slice ingress nodes may condition the inbound traffic at network boundaries in
accordance with the requirements or rules of each service’s SLAs.  The
requirements and rules for network slice services are set using
mechanisms which are outside the scope of this document.</t>

<t>When data plane NRP mode is employed, the NRP
ingress nodes are responsible for adding a suitable FAS onto
packets that belong to specific Slice-Flow Aggregate.  In addition, edge nodes
may mark the corresponding Diffserv CS to differentiate between different types
of traffic carried over the same Slice-Flow Aggregate.</t>

</section>
<section anchor="network-resource-partition-interior-nodes" title="Network Resource Partition Interior Nodes">

<t>An NRP interior node receives slice traffic and may be able to identify the
packets belonging to a specific Slice-Flow Aggregate by inspecting the FAS
field carried inside each packet, or by inspecting other fields
within the packet that may identify the traffic streams that belong to a specific
Slice-Flow Aggregate. For example, when data plane NRP mode is applied, interior
nodes can use the FAS carried within the packet to apply the corresponding NRP-PHB
forwarding behavior. Nodes within the network slice provider network may also
inspect the Diffserv CS within each packet to apply a per Diffserv class PHB
within the NRP Policy, and allow differentiation of forwarding treatments
for packets forwarded over the same NRP that supports the
Slice-Flow Aggregate.</t>

</section>
<section anchor="NRPIncapbale" title="Network Resource Partition Incapable Nodes">

<t>Packets that belong to a Slice-Flow Aggregate may need to traverse nodes that are
NRP incapable. In this case, several options are possible to
allow the slice traffic to continue to be forwarded over such devices
and be able to resume the NRP forwarding treatment once the traffic
reaches devices that are NRP-capable.</t>

<t>When data plane NRP mode is employed, packets carry a FAS to
allow slice interior nodes to identify them. To support end-to-end network
slicing, the FAS is maintained in the packets as they traverse
devices within the network – including NRP capable and incapable devices.</t>

<t>For example, when the FAS is an MPLS label at the bottom of the MPLS label
stack, packets can traverse over devices that are NRP incapable 
without any further considerations. On the other hand when the FASL
is at the top of the MPLS label stack, packets can be bypassed (or tunneled)
over the NRP incapable devices towards the next device that
supports NRP as shown in <xref target="sl-interworking"/>.</t>

<figure title="Extending network slice over NRP incapable device(s)." anchor="sl-interworking"><artwork><![CDATA[
  SR Node-SID:           FASL: 1001    @@@: NRP Policy enforced
     1601: P1                          ...: NRP Policy not enforced
     1602: P2
     1603: P3
     1604: P4
     1605: P5

            @@@@@@@@@@@@@@ ........................
                                                  .
           /-----\        /-----\        /-----\  .
           | P1  | -----  | P2  | ----- | P3  |   .
           \-----/        \-----/        \-----/  .
                                            |     @@@@@@@@@@
                                            |     
                                         /-----\        /-----\ 
                                         | P4  | ------ | P5  |
                                         \-----/        \-----/


            +------+       +------+        +------+     
            | 1001 |       | 1604 |        | 1001 |     
            +------+       +------+        +------+     
            | 1605 |       | 1001 |        | IP   |     
            +------+       +------+        +------+     
            | IP   |       | 1605 |        | Pay- |     
            +------+       +------+        | Load |     
            | Pay- |       | IP   |        +------+     
            | Load |       +------+                     
            +----- +       | Pay- |                     
                           | Load |                     
                           +------+                     
]]></artwork></figure>

</section>
<section anchor="combining-network-resource-partition-modes" title="Combining Network Resource Partition Modes">

<t>It is possible to employ a combination of the NRP modes that were
discussed in <xref target="SliceModes"/> to realize a network slice. For example, data and
control plane NRP modes can be employed in parts of a network, while
control plane NRP mode can be employed in the other parts of the
network. The path selection, in such case, can take into
account the NRP available network resources.  The FAS carried within
packets allow transit nodes to enforce the corresponding NRP-PHB on the parts of the
network that apply the data plane NRP mode. The FAS can be
maintained while traffic traverses nodes that do not enforce data plane NRP
mode, and so slice PHB enforcement can resume once traffic traverses
capable nodes.</t>

</section>
</section>
</section>
<section anchor="TrafficToSFAPath" title="Mapping Traffic on Slice-Flow Aggregates">

<t>The usual techniques to steer traffic onto paths can be applicable when
steering traffic over paths established for a specific Slice-Flow Aggregate.</t>

<t>For example, one or more (layer-2 or layer-3) VPN services can be directly
mapped to paths established for a Slice-Flow Aggregate. In this case, the per
Virtual Routing and Forwarding (VRF) instance traffic that arrives on the
Provider Edge (PE) router over external interfaces can be directly mapped to a
specific Slice-Flow Aggregate path. External interfaces can be further
partitioned (e.g., using VLANs) to allow mapping one or more VLANs to specific
Slice-Flow Aggregate paths.</t>

<t>Another option is steer traffic to specific destinations directly over multiple
slice policies. This allows traffic arriving on any external interface and
targeted to such destinations to be directly steered over the slice paths.</t>

<t>A third option that can also be used is to utilize a data plane firewall filter
or classifier to enable matching of several fields in the incoming packets to
decide whether the packet belongs to a specific Slice-Flow Aggregate. This option
allows for applying a rich set of rules to identify specific packets to be
mapped to a Slice-Flow Aggregate. However, it requires data plane network resources to
be able to perform the additional checks in hardware.</t>

<section anchor="network-slice-flow-aggregate-relationships" title="Network Slice-Flow Aggregate Relationships">

<t>The following describes the generalization relationships between
the IETF network slice and different parts of the solution
as described in <xref target="ns-workflow"/>.</t>

<t>o A customer may request one or more IETF Network Slices.</t>

<t>o Any given Attachment Circuit (AC) may support the traffic for one or more IETF Network
  Slices. If there is more than one IETF Network Slice using a
  single AC, the IETF Network Slice Service request must include
  enough information to allow the edge nodes to demultiplex the
  traffic for the different IETF Network Slices.</t>

<t>o By definition, multiple IETF Network Slices may be mapped to a
  single Slice-Flow Aggregate.  However, it is possible for an
  Slice-Flow Aggregate to contain just a single IETF Network Slice.</t>

<t>o The physical network may be filtered to multiple Filter
  Topologies.  Each such Filter Topology facilitates
  planning the placement of paths for the Slice-Flow Aggregate by
  presenting only the subset of links and nodes that meet specific
  criteria.  Note, however, in absence of 
  any Filter Topology, Slice-Flow Aggregate are free to
  operate over the full physical network.</t>

<t>o It is anticipated that there may be very many IETF Network Slices supported
  by a network operator over a single physical network.  A network may support a
  limited number of Slice-Flow Aggregates, with each of the Slice-Flow Aggregates
  grouping any number of the IETF Network Slices streams.</t>

</section>
</section>
<section anchor="path-selection-and-instantiation" title="Path Selection and Instantiation">

<section anchor="applicability-of-path-selection-to-slice-flow-aggregates" title="Applicability of Path Selection to Slice-Flow Aggregates">

<t>In State-dependent TE <xref target="I-D.ietf-teas-rfc3272bis"/>, the path selection adapts
based on the current state of the network. The state of the network can be
based on parameters flooded by the routers as described in <xref target="RFC2702"/>.  The
link state is advertised with current reservations, thereby reflecting the
available bandwidth on each link.  Such link reservations may be maintained
centrally on a network wide network resource manager, or distributed on devices
(as usually done with RSVP-TE). TE extensions exist today to allow IGPs (e.g.,
<xref target="RFC3630"/> and <xref target="RFC5305"/>), and BGP-LS <xref target="RFC7752"/> to advertise such link
state reservations.</t>

<t>When the network resource reservations are maintained for NRPs,
the link state can carry per NRP state (e.g.,
reservable bandwidth).  This allows path computation to take into account the
specific network resources available for an NRP.  In this
case, we refer to the process of path placement and path provisioning as NRP
aware TE (NRP-TE).</t>

</section>
<section anchor="applicability-of-path-control-technologies-to-slice-flow-aggregates" title="Applicability of Path Control Technologies to Slice-Flow Aggregates">

<t>The NRP modes described in this document are agnostic to the
technology used to setup paths that carry Slice-Flow Aggregate traffic.
One or more paths connecting the endpoints of the mapped IETF network
slices may be selected to steer the corresponding traffic streams
over the resources allocated for the NRP that
supports a Slice-Flow Aggregate.</t>

<t>The feasible paths can be computed using the NRP topology and network state
subject the optimization metrics and constraints.</t>

<section anchor="rsvp-te-based-slice-flow-aggregate-paths" title="RSVP-TE Based Slice-Flow Aggregate Paths">

<t>RSVP-TE <xref target="RFC3209"/> can be used to signal LSPs over the computed feasible paths
in order to carry the Slice-Flow Aggregate traffic. The specific extensions to the RSVP-TE
protocol required to enable signaling of NRP aware RSVP-TE LSPs are
outside the scope of this document.</t>

</section>
<section anchor="sr-based-slice-flow-aggregate-paths" title="SR Based Slice-Flow Aggregate Paths">

<t>Segment Routing (SR) <xref target="RFC8402"/> can be used to setup and steer traffic over
the computed Slice-Flow Aggregate feasible paths.</t>

<t>The SR architecture defines a number of building blocks that can be leveraged to support
the realization of NRPs that support Slice-Flow Aggregates in an SR network.</t>

<t>Such building blocks include:</t>

<t><list style="symbols">
  <t>SR Policy with or without Flexible Algorithm.</t>
  <t>Steering of services (e.g. VPN) traffic over SR paths</t>
  <t>SR Operation, Administration and Management (OAM) and Performance Management (PM)</t>
</list></t>

<t>SR allows a headend node to steer packets onto specific SR paths using
a Segment Routing Policy (SR Policy). The SR policy supports various
optimization objectives and constraints and can be used to steer Slice-Flow Aggregate
traffic in the SR network.</t>

<t>The SR policy can be instantiated with or without the IGP Flexible Algorithm
(Flex-Algorithm) feature.  It may be possible to dedicate a single SR
Flex-Algorithm to compute and instantiate SR paths for one Slice-Flow Aggregate
traffic. In this case, the SR Flex-Algorithm computed paths and Flex-Algorithm
SR SIDs are not shared by other Slice-Flow Aggregates traffic. However, to allow for better
scale, it may be desirable for multiple Slice-Flow Aggregates traffic to share the
same SR Flex-Algorithm computed paths and SIDs.</t>

</section>
</section>
</section>
<section anchor="network-resource-partition-protocol-extensions" title="Network Resource Partition Protocol Extensions">

<t>Routing protocols may need to be extended to carry additional per NRP link
state. For example, <xref target="RFC5305"/>, <xref target="RFC3630"/>, and <xref target="RFC7752"/> are ISIS, OSPF, and BGP
protocol extensions to exchange network link state information to allow
ingress TE routers and PCE(s) to do proper path placement in the network.  The
extensions required to support network slicing may be defined in other
documents, and are outside the scope of this document.</t>

<t>The instantiation of an NRP Policy may need to be automated. Multiple options
are possible to facilitate automation of distribution of an NRP Policy to
capable devices.</t>

<t>For example, a YANG data model for the NRP Policy may be
supported on network devices and controllers. A suitable transport (e.g.,
NETCONF <xref target="RFC6241"/>, RESTCONF <xref target="RFC8040"/>, or gRPC) may be used to enable
configuration and retrieval of state information for slice policies on network
devices. The NRP Policy YANG data model is outside the scope of this
document.</t>

</section>
<section anchor="outstanding-issues" title="Outstanding Issues">

<t>Note to RFC Editor: Please remove this section prior to publication.</t>

<t>This section records non-blocking issues that were raised during the Working
Group Adoption Poll for the document. The below list of issues needs to be fully
addressed before progressing the document to publication in IESG.</t>

<t><list style="numbers">
  <t>Add new Appendix section with examples for the NRP modes described in
<xref target="SliceModes"/>.</t>
  <t>Add text to clarify the relationship between Slice-Flow Aggregates, the NRP
Policy, and the NRP.</t>
  <t>Remove redundant references to Diffserv behaviors.</t>
  <t>Elaborate on the SFA packet treatment when no rules to associate the packet
to an NRP are defined in the NRP Policy.</t>
  <t>Clarify the NRP instantiation through the NRP Policy enforcement.</t>
  <t>Clarify how the solution caters to the different IETF Network Slice Service
Demarcation Point locations described in Section 4.2 of
<xref target="I-D.ietf-teas-ietf-network-slices"/>.</t>
  <t>Clarify the relationship the underlay physical network, the filter topology
and the NRP resources.</t>
  <t>Expand on how isolation between NRPs can be realized depending on the
deployed NRP mode.</t>
  <t>Revise <xref target="NRPIncapbale"/> to describe how nodes can discover NRP incapable
downstream neighbors.</t>
  <t>Expand <xref target="SecurityConsiderations"/> on additional security threats introduced
with the solution.</t>
  <t>Expand <xref target="NRPBoundary"/> on NRP domain boundary and multi-domain aspects.</t>
</list></t>

</section>
<section anchor="iana-considerations" title="IANA Considerations">

<t>This document has no IANA actions.</t>

</section>
<section anchor="SecurityConsiderations" title="Security Considerations">

<t>The main goal of network slicing is to allow for varying treatment of
traffic from multiple different network slices that are utilizing a common
network infrastructure and to allow for different levels of services to be
provided for traffic traversing a given network resource.</t>

<t>A variety of techniques may be used to achieve this, but the end result will be
that some packets may be mapped to specific resources and may receive
different (e.g., better) service treatment than others.  The mapping of network
traffic to a specific NRP is indicated primarily by the FAS, and hence an
adversary may be able to utilize resources allocated to a specific 
NRP by injecting packets carrying the same FAS field in their packets.</t>

<t>Such theft-of-service may become a denial-of-service attack when the modified
or injected traffic depletes the resources available to forward legitimate
traffic belonging to a specific NRP.</t>

<t>The defense against this type of theft and denial-of-service attacks consists
of a combination of traffic conditioning at NRP domain boundaries
with security and integrity of the network infrastructure within an NRP
domain.</t>

</section>
<section anchor="acknowledgement" title="Acknowledgement">

<t>The authors would like to thank Krzysztof Szarkowicz, Swamy SRK, Navaneetha
Krishnan, Prabhu Raj Villadathu Karunakaran, and Mohamed Boucadair
for their review of this document and for providing valuable feedback on it.
The authors would also like to thank Adrian Farrel for detailed discussions
that resulted in <xref target="NSRealization"/>.</t>

</section>
<section anchor="contributors" title="Contributors">

<t>The following individuals contributed to this document:</t>

<figure><artwork><![CDATA[
   Colby Barth
   Juniper Networks
   Email: cbarth@juniper.net

   Srihari R.  Sangli
   Juniper Networks
   Email: ssangli@juniper.net

   Chandra Ramachandran
   Juniper Networks
   Email: csekar@juniper.net

   Adrian Farrel
   Old Dog Consulting
   United Kingdom
   Email: adrian@olddog.co.uk
]]></artwork></figure>

</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference anchor='RFC3630' target='https://www.rfc-editor.org/info/rfc3630'>
<front>
<title>Traffic Engineering (TE) Extensions to OSPF Version 2</title>
<author fullname='D. Katz' initials='D.' surname='Katz'><organization/></author>
<author fullname='K. Kompella' initials='K.' surname='Kompella'><organization/></author>
<author fullname='D. Yeung' initials='D.' surname='Yeung'><organization/></author>
<date month='September' year='2003'/>
<abstract><t>This document describes extensions to the OSPF protocol version 2 to support intra-area Traffic Engineering (TE), using Opaque Link State Advertisements.</t></abstract>
</front>
<seriesInfo name='RFC' value='3630'/>
<seriesInfo name='DOI' value='10.17487/RFC3630'/>
</reference>



<reference anchor='RFC5305' target='https://www.rfc-editor.org/info/rfc5305'>
<front>
<title>IS-IS Extensions for Traffic Engineering</title>
<author fullname='T. Li' initials='T.' surname='Li'><organization/></author>
<author fullname='H. Smit' initials='H.' surname='Smit'><organization/></author>
<date month='October' year='2008'/>
<abstract><t>This document describes extensions to the Intermediate System to Intermediate System (IS-IS) protocol to support Traffic Engineering (TE).  This document extends the IS-IS protocol by specifying new information that an Intermediate System (router) can place in Link State Protocol Data Units (LSP).  This information describes additional details regarding the state of the network that are useful for traffic engineering computations.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='5305'/>
<seriesInfo name='DOI' value='10.17487/RFC5305'/>
</reference>



<reference anchor='RFC7752' target='https://www.rfc-editor.org/info/rfc7752'>
<front>
<title>North-Bound Distribution of Link-State and Traffic Engineering (TE) Information Using BGP</title>
<author fullname='H. Gredler' initials='H.' role='editor' surname='Gredler'><organization/></author>
<author fullname='J. Medved' initials='J.' surname='Medved'><organization/></author>
<author fullname='S. Previdi' initials='S.' surname='Previdi'><organization/></author>
<author fullname='A. Farrel' initials='A.' surname='Farrel'><organization/></author>
<author fullname='S. Ray' initials='S.' surname='Ray'><organization/></author>
<date month='March' year='2016'/>
<abstract><t>In a number of environments, a component external to a network is called upon to perform computations based on the network topology and current state of the connections within the network, including Traffic Engineering (TE) information.  This is information typically distributed by IGP routing protocols within the network.</t><t>This document describes a mechanism by which link-state and TE information can be collected from networks and shared with external components using the BGP routing protocol.  This is achieved using a new BGP Network Layer Reachability Information (NLRI) encoding format.  The mechanism is applicable to physical and virtual IGP links.  The mechanism described is subject to policy control.</t><t>Applications of this technique include Application-Layer Traffic Optimization (ALTO) servers and Path Computation Elements (PCEs).</t></abstract>
</front>
<seriesInfo name='RFC' value='7752'/>
<seriesInfo name='DOI' value='10.17487/RFC7752'/>
</reference>



<reference anchor='RFC3209' target='https://www.rfc-editor.org/info/rfc3209'>
<front>
<title>RSVP-TE: Extensions to RSVP for LSP Tunnels</title>
<author fullname='D. Awduche' initials='D.' surname='Awduche'><organization/></author>
<author fullname='L. Berger' initials='L.' surname='Berger'><organization/></author>
<author fullname='D. Gan' initials='D.' surname='Gan'><organization/></author>
<author fullname='T. Li' initials='T.' surname='Li'><organization/></author>
<author fullname='V. Srinivasan' initials='V.' surname='Srinivasan'><organization/></author>
<author fullname='G. Swallow' initials='G.' surname='Swallow'><organization/></author>
<date month='December' year='2001'/>
<abstract><t>This document describes the use of RSVP (Resource Reservation Protocol), including all the necessary extensions, to establish label-switched paths (LSPs) in MPLS (Multi-Protocol Label Switching).  Since the flow along an LSP is completely identified by the label applied at the ingress node of the path, these paths may be treated as tunnels.  A key application of LSP tunnels is traffic engineering with MPLS as specified in RFC 2702.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3209'/>
<seriesInfo name='DOI' value='10.17487/RFC3209'/>
</reference>




    </references>

    <references title='Informative References'>




<reference anchor='I-D.ietf-teas-ietf-network-slices'>
   <front>
      <title>Framework for IETF Network Slices</title>
      <author fullname='Adrian Farrel'>
	 <organization>Old Dog Consulting</organization>
      </author>
      <author fullname='John Drake'>
	 <organization>Juniper Networks</organization>
      </author>
      <author fullname='Reza Rokui'>
	 <organization>Ciena</organization>
      </author>
      <author fullname='Shunsuke Homma'>
	 <organization>NTT</organization>
      </author>
      <author fullname='Kiran Makhijani'>
	 <organization>Futurewei</organization>
      </author>
      <author fullname='Luis M. Contreras'>
	 <organization>Telefonica</organization>
      </author>
      <author fullname='Jeff Tantsura'>
	 <organization>Microsoft Inc.</organization>
      </author>
      <date day='27' month='March' year='2022'/>
      <abstract>
	 <t>   This document describes network slicing in the context of networks
   built from IETF technologies.  It defines the term &quot;IETF Network
   Slice&quot; and establishes the general principles of network slicing in
   the IETF context.

   The document discusses the general framework for requesting and
   operating IETF Network Slices, the characteristics of an IETF Network
   Slice, the necessary system components and interfaces, and how
   abstract requests can be mapped to more specific technologies.  The
   document also discusses related considerations with monitoring and
   security.

   This document also provides definitions of related terms to enable
   consistent usage in other IETF documents that describe or use aspects
   of IETF Network Slices.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-teas-ietf-network-slices-10'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-teas-ietf-network-slices-10.txt' type='TXT'/>
</reference>



<reference anchor='RFC2475' target='https://www.rfc-editor.org/info/rfc2475'>
<front>
<title>An Architecture for Differentiated Services</title>
<author fullname='S. Blake' initials='S.' surname='Blake'><organization/></author>
<author fullname='D. Black' initials='D.' surname='Black'><organization/></author>
<author fullname='M. Carlson' initials='M.' surname='Carlson'><organization/></author>
<author fullname='E. Davies' initials='E.' surname='Davies'><organization/></author>
<author fullname='Z. Wang' initials='Z.' surname='Wang'><organization/></author>
<author fullname='W. Weiss' initials='W.' surname='Weiss'><organization/></author>
<date month='December' year='1998'/>
<abstract><t>This document defines an architecture for implementing scalable service differentiation in the Internet.  This memo provides information for the Internet community.</t></abstract>
</front>
<seriesInfo name='RFC' value='2475'/>
<seriesInfo name='DOI' value='10.17487/RFC2475'/>
</reference>



<reference anchor='RFC5462' target='https://www.rfc-editor.org/info/rfc5462'>
<front>
<title>Multiprotocol Label Switching (MPLS) Label Stack Entry: &quot;EXP&quot; Field Renamed to &quot;Traffic Class&quot; Field</title>
<author fullname='L. Andersson' initials='L.' surname='Andersson'><organization/></author>
<author fullname='R. Asati' initials='R.' surname='Asati'><organization/></author>
<date month='February' year='2009'/>
<abstract><t>The early Multiprotocol Label Switching (MPLS) documents defined the form of the MPLS label stack entry.  This includes a three-bit field called the &quot;EXP field&quot;.  The exact use of this field was not defined by these documents, except to state that it was to be &quot;reserved for experimental use&quot;.</t><t>Although the intended use of the EXP field was as a &quot;Class of Service&quot; (CoS) field, it was not named a CoS field by these early documents because the use of such a CoS field was not considered to be sufficiently defined.  Today a number of standards documents define its usage as a CoS field.</t><t>To avoid misunderstanding about how this field may be used, it has become increasingly necessary to rename this field.  This document changes the name of the field to the &quot;Traffic Class field&quot; (&quot;TC field&quot;).  In doing so, it also updates documents that define the current use of the EXP field.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='5462'/>
<seriesInfo name='DOI' value='10.17487/RFC5462'/>
</reference>



<reference anchor='RFC3031' target='https://www.rfc-editor.org/info/rfc3031'>
<front>
<title>Multiprotocol Label Switching Architecture</title>
<author fullname='E. Rosen' initials='E.' surname='Rosen'><organization/></author>
<author fullname='A. Viswanathan' initials='A.' surname='Viswanathan'><organization/></author>
<author fullname='R. Callon' initials='R.' surname='Callon'><organization/></author>
<date month='January' year='2001'/>
<abstract><t>This document specifies the architecture for Multiprotocol Label Switching (MPLS).  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3031'/>
<seriesInfo name='DOI' value='10.17487/RFC3031'/>
</reference>



<reference anchor='RFC2702' target='https://www.rfc-editor.org/info/rfc2702'>
<front>
<title>Requirements for Traffic Engineering Over MPLS</title>
<author fullname='D. Awduche' initials='D.' surname='Awduche'><organization/></author>
<author fullname='J. Malcolm' initials='J.' surname='Malcolm'><organization/></author>
<author fullname='J. Agogbua' initials='J.' surname='Agogbua'><organization/></author>
<author fullname='M. O&apos;Dell' initials='M.' surname='O&apos;Dell'><organization/></author>
<author fullname='J. McManus' initials='J.' surname='McManus'><organization/></author>
<date month='September' year='1999'/>
<abstract><t>This document presents a set of requirements for Traffic Engineering over Multiprotocol Label Switching (MPLS).  It identifies the functional capabilities required to implement policies that facilitate efficient and reliable network operations in an MPLS domain.  This memo provides information for the Internet community.</t></abstract>
</front>
<seriesInfo name='RFC' value='2702'/>
<seriesInfo name='DOI' value='10.17487/RFC2702'/>
</reference>


<reference anchor='I-D.ietf-lsr-flex-algo'>
   <front>
      <title>IGP Flexible Algorithm</title>
      <author fullname='Peter Psenak'>
	 <organization>Cisco Systems</organization>
      </author>
      <author fullname='Shraddha Hegde'>
	 <organization>Juniper Networks</organization>
      </author>
      <author fullname='Clarence Filsfils'>
	 <organization>Cisco Systems</organization>
      </author>
      <author fullname='Ketan Talaulikar'>
	 <organization>Arrcus, Inc</organization>
      </author>
      <author fullname='Arkadiy Gulko'>
	 <organization>Edward Jones</organization>
      </author>
      <date day='7' month='April' year='2022'/>
      <abstract>
	 <t>   IGP protocols traditionally compute best paths over the network based
   on the IGP metric assigned to the links.  Many network deployments
   use RSVP-TE based or Segment Routing based Traffic Engineering to
   steer traffic over a path that is computed using different metrics or
   constraints than the shortest IGP path.  This document proposes a
   solution that allows IGPs themselves to compute constraint-based
   paths over the network.  This document also specifies a way of using
   Segment Routing (SR) Prefix-SIDs and SRv6 locators to steer packets
   along the constraint-based paths.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-lsr-flex-algo-19'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-lsr-flex-algo-19.txt' type='TXT'/>
</reference>



<reference anchor='RFC4915' target='https://www.rfc-editor.org/info/rfc4915'>
<front>
<title>Multi-Topology (MT) Routing in OSPF</title>
<author fullname='P. Psenak' initials='P.' surname='Psenak'><organization/></author>
<author fullname='S. Mirtorabi' initials='S.' surname='Mirtorabi'><organization/></author>
<author fullname='A. Roy' initials='A.' surname='Roy'><organization/></author>
<author fullname='L. Nguyen' initials='L.' surname='Nguyen'><organization/></author>
<author fullname='P. Pillay-Esnault' initials='P.' surname='Pillay-Esnault'><organization/></author>
<date month='June' year='2007'/>
<abstract><t>This document describes an extension to Open Shortest Path First (OSPF) in order to define independent IP topologies called Multi- Topologies (MTs).  The Multi-Topologies extension can be used for computing different paths for unicast traffic, multicast traffic, different classes of service based on flexible criteria, or an in- band network management topology.</t><t>An optional extension to exclude selected links from the default topology is also described.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4915'/>
<seriesInfo name='DOI' value='10.17487/RFC4915'/>
</reference>


<reference anchor='I-D.ietf-teas-rfc3272bis'>
   <front>
      <title>Overview and Principles of Internet Traffic Engineering</title>
      <author fullname='Adrian Farrel'>
	 <organization>Old Dog Consulting</organization>
      </author>
      <date day='24' month='March' year='2022'/>
      <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.

   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='Internet-Draft' value='draft-ietf-teas-rfc3272bis-16'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-teas-rfc3272bis-16.txt' type='TXT'/>
</reference>



<reference anchor='RFC8402' target='https://www.rfc-editor.org/info/rfc8402'>
<front>
<title>Segment Routing Architecture</title>
<author fullname='C. Filsfils' initials='C.' role='editor' surname='Filsfils'><organization/></author>
<author fullname='S. Previdi' initials='S.' role='editor' surname='Previdi'><organization/></author>
<author fullname='L. Ginsberg' initials='L.' surname='Ginsberg'><organization/></author>
<author fullname='B. Decraene' initials='B.' surname='Decraene'><organization/></author>
<author fullname='S. Litkowski' initials='S.' surname='Litkowski'><organization/></author>
<author fullname='R. Shakir' initials='R.' surname='Shakir'><organization/></author>
<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 &quot;segments&quot;.  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='RFC6241' target='https://www.rfc-editor.org/info/rfc6241'>
<front>
<title>Network Configuration Protocol (NETCONF)</title>
<author fullname='R. Enns' initials='R.' role='editor' surname='Enns'><organization/></author>
<author fullname='M. Bjorklund' initials='M.' role='editor' surname='Bjorklund'><organization/></author>
<author fullname='J. Schoenwaelder' initials='J.' role='editor' surname='Schoenwaelder'><organization/></author>
<author fullname='A. Bierman' initials='A.' role='editor' surname='Bierman'><organization/></author>
<date month='June' year='2011'/>
<abstract><t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices.  It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages.  The NETCONF protocol operations are realized as remote procedure calls (RPCs).  This document obsoletes RFC 4741.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='6241'/>
<seriesInfo name='DOI' value='10.17487/RFC6241'/>
</reference>



<reference anchor='RFC8040' target='https://www.rfc-editor.org/info/rfc8040'>
<front>
<title>RESTCONF Protocol</title>
<author fullname='A. Bierman' initials='A.' surname='Bierman'><organization/></author>
<author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'><organization/></author>
<author fullname='K. Watsen' initials='K.' surname='Watsen'><organization/></author>
<date month='January' year='2017'/>
<abstract><t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t></abstract>
</front>
<seriesInfo name='RFC' value='8040'/>
<seriesInfo name='DOI' value='10.17487/RFC8040'/>
</reference>




    </references>



  </back>

<!-- ##markdown-source:
H4sIAGfrcmIAA71963fbVpLn9/tXYO2zx2KHpJ/pTGt6ek3LcqKO7WhFjTOz
m505EAmKiEmAA4CSGVv7t2897wsARSd91h8SkQTus27devyqajQamSZvVtlx
cpGlq/y3vLhO3mfNbVl9TKarfJbVSV4kZ+eP352/neovtUmvrqrs5jj+gV6B
Jsy8nBXpGlqdV+miGV1ldXOVVqMmS+tRUY826exj1oyePjGztMmuy2p3DN0s
SpNvquOkqbZ18+zJk788eWaw1euq3G6Ok8vTyTT5GT7jGL/H78zHbAcPzGEc
RZNVBTT5Gvszpm7SYv6f6aosYAy7rDab/Dj53005GyZ1WTVVtqjhr90a//g/
xqTbZllWx8YkI5PAv7yoob9xMk3TOX3Bk7lMq+yj+7KsrtMi/y1t8rI4Tv6+
LfJNVrk1wkeydZqvYEY1vPPyV35iDOMMe/owTl5lWZWuvb4+5PWy2Cbn6U1a
+L8e3unNFb3V3+3fx8nrEjbLdfr3PHNfhT39sE1vszy5zGbLolyV13kWdPZr
no3n8ObLJT03npXrsLNX4+TnrPD6egV0pd+EXZ2U61laN37z8PB/wsMvZ+nV
KsPG8QG/E+rj9Tg5yWYz2KXVKje2p9fQdrbKot/CPk+rfFbXJQ1H+pzza+OZ
fe1lJk+1eoal/CFdwSoXrtu/l9nK//beDn+FF8ZLfqG/q+k4Oc94i7if6TIt
F1v7ZdjN/7o8hfWsNmVFX3i9beD5cU3vvvytoUUdz4qgqwtYz2XmTekCaFG/
ObSfGTw/rtKir5N/Gydv863r49+2CxiZfhf28qFcNWlA7NLJJ3ppvMq34zxr
Fi+v8evW0r2F+ZQFnP4qrV2Hb7d5nbyLfgr7vQQ6WJRFPku9Plfw3jq/3mbY
kby63lb5alW+bOwLrUHAol6UH7cefV5kv6Xuu+gs5Fnhd1pV+NzLGX7dNb+/
AxNf+XNLd+67aDGBxH4LtmoFT49/xadf3vCP3EVRVmt46SYDDols2n0ajUZJ
elU3VToD5uKukELug5qvkDWMosr+a5tXWdIss2SaVTfwQ3JelTf5HPhXUybL
9IZ/TK/yVd7s4DuzSSu4nWC0SZpslrsa1nNl284LeGu9XTX5Bg43siTv1zop
F8lNWu1wNHX+W1YP4VKotrNmW8HfCVwPyWJbzLDxGu4E6DltkiydLXnMyQxI
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
3AAA

-->

</rfc>

