<?xml version="1.0" encoding="us-ascii"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.6.5 (Ruby 2.7.0) -->


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

<!ENTITY RFC8402 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8402.xml">
<!ENTITY RFC8754 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8754.xml">
<!ENTITY RFC8986 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8986.xml">
<!ENTITY I-D.filsfilscheng-spring-srv6-srh-compression SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.filsfilscheng-spring-srv6-srh-compression.xml">
<!ENTITY RFC5095 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5095.xml">
<!ENTITY RFC4193 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4193.xml">
]>


<rfc ipr="trust200902" docName="draft-clad-spring-srv6-srh-compression-illus-01" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Illustrations for SRv6 SL Comp in SRH">Illustrations for Compressed SRv6 Segment List Encoding in SRH</title>

    <author initials="F." surname="Clad" fullname="Francois Clad" role="editor">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <country>France</country>
        </postal>
        <email>fclad@cisco.com</email>
      </address>
    </author>
    <author initials="D." surname="Dukes" fullname="Darren Dukes" role="editor">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <country>Canada</country>
        </postal>
        <email>ddukes@cisco.com</email>
      </address>
    </author>

    <date year="2022" month="April" day="19"/>

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

    <abstract>


<t>This document provides illustrations for compressed SRv6 Segment List Encoding in the Segment Routing Header (SRH).</t>



    </abstract>



  </front>

  <middle>


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

<t>This document provides illustrations for <xref target="I-D.filsfilscheng-spring-srv6-srh-compression"/> compressed SRv6 Segment List Encoding in the Segment Routing Header (SRH).</t>

</section>
<section anchor="terminology"><name>Terminology</name>

<t>This document leverages the terminology introduced in <xref target="RFC8402"/>, <xref target="RFC8754"/>, and <xref target="RFC8986"/>. The definition of the most important terms is reproduced in this section for convenience.</t>

<section anchor="from-rfc-8402"><name>From RFC 8402</name>

