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


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

<!ENTITY RFC8402 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8402.xml">
<!ENTITY RFC8754 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8754.xml">
<!ENTITY RFC8986 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8986.xml">
<!ENTITY RFC6437 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6437.xml">
<!ENTITY RFC6438 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6438.xml">
<!ENTITY I-D.ietf-teas-ietf-network-slices SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-teas-ietf-network-slices.xml">
<!ENTITY I-D.bestbar-teas-ns-packet SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.bestbar-teas-ns-packet.xml">
]>


<rfc ipr="trust200902" docName="draft-filsfils-spring-srv6-stateless-slice-id-08" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="SRv6 Stateless Slice Identification">Stateless and Scalable Network Slice Identification for SRv6</title>

    <author initials="C." surname="Filsfils" fullname="Clarence Filsfils" role="editor">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street></street>
          <country>Belgium</country>
        </postal>
        <email>cf@cisco.com</email>
      </address>
    </author>
    <author initials="F." surname="Clad" fullname="Francois Clad" role="editor">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street></street>
          <country>France</country>
        </postal>
        <email>fclad.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="P." surname="Camarillo" fullname="Pablo Camarillo">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street></street>
          <country>Spain</country>
        </postal>
        <email>pcamaril@cisco.com</email>
      </address>
    </author>
    <author initials="K." surname="Raza" fullname="Kamran Raza">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street></street>
          <country>Canada</country>
        </postal>
        <email>skraza@cisco.com</email>
      </address>
    </author>
    <author initials="D." surname="Voyer" fullname="Daniel Voyer">
      <organization>Bell Canada</organization>
      <address>
        <postal>
          <street></street>
          <country>Canada</country>
        </postal>
        <email>daniel.voyer@bell.ca</email>
      </address>
    </author>
    <author initials="R." surname="Rokui" fullname="Reza Rokui">
      <organization>Ciena</organization>
      <address>
        <postal>
          <street></street>
          <country>Canada</country>
        </postal>
        <email>rrokui@ciena.com</email>
      </address>
    </author>

    <date year="2023" month="August" day="01"/>

    <area>General</area>
    <workgroup>SPRING</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This document defines a stateless and scalable solution to achieve network slicing with SRv6.</t>



    </abstract>



  </front>

  <middle>


<section anchor="introduction"><name>Introduction</name>

<t>SRv6 Network Programming<xref target="RFC8986"/> enables the creation of overlays with underlay optimization to be deployed in an SR domain<xref target="RFC8402"/>.</t>

<t>As defined in <xref target="RFC8754"/>, all inter-domain packets are encapsulated for the part of the packet journey that is within the SR domain. The outer IPv6 header is originated by a node of the SR domain and is destined to a node of the SR domain.</t>

<t>This document describes a stateless encoding of slice identification in the outer IPv6 header of an SR domain. The slice identification is independent of topology and the QoS/DiffServ policy of the network, thus enabling scalable network slicing for SRv6 overlays.</t>

<t>The definition of network slicing in the context of networks built from IETF technologies is specified in <xref target="I-D.ietf-teas-ietf-network-slices"/>.  It defines the term "IETF Network Slice" and establishes the general principles of network slicing in the IETF context. It also 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.</t>

</section>
<section anchor="sec-slid"><name>Slice Identifier</name>

<t>The Slice Identifier (SLID) is a value encoded within the IPv6 packet that allows transit routers to process the packet according to network slice-based policy. An example of slice-based policy that can be enforced using the SLID is described in <xref target="sec-bandwidth"/>.</t>

<t>The SLID may identify a unique IETF network slice or a group of slices that share the same policy. For example, a SLID may identify a slice aggregate <xref target="I-D.bestbar-teas-ns-packet"/>.</t>

<t>This document proposes to encode the SLID in a portion of the IPv6 Flow Label.</t>

<t>The precise SLID location within the IPv6 Flow Label and the number of bits used to encode it are governed by local policy and uniform within the SR domain.</t>

</section>
<section anchor="sec-spi"><name>SLID Presence Indicator</name>

<t>The SLID Presence Indicator (SPI) is set by a SLID-capable IPv6 source node to inform transit routers that a SLID is encoded in the packet.</t>

<t>The SPI is encoded as a specific bit or range of values in the Traffic Class field of the IPv6 header.</t>

<t>The encoding of the SPI in the IPv6 header is governed by local policy and uniform within the SR domain.</t>

</section>
<section anchor="sec-ingress"><name>Ingress PE SLID Assignment</name>

<t>When an ingress PE receives a packet that traverses the SR domain, it encapsulates the packet in an outer IPv6 header and optional SRH as defined in <xref target="RFC8754"/>. The ingress PE MAY also classify the packet into a slice and set the slice identifier as follows:</t>

<t><list style="symbols">
  <t>Set the SPI in the outer IPv6 header.</t>
  <t>Write the SLID in the outer IPv6 header.</t>
</list></t>

<t>The slice classification method is outside the scope of this document.</t>

</section>
<section anchor="sec-forwarding"><name>Per-Slice Forwarding</name>

<t>Any router within the SR domain that forwards a packet with SPI bit set uses the SLID to select a slice and apply per-slice policies.</t>

<t>There are many different policies that could define a slice for a particular application or service. The most basic of these is bandwidth-allocation, an implementation complying with this specification SHOULD support the bandwidth-allocation slice as defined in the next section.</t>

</section>
<section anchor="sec-bandwidth"><name>Bandwidth-Allocation Slice</name>

<t>A per-slice policy is configured at each interface of each router in the SR domain, with one traffic shaper per SLID. The bitrate of each shaper is configured to reflect the bandwidth allocation of the per-slice policy.</t>

<t>If shapers are not available, or desirable, an implementation MAY configure one scheduling queue per SLID with a guaranteed bandwidth equal to the bandwidth-allocation for the slice. This option allows a slice to consume more bandwidth than its allocation when available.</t>

<t>Per-slice shapers or queues effectively provides a virtual port per slice. This solution MAY be complemented with a per-virtual-port hierarchical DiffServ policy. Within the context of one specific slice, packets are further classified into children DiffServ queues which hang from the virtual port. The DSCP value in the IPv6 header SHOULD be used for queue selection.</t>

</section>
<section anchor="sec-backward-compatibility"><name>Backward Compatibility</name>

<t>The Flow Label usage described in this document is consistent with <xref target="RFC6437"/> and <xref target="RFC6438"/>.</t>

<t>PE routers that do not set the SPI do not enable the SLID semantic of the Flow Label bits. Hence, SLID-aware routers would not attempt to classify these packets into a slice.</t>

<t>Any router that does not process the SPI nor the SLID forwards packets as usual.</t>

</section>
<section anchor="acknowledgements"><name>Acknowledgements</name>

<t>The authors would like to thank Darren Dukes, Ketan Talaulikar, Jisu Bhattacharya, John Bettink, Aman Manot, and David Melman for their insightful feedback on this document.</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>

&RFC8402;
&RFC8754;
&RFC8986;


    </references>

    <references title='Informative References'>

&RFC6437;
&RFC6438;
&I-D.ietf-teas-ietf-network-slices;
&I-D.bestbar-teas-ns-packet;


    </references>



  </back>

<!-- ##markdown-source:
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
MKSrGKi2sepw74WgEE+Es+e9+zdH/8+SzBcAAA==

-->

</rfc>

