<?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.7.5 (Ruby 3.1.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-09" category="std" consensus="true" submissionType="IETF" 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>
          <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>
          <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>
          <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>
          <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>
          <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>
          <country>Canada</country>
        </postal>
        <email>rrokui@ciena.com</email>
      </address>
    </author>

    <date year="2024" month="January" day="29"/>

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

    <abstract>


<?line 67?>

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



    </abstract>



  </front>

  <middle>


<?line 71?>

<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' anchor="sec-normative-references">

&RFC8402;
&RFC8754;
&RFC8986;


    </references>

    <references title='Informative References' anchor="sec-informative-references">

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


    </references>



  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA6VYTZPbuBG981egdi+bKlFxOY7Xnks8ntlZK7Y3ymgSVyqV
A0SCEiIS4AKgZNk1/z2vGyBFauRUPg5TJZKN/nz9ujF5nmdBh1pdiVWQQdXK
eyFNKVaFrOW6VuIXFQ7W7cSq1oUSi1KZoCtdyKCtEZV1YnW/f5nJ9dqp/RU/
jDRdOpSVtjCygcXSySrkla49/eW+ddpscu/2L3Pfq8g9qch1mT97nZV4eZVB
jdpYd7wSPpSZ79aN9h6KH44tlC5+erjLCmu8Mr7zVyK4TmWZbh3/9OH5s2ev
nz3PpFPySvysjHKyzijCjbNdiwiW94tffs526oiXJfSZoJxRIb8lb7Os1Vfi
78EWM+GtC05VHr+ODf34R5bJLmytu8pEngmhDezfzMVdihCvYuA3NcwbZGb0
xbqNNPoLpwgS2hdWrI4+qAYGFqaYQ8ZZKpQqdbAOj6qRur4SRfWmIPF5YRu8
LWxnAmXnrao3umtGvtzNyXQ5+HHnpCms9v3b/92HqoCGuVaherOhN+e+sCU1
cmUJV2Qjna5rO/izBOLs5P1/4lFyoS3iucvJWLVSm5H993NxL7/IwfR72cDF
/t1/YdbvHM5cNnojjSzlyOrtXPzVHpUbzN7CjKqHl1O7KGA96OjtlXxivqcT
b9aQmBfy39q8R6R21+nB5r36IodX55EqM7LlHEkhNrz9RmxZZqxrcHyPzhTi
/u7m1Ytnz/ufP/7+Rf/z9auXV+hDU52Jv3zxux9PP19BJs9zIdc+OFmg3x62
wCcoo2tAIqJUlTYKFCX8hK58T1fe1h1TU7BCFlut9kqYRGFEJWAYcdBhy0w1
j8YaXZY1SOJ7anZny65gnsqYzHr+Wzq7cbJpoODr1xTQ46NAZmDWi7BVogCn
sG1bCbtXrpZHH411puRHYdugm5RucnGtEFJbo5glqoVQ4BeiRfpNtIJkPj7C
z2ufYme5+A3ZfXycCQmUaGKpPB4UrSx2KiAxTsG/Qra+q5GskumaHG2lC+Rk
/E3C4p+2A8sd8UoGoaPbUEUSg0dz8YBH28GUWCyRm62SiIvErdMbbdjI+ojq
GFuq3sJwnitF1VQ+cCRUo8ui86eF94XT67PSIzpbUklxngeF0NMBlUJ46jMO
jJMdQ7uswkMLiqQMvWdPbWtruzlyPKT+z3b121tdVSvl9gLfdHHsI0rYm+Gh
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

-->

</rfc>