<t>Segment Routing domain (SR domain): the set of nodes participating in the source-based routing model.  These nodes may be connected to the same physical infrastructure (e.g., a Service Provider&#39;s network). They may as well be remotely connected to each other (e.g., an enterprise VPN or an overlay).  If multiple protocol instances are deployed, the SR domain most commonly includes all of the protocol instances in a network.  However, some deployments may wish to subdivide the network into multiple SR domains, each of which includes one or more protocol instances.  It is expected that all nodes in an SR domain are managed by the same administrative entity.</t>

</section>
<section anchor="from-rfc-8754"><name>From RFC 8754</name>

<t>SR Source Node (section 3.1): A SR source node is any node that originates an IPv6 packet with a segment (i.e., SRv6 SID) in the destination address of the IPv6 header.</t>

<t>Transit Node (section 3.2): A transit node is any node forwarding an IPv6 packet where the destination address of that packet is not locally configured as a segment or a local interface. A transit node is not required to be capable of processing a segment or SRH.</t>

<t>SR Segment Endpoint Node (section 3.3): An SR segment endpoint node is any node receiving an IPv6 packet where the destination address of that packet is locally configured as a segment or local interface.</t>

</section>
<section anchor="from-rfc-8986"><name>From RFC 8986</name>

<t>SID Format: This document defines an SRv6 SID as consisting of LOC:FUNCT:ARG, where a locator (LOC) is encoded in the L most significant bits of the SID, followed by F bits of function (FUNCT) and A bits of arguments (ARG). L, the locator length, is flexible, and an operator is free to use the locator length of their choice. F and A may be any value as long as L+F+A &lt;= 128. When L+F+A is less than 128, then the remaining bits of the SID MUST be zero. A locator may be represented as B:N where B is the SRv6 SID block (IPv6 prefix allocated for SRv6 SIDs by the operator) and N is the identifier of the parent node instantiating the SID.</t>

</section>
</section>
<section anchor="intra-sr-domain-deployment-model"><name>Intra-SR-Domain Deployment Model</name>
<t>(The content of this section is a partial reproduction of section 5 for <xref target="RFC8754"/>.)</t>

<t>The use of the SIDs exclusively within the SR domain and solely for packets of the SR domain is an important deployment model.</t>

<t>This enables the SR domain to act as a single routing system.</t>

<section anchor="securing-the-sr-domain"><name>Securing the SR Domain</name>

<t>(The reader can easily understand that the dual measures provided can prevent SR packets from leaving the SR domain.)</t>

<t>Nodes outside the SR domain are not trusted: they cannot directly use the SIDs of the domain. This is enforced by two levels of access control lists:</t>

<t><list style="symbols">
  <t>Any packet entering the SR domain and destined to a SID within the SR domain is dropped. This may be realized with the following logic. Other methods with equivalent outcome are considered compliant:
  <list style="symbols">
      <t>Allocate all the SIDs from a block S/s</t>
      <t>Configure each external interface of each edge node of the domain with an inbound infrastructure access list (IACL) that drops any incoming packet with a destination address in S/s</t>
      <t>Failure to implement this method of ingress filtering exposes the SR domain to source-routing attacks, as described and referenced in <xref target="RFC5095"/></t>
    </list></t>
  <t>The distributed protection in #1 is complemented with per-node protection, dropping packets to SIDs from source addresses outside the SR domain. This may be realized with the following logic. Other methods with equivalent outcome are considered compliant:
  <list style="symbols">
      <t>Assign all interface addresses from prefix A/a</t>
      <t>At node k, all SIDs local to k are assigned from prefix Sk/sk</t>
      <t>Configure each internal interface of each SR node k in the SR domain with an inbound IACL that drops any incoming packet with a destination address in Sk/sk if the source address is not in A/a.</t>
    </list></t>
</list></t>

</section>
</section>
<section anchor="general-addressing"><name>General Addressing</name>

<t>The illustrations in this document use the IPv6 documentation prefix 2001:db8::/32.</t>

<t>Loopback interface addresses are allocated from the prefix 2001:db8:a::/48.</t>

<t>SRv6 SIDs are allocated from the prefix 2001:db8:b::/48.</t>

<t>An operator deploying this solution could instead select any sub-prefix out of the prefix allocated by their Regional Internet Registry (RIR) to this operator or from the Unique Local Unicast (ULA) prefix. ULA provides the uniqueness and privacy characteristics defined in Section 1 of <xref target="RFC4193"/>.</t>

</section>
<section anchor="next-c-sid-flavor"><name>NEXT-C-SID Flavor</name>

<figure title="Reference topology"><artwork><![CDATA[
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        N11           N13           N15           N17              |
|
 N10                                                            N19|
|
               N12           N14           N16           N18       |
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                             SR domain
]]></artwork></figure>

<t>N10 to N19 represent the potential SR source and SR segment endpoint nodes in the SR domain.</t>

<t>The SR domain may include any number of transit nodes (not shown) between the nodes that are represented in this figure.</t>

<section anchor="addressing-and-srv6-sid-allocation"><name>Addressing and SRv6 SID allocation</name>

<t>Nodes N10 to N19 have a loopback interface configured with the address 2001:db8:a:NN00::, where NN is the node identifier.</t>

<t>Nodes N10 to N19 instantiate the SID 2001:db8:b:NN00::, where NN is the node identifier, with Locator-Block length (LBL) = 48, Locator-Node length (LNL)= 16, Function length (FL) = 0, Argument length (AL) = 64, and bound to the End behavior with the NEXT-C-SID and USD flavors.</t>

<t>The &quot;Endpoint&quot; (or &quot;End&quot;) behavior is the most basic operation that can be performed by an SR segment endpoint node (i.e., a node that identifies the destination address of a received packet as matching a locally instantiated SID). It updates the destination address of the packet with the next SID in the segment list. The pseudocode of the End behavior with the NEXT-C-SID and USD flavors is specified in section 4.1.1 of <xref target="I-D.filsfilscheng-spring-srv6-srh-compression"/>.</t>

</section>
<section anchor="routing"><name>Routing</name>

<t>Nodes N10 to N19 advertise the prefixes 2001:db8:a:NN00::/64 and 2001:db8:b:NN00::/64, where NN is the node identifier, in the IGP.</t>

</section>
<section anchor="case-1-intra-domain-traffic-engineering"><name>Case 1: Intra-domain Traffic Engineering</name>

<t>Let us assume that a centralized controller programs N11 to classify the traffic from 2001:db8:a:1000:: to 2001:db8:a:1900:: into an SR Policy encoded through an IPv6 encapsulation with:</t>

<t><list style="symbols">
  <t>IPv6
  <list style="symbols">
      <t>Source address 2001:db8:a:1100::</t>
      <t>Destination address 2001:db8:b:1200:1300:1400:1500:1600</t>
      <t>Next Header = 43 (Routing header)</t>
    </list></t>
  <t>SRH
  <list style="symbols">
      <t>Segment List &lt; 2001:db8:b:1200:1300:1400:1500:1600, 2001:db8:b:1700:1800:: &gt;</t>
      <t>Segments Left = 1</t>
      <t>Next Header = 41 (IPv6)</t>
    </list></t>
</list></t>

<t>For illustration purposes, we use SID allocation that allows for a straightforward human reading of a compressed segment list. Indeed, &lt; 2001:db8:b:1200:1300:1400:1500:1600, 2001:db8:b:1700:1800:: &gt; means: within the domain 2001:db8:b::, go first through node N12 then N13, N14, N15, and N16, then retrieve the next segment list entry from the SRH and go through node N17 before decapsulating the packet at node N18.</t>

<t>This is compliant with the <xref target="RFC8986"/> because the SID meets the Locator:Function:Argument format definition (Section 3.1 of <xref target="RFC8986"/>). For example, the packet sent by node N11 has a destination address 2001:db8:b:1200:1300:1400:1500:1600 where 2001:db8:b:1200/64 is the Locator and 0x1300140015001600 is the Argument.</t>

<t>A packet in transit towards a given SID (e.g. 2001:db8:b:1200:1300:1400:1500:1600), is forwarded by transit nodes via a longest-match lookup on the destination address of the packet. This results in a match of the  SID locator (in this case, 2001:db8:b:1200::/64), the transit node then forwards the packet accordingly. The SID function and argument bits are opaque to transit nodes. The function is only identified at the SR segment endpoint node (represented by the SID locator in the destination address) which further processes the argument.</t>

<t>Also note the source N11 performs IPv6 header encapsulation with SRH, and the selected SID list containing function/arguments to be processed at some endpoints, because we are in a source routed domain within a secured SR domain.</t>

<t>The remainder of this section details the packet journey.</t>

<t>The packet Px transmitted by a node Nn is identified as &quot;@Nn Px&quot;.</t>

<figure><artwork><![CDATA[
@N10 P1:(IPv6 2001:db8:a:1000::, 2001:db8:a:1900::)
]]></artwork></figure>

<t>N11 (as programmed by the centralized controller) encapsulates the packet P1 and submits the updated packet (P2) to the IPv6 module for transmission. It performs an IP lookup on the destination address, matching an entry for the prefix 2001:db8:b:1200::/64 advertised by N12. N11 forwards the packet on its shortest path towards to node N12.</t>

<figure><artwork><![CDATA[
@N11 P2:(IPv6 2001:db8:a:1100::, 2001:db8:b:1200:1300:1400:1500:1600)
        (SRH 2001:db8:b:1700:1800::, 
             2001:db8:b:1200:1300:1400:1500:1600;
             SL=1)
        (IPv6 2001:db8:a:1000::, 2001:db8:a:1900::)
]]></artwork></figure>

<t>The transit nodes between N11 and N12 forward P1 as per their route 2001:db8:b:1200::/64 to N12. Similarly, the transit nodes between each subsequent pair of consecutive SR segment endpoint nodes forwards the packet as per their IPv6 routes for the destination address. Those transit nodes are plain IPv6 routers with the plain IPv6 dataplane, they do not need to have any knowledge of SRv6.</t>

<t>The hop limit of packet P1 is decremented at every transit node and every SR segment endpoint node.</t>

<t>When the packet reaches the first SR segment endpoint node N12 (i.e., the first TE waypoint), this performs a longest-prefix-match lookup on the IPv6 destination address. This lookup returns a FIB entry that represents a locally instantiated SRv6 SID bound to the End behavior with the NEXT-C-SID flavor. N12 processes the packet accordingly, resulting in a new destination address. It then submits the updated packet to the IPv6 module for transmission. This triggers an IP lookup on the destination address, matching an entry for the prefix 2001:db8:b:1300::/64 advertised by N13. The packet is forwarded on the shortest path towards N13.</t>

<figure><artwork><![CDATA[
@N12 P2:(IPv6 2001:db8:a:1100::, 2001:db8:b:1300:1400:1500:1600:0000)
        (SRH 2001:db8:b:1700:1800::,
             2001:db8:b:1200:1300:1400:1500:1600;
             SL=1)
        (IPv6 2001:db8:a:1000::, 2001:db8:a:1900::)
]]></artwork></figure>

<t>The subsequent SR segment endpoint nodes N13 to N17 process the packet similarly.</t>

<figure><artwork><![CDATA[
@N13 P2:(IPv6 2001:db8:a:1100::, 2001:db8:b:1400:1500:1600:0000:0000)
        (SRH 2001:db8:b:1700:1800::, 
             2001:db8:b:1200:1300:1400:1500:1600;
             SL=1)
        (IPv6 2001:db8:a:1000::, 2001:db8:a:1900::)
]]></artwork></figure>

<figure><artwork><![CDATA[
@N14 P2:(IPv6 2001:db8:a:1100::, 2001:db8:b:1500:1600:0000:0000:0000)
        (SRH 2001:db8:b:1700:1800::, 
             2001:db8:b:1200:1300:1400:1500:1600;
             SL=1)
        (IPv6 2001:db8:a:1000::, 2001:db8:a:1900::)
]]></artwork></figure>

<figure><artwork><![CDATA[
@N15 P2:(IPv6 2001:db8:a:1100::, 2001:db8:b:1600:0000:0000:0000:0000)
        (SRH 2001:db8:b:1700:1800::,
             2001:db8:b:1200:1300:1400:1500:1600;
             SL=1)
        (IPv6 2001:db8:a:1000::, 2001:db8:a:1900::)
]]></artwork></figure>

<t>When the packet is processed by the SR segment endpoint node N16, the SID argument value is 0. As per the pseudocode of the End behavior with the NEXT-C-SID and USD flavors, N16 retrieves the next SID by decrementing the value of segments left in the SRH and copying the next entry from the SRH segment list into the destination address.</t>

<figure><artwork><![CDATA[
@N16 P2:(IPv6 2001:db8:a:1100::, 2001:db8:b:1700:1800::)
        (SRH 2001:db8:b:1700:1800::,
             2001:db8:b:1200:1300:1400:1500:1600;
             SL=0)
        (IPv6 2001:db8:a:1000::, 2001:db8:a:1900::)
]]></artwork></figure>

<figure><artwork><![CDATA[
@N17 P2:(IPv6 2001:db8:a:1100::, 2001:db8:b:1800:0000::)
        (SRH 2001:db8:b:1700:1800::,
             2001:db8:b:1200:1300:1400:1500:1600;
             SL=0)
        (IPv6 2001:db8:a:1000::, 2001:db8:a:1900::)
]]></artwork></figure>

<t>When the packet reaches the final SR segment endpoint node N18, both the SID argument value and the segments left value in the SRH are 0. As per the pseudocode of the End behavior with the NEXT-C-SID and USD flavors, N18 decapsulates the packet and sends the inner packet P1 towards its destination 2001:db8:a:1900::.</t>

<figure><artwork><![CDATA[
@N18 P1:(IPv6 2001:db8:a:1000::, 2001:db8:a:1900::)
]]></artwork></figure>

</section>
<section anchor="case-2-icmpv6-error-generation-at-a-transit-node"><name>Case 2: ICMPv6 error generation at a transit node</name>

<t>Let us assume in the previous example that the hop limit expires on a transit node N141, located on the path between the SR segment endpoint nodes N14 and N15.</t>

<t>The packet sent by node N14 is as follows (reproduced from the previous section).</t>

<figure><artwork><![CDATA[
@N14 P2:(IPv6 2001:db8:a:1100::, 2001:db8:b:1500:1600:0000:0000:0000)
        (SRH 2001:db8:b:1700:1800::,
             2001:db8:b:1200:1300:1400:1500:1600;
             SL=1)
        (IPv6 2001:db8:a:1000::, 2001:db8:a:1900::)
]]></artwork></figure>

<t>Node N141 generates an ICMPv6 time exceeded error message as follows.</t>

<figure><artwork><![CDATA[
@N141 P3: (IPv6 <any address of node N141>, 2001:db8:a:1100::)
          (ICMPv6 time exceeded error
            (IPv6 2001:db8:a:1100::,
                  2001:db8:b:1500:1600:0000:0000:0000)
            (SRH 2001:db8:b:1700:1800::,
                 2001:db8:b:1200:1300:1400:1500:1600;
                 SL=1)
            (IPv6 2001:db8:a:1000::, 2001:db8:a:1900::))
]]></artwork></figure>

<t>Node N11 receives the ICMP error packet transmitted by N141. Section 5.4 of <xref target="RFC8754"/> indicates that a destination address of the invoking packet is determined by looking at <spanx style="verb">Segment List[0]</spanx>.</t>

</section>
<section anchor="case-3-ping-a-sid"><name>Case 3: Ping a SID</name>

<t>The operator wants to ping the End with NEXT-C-SID flavor SID 2001:db8:b:1200:: of N12 from the SR source node N10.</t>

<t>The ICMP echo request is sent by N10 as follows.</t>

<figure><artwork><![CDATA[
@N10 P1:(IPv6 2001:db8:a:1000::, 2001:db8:b:1200::)
        (ICMPv6 echo request)
]]></artwork></figure>

<t>This results in an ICMP echo reply from N12 to N10.</t>

<figure><artwork><![CDATA[
@N12 P2:(IPv6 2001:db8:b:1200::, 2001:db8:a:1000::)
        (ICMPv6 echo reply)
]]></artwork></figure>

</section>
</section>
<section anchor="replace-c-sid-flavor"><name>REPLACE-C-SID Flavor</name>

<t>TBD</t>

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

<t>TBD</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>

&RFC8402;
&RFC8754;
&RFC8986;
&I-D.filsfilscheng-spring-srv6-srh-compression;


    </references>

    <references title='Informative References'>

&RFC5095;
&RFC4193;


    </references>



  </back>

<!-- ##markdown-source:
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

-->

</rfc>

