<?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.3.3 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!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 I-D.ietf-spring-srv6-network-programming SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-spring-srv6-network-programming.xml">
<!ENTITY I-D.filsfils-spring-net-pgm-extension-srv6-usid SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.filsfils-spring-net-pgm-extension-srv6-usid.xml">
<!ENTITY I-D.cheng-spring-shorter-srv6-sid-requirement SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.cheng-spring-shorter-srv6-sid-requirement.xml">
]>

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

<rfc ipr="trust200902" docName="draft-filsfilscheng-spring-srv6-srh-comp-sl-enc-00" category="std">

  <front>
    <title>Compressed SRv6 Segment List Encoding in SRH</title>

    <author initials="W." surname="Cheng" fullname="Weiqiang Cheng" role="editor">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <street></street>
          <country>China</country>
        </postal>
        <email>chengweiqiang@chinamobile.com</email>
      </address>
    </author>
    <author initials="C." surname="Filsfils" fullname="Clarence Filsfils">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street></street>
          <country>Belgium</country>
        </postal>
        <email>cf@cisco.com</email>
      </address>
    </author>
    <author initials="Z." surname="Li" fullname="Zhenbin Li">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <street></street>
          <country>China</country>
        </postal>
        <email>lizhenbin@huawei.com</email>
      </address>
    </author>
    <author initials="D." surname="Cai" fullname="Dennis Cai">
      <organization>Alibaba</organization>
      <address>
        <postal>
          <street></street>
          <country>USA</country>
        </postal>
        <email>d.cai@alibaba-inc.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="F." surname="Clad" fullname="Francois Clad" role="editor">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street></street>
          <country>France</country>
        </postal>
        <email>fclad@cisco.com</email>
      </address>
    </author>
    <author initials="S." surname="Zadok" fullname="Shay Zadok">
      <organization>Broadcom</organization>
      <address>
        <postal>
          <street></street>
          <country>Israel</country>
        </postal>
        <email>shay.zadok@broadcom.com</email>
      </address>
    </author>
    <author initials="J." surname="Guichard" fullname="James N Guichard">
      <organization>Futurewei Technologies Ltd.</organization>
      <address>
        <postal>
          <street></street>
          <country>USA</country>
        </postal>
        <email>james.n.guichard@futurewei.com</email>
      </address>
    </author>
    <author initials="L." surname="Aihua" fullname="Liu Aihua">
      <organization>ZTE Corporation</organization>
      <address>
        <postal>
          <street></street>
          <country>China</country>
        </postal>
        <email>liu.aihua@zte.com.cn</email>
      </address>
    </author>

    <date year="2020" month="May" day="19"/>

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

    <abstract>


<t>This document defines a compressed SRv6 Segment List Encoding in the SRH. This solution does not require any SRH data plane change nor any SRv6 control plane change. This solution leverages the SRv6 Network Programming model.</t>



    </abstract>


  </front>

  <middle>


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

<t>The Segment Routing architecture is defined in <xref target="RFC8402"/>.</t>

<t>SRv6 Network Programming <xref target="I-D.ietf-spring-srv6-network-programming"/> defines a framework to build a network program with topological and service segments carried in a Segment Routing header (SRH) <xref target="RFC8754"/>.</t>

<t>This document adds new flavors to the SR endpoint behaviors defined in <xref target="I-D.ietf-spring-srv6-network-programming"/>. These flavors enable a compressed encoding of the SRv6 Segment-List in the SRH and therefore address the requirements described in <xref target="I-D.cheng-spring-shorter-srv6-sid-requirement"/>.</t>

<t>The flavors defined in this document leverage the SRH data plane without any change and do not require any SRv6 control plane change.</t>

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

<t>This document leverages the terms defined in <xref target="RFC8402"/>, <xref target="RFC8754"/> and <xref target="I-D.ietf-spring-srv6-network-programming"/>. The reader is assumed to be familiar with this terminology.</t>

<t>This document introduces the following new terms:</t>

<t><list style="symbols">
  <t>Compressed-SID (C-SID): A C-SID is a short encoding of a SID in SRv6 packet that does not include the SID block bits (locator block).</t>
  <t>Compressed-SID container (C-SID container): An entry of the SRH Segment-List field (128 bits) that contains a sequence of C-SIDs.</t>
  <t>Compressed-SID sequence (C-SID sequence): A group of one or more C-SID containers in a segment list that share the same SRv6 SID block.</t>
  <t>Uncompressed SID sequence: A group of one or more uncompressed SIDs in a segment list.</t>
  <t>Compressed Segment List encoding: A segment list encoding that reduces the packet header length thanks to one or more C-SID sequences. A compressed Segment List encoding may also contain any number of uncompressed SID sequences.</t>
</list></t>

</section>
<section anchor="basic-concepts" title="Basic Concepts">

<t>In an SRv6 domain, the SIDs are allocated from a particular IPv6 prefix: the SRv6 SID block. Therefore, all SRv6 SIDs instantiated from the same SRv6 SID block share the same most significant bits. These common bits are named Locator-Block in <xref target="I-D.ietf-spring-srv6-network-programming"/>. Furthermore, when the combined length of the SRv6 SID Locator, Function and Argument is smaller than 128 bits, the trailing bits are set to zero.</t>

<t>When a sequence of consecutive SIDs in a Segment List shares a common Locator-Block, a compressed SRv6 Segment-List encoding can optimize the packet header length by avoiding the repetition of the Locator-Block and trailing bits with each individual SID.</t>

<t>The compressed Segment List encoding is fully compliant with the specifications in <xref target="RFC8402"/>, <xref target="RFC8754"/> and <xref target="I-D.ietf-spring-srv6-network-programming"/>. Efficient encoding is achieved by combining a compressed Segment List encoding logic on the SR policy headend with new flavors of the base SRv6 endpoint behaviors that decode this compressed encoding. No SRv6 SRH data plane change nor control plane extension is required.</t>

<t>A Segment List can be encoded in the packet header using any combination of compressed and uncompressed sequences. The C-SID sequences leverage the flavors defined in this document, while the uncompressed sequences use behaviors and flavors defined in other documents, such as <xref target="I-D.ietf-spring-srv6-network-programming"/>. An SR Policy headend constructs and compresses the SID-list depending on the capabilities of each SR endpoint node that the packet should traverse, as well as its own compression capabilities.</t>

<t>It is expected that compressed encoding flavors be available on devices with limited packet manipulation capabilities, such as legacy ASICs.</t>

<t>The compressed Segment List encoding supports any SRv6 SID Block allocation. While other options are supported and may provide higher efficiency, each routing domain can be allocated a /48 prefix from a global IPv6 block (see <xref target="sec-c-sid-block"/>).</t>

</section>
<section anchor="sr-endpoint-flavors" title="SR Endpoint Flavors">

<t>This section defines several options to achieve compressed Segment List encoding, in the form of two new flavors for the END, END.X and END.T behaviors of <xref target="I-D.ietf-spring-srv6-network-programming"/>. These flavors could also be combined with behaviors defined in other documents.</t>

<t>The compressed encoding can be achieved by leveraging any of these SR endpoint flavors. The NEXT-C-SID flavor and the REPLACE-C-SID flavor expose the same high-level behavior in their use of the SID argument to determine the next segment to be processed, but they have different low-level characteristics that can make one more or less efficient that the other for a particular SRv6 deployment. The NEXT-and-REPLACE-C-SID flavor is the combination of the NEXT-C-SID flavor and the REPLACE-C-SID flavor. It provides the best efficiency in terms of encapsulation size at the cost of increased complexity.</t>

<t>It is recommended for ease of operation that a single compressed encoding flavor be used in a given SRv6 domain. However, in a multi-domain deployment, different flavors can be used in different domains.</t>

<t>All three flavors leverage the following variables:</t>

<t><list style="symbols">
  <t>Variable B is the Locator Block length of the SID.</t>
  <t>Variable NF is the sum of the Locator Node and the Function lengths of the SID. It is also referred to as C-SID length.</t>
  <t>Variable A is the Argument length of the SID.</t>
</list></t>

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

<t>A SID instantiated with the NEXT-C-SID flavor takes an argument that carries the remaining C-SIDs in the current C-SID container.</t>

<t>The length A of the argument is equal to 128-B-NF and should be a multiple of NF.</t>

<figure><artwork><![CDATA[
+----------------------------------------------------+
| Locator-Block | Locator-Node | Function | Argument |
+----------------------------------------------------+
 <----- B -----> <--------- NF ----------> <-- A --->
]]></artwork></figure>

<t>Pseudo-code:</t>

<figure><artwork><![CDATA[
 1.   If (DA.Argument != 0) {
 2.     Copy DA.Argument into the bits [B..(B+A-1)] of the
          Destination Address of the IPv6 header.
 3.     Set the bits [(B+A)..(B+NF+A-1)] of the Destination Address
          of the IPv6 header to zero.
 4.   } Else {
 5.     Decrement Segments Left by 1.
 6.     Copy Segment List[Segments Left] from the SRH to the
          Destination Address of the IPv6 header.
 7.   }
]]></artwork></figure>

<t>Note: <spanx style="verb">DA.Argument</spanx> identifies the bits <spanx style="verb">[(B+NF)..(B+NF+A-1)]</spanx> in the Destination Address of the IPv6 header.</t>

<t>The NEXT-C-SID flavor has been previously documented in <xref target="I-D.filsfils-spring-net-pgm-extension-srv6-usid"/> under the name "SHIFT" flavor. In that context, a C-SID and a C-SID-sequence are respectively named a Micro-Segment (uSID) and a Micro-Program.</t>

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

<t>A SID instantiated with the REPLACE-C-SID flavor takes an argument, which is used to determine the index of the next C-SID in the appropriate container.</t>

<t>All SIDs that are part of a C-SID sequence using the REPLACE-C-SID flavor have the same C-SID length NF.</t>

<t>The length A of the argument should be at least ceil(log_2(128/NF)).</t>

<figure><artwork><![CDATA[
+----------------------------------------------------+
| Locator-Block | Locator-Node | Function | Argument |
+----------------------------------------------------+
 <----- B -----> <--------- NF ----------> <-- A --->
]]></artwork></figure>

<t>Pseudo-code:</t>

<figure><artwork><![CDATA[
 1.   If (DA.Argument != 0) {
 2.     Decrement DA.Argument by 1.
 3.   } Else {
 4.     Decrement Segments Left by 1.
 5.     Set DA.Argument to (128/NF - 1).
 6.   }
 7.   Copy Segment List[Segments Left][DA.Argument] into the bits
        [B..B+NF-1] of the Destination Address of the IPv6 header.
]]></artwork></figure>

<t>Notes:</t>

<t><list style="symbols">
  <t><spanx style="verb">DA.Argument</spanx> identifies the bits <spanx style="verb">[(B+NF)..(B+NF+A-1)]</spanx> in the Destination Address of the IPv6 header.</t>
  <t><spanx style="verb">Segment List[Segments Left][DA.Argument]</spanx> identifies the bits <spanx style="verb">[DA.Argument*NF..(DA.Argument+1)*NF-1]</spanx> in the SRH Segment List entry at index Segments Left.</t>
</list></t>

<t>The REPLACE-C-SID flavor has been previously documented in <xref target="draft-cl-spring-generalized-srv6-for-cmpr"/> under the name "COC(Continue of Compression)" flavor. In that context, a C-SID and a C-SID-sequence are respectively named a G-SID and G-SRv6 compression sub-path.</t>

</section>
<section anchor="combined-next-and-replace-c-sid-flavor" title="Combined NEXT-and-REPLACE-C-SID Flavor">

<t>A SID instantiated with the NEXT-and-REPLACE-C-SID flavor takes a two-parts argument comprising, Arg.Next and Arg.Index, and encoded in the SID in this order.</t>

<t>The length A_I of Arg.Index is equal to ceil(log_2(128/NF)).</t>

<t>The length A_N of Arg.Next is equal to 128-B-NF-A_I and must be a multiple of NF.</t>

<t>The total SID argument length A is the sum of A_I and A_N.</t>

<t>The NEXT-and-REPLACE-C-SID flavor also leverages an additional variable, C_DA, that is equal to (1 + (A_N/NF)) and represents the number of C-SID's that can be encoded in the IPv6 Destination Address.</t>

<t>All SIDs that are part of a C-SID sequence using the NEXT-and-REPLACE-C-SID flavor must have the same C-SID length NF. Furthermore, this NF must be a divisor of 128.</t>

<figure><artwork><![CDATA[
+----------------------------------------------------------------+
| Locator-Block | Locator-Node | Function | Arg.Next | Arg.Index |
+----------------------------------------------------------------+
 <----- B -----> <--------- NF ----------> <- A_N --> <-- A_I -->
]]></artwork></figure>

<t>Pseudo-code:</t>

<figure><artwork><![CDATA[
 1.   If (DA.Arg.Next != 0) {
 2.     Copy DA.Arg.Next into the bits [B..(B+A_N-1)] of the
          Destination Address of the IPv6 header.
 3.     Set the bits [(B+A_N)..(B+NF+A_N-1)] of the Destination Address
          of the IPv6 header to zero.
 4.   } Else If (DA.Arg.Index >= C_DA) {
 5.     Decrement DA.Arg.Index by C_DA.
 6.     Copy C_DA*NF bits from Segment List[Segments Left][DA.Arg.Index] 
          into the bits [B..B+C_DA*NF-1] of the Destination Address of
          the IPv6 header.
 7.   } Else If (Segments Left != 0) {
 8.     Decrement Segments Left by 1.
 9.     Set DA.Arg.Index to ((DA.Arg.Index - C_DA) % (128/NF)).
10.     Copy C_DA*NF bits from Segment List[Segments Left][DA.Arg.Index] 
          into the bits [B..B+C_DA*NF-1] of the Destination Address of
          the IPv6 header.
11.   } Else {
12.     Copy DA.Arg.Index*NF bits from Segment List[0][0] into the bits
          [B..B+DA.Arg.Index*NF-1] of the Destination Address of the
          IPv6 header.
13.     Set the bits [B+DA.Arg.Index*NF..B+F+A_N-1] of the Destination
          Address of the IPv6 header to zero.
14.     Set DA.Arg.Index to 0.
15.   }
]]></artwork></figure>

<t>Notes:</t>

<t><list style="symbols">
  <t><spanx style="verb">DA.Arg.Next</spanx> identifies the bits <spanx style="verb">[(B+NF)..(B+NF+A_N-1)]</spanx> in the Destination Address of the IPv6 header.</t>
  <t><spanx style="verb">DA.Arg.Index</spanx> identifies the bits <spanx style="verb">[(B+NF+A_N)..(B+NF+A_N+A_I-1)]</spanx> in the Destination Address of the IPv6 header.</t>
  <t><spanx style="verb">Segment List[Segments Left][DA.Arg.Index]</spanx> identifies the bits <spanx style="verb">[DA.Arg.Index*NF..(DA.Arg.Index+1)*NF-1]</spanx> in the SRH Segment List entry at index Segments Left.</t>
</list></t>

</section>
</section>
<section anchor="gib-lib-global-c-sid-and-local-c-sid" title="GIB, LIB, global C-SID and local C-SID">

<t>GIB: The set of IDs available for global C-SID allocation.</t>

<t>LIB: The set of IDs available for local C-SID allocation.</t>

<section anchor="global-c-sid" title="Global C-SID">

<t>A C-SID from the GIB.</t>

<t>A Global C-SID typically identifies a shortest-path to a node in the SRv6 domain. An IP route is advertised by the parent node to each of its global C-SID's, under the associated C-SID block. The parent node executes a variant of the END behavior.</t>

<t>A node can have multiple global C-SID's under the same C-SID blocks (e.g. one per IGP flexible algorithm). Multiple nodes may share the same global C-SID (anycast).</t>

</section>
<section anchor="local-c-sid" title="Local C-SID">

<t>A C-SID from the LIB.</t>

<t>A local C-SID may identify a cross-connect to a direct neighbor over a specific interface or a VPN context.</t>

<t>No IP route is advertised by a parent node for its local C-SID's.</t>

<t>If N1 and N2 are two different physical nodes of the SRv6 domain and I is a local C-SID value, then N1 and N2 may bind two different behaviors to I.</t>

<t>The concept of LIB is applicable to SRv6 and specifically to its NEXT-C-SID and REPLACE-C-SID flavors. The shorter the SID/C-SID, the more benefit the LIB brings.</t>

<t>The allocation of C-SID's from the GIB and LIB depends on the C-SID length (see <xref target="sec-c-sid-lib-recommendation"/>).</t>

</section>
</section>
<section anchor="c-sid-and-block-length" title="C-SID and Block Length">

<section anchor="sec-c-sid-length" title="C-SID Length">

<t>The NEXT-C-SID flavor allows</t>

<t><list style="symbols">
  <t>to place multiple C-SID's in the DA</t>
  <t>to mix C-SID's of different sizes in the DA/any container</t>
  <t>to process multiple C-SID's at once (with one single FIB lookup)</t>
</list></t>

<t>For these reasons, the NEXT-C-SID flavor benefits from a lower C-SID length granularity and 16 bits is recommended.</t>

<t>The REPLACE-C-SID flavor does not allow</t>

<t><list style="symbols">
  <t>to place multiple C-SID's in the DA</t>
  <t>to mix C-SID's of different sizes in the DA/any container</t>
  <t>to process multiple C-SID's at once (with one single FIB lookup)</t>
</list></t>

<t>For these reasons, the REPLACE-C-SID flavor must "replace" more bits when updating the DA. A longer C-SID length is needed, and 32 bits is recommended.</t>

<t>Note: Appendix A describes the problems that arise if REPLACE-C-SID is used with 16-bit C-SID length</t>

<t>In summary:</t>

<t><list style="symbols">
  <t>NEXT-C-SID: 16-bit C-SID length</t>
  <t>REPLACE-C-SID: 32-bit C-SID length</t>
</list></t>

</section>
<section anchor="sec-c-sid-block" title="Block Length">

<t>The compressed Segment List encoding supports any SRv6 SID Block allocation either from GUA or LUA space.</t>

<t>The recommended SRv6 SID block sizes for the NEXT-C-SID flavor are  16, 32 or 48 bits. The smaller the block, the higher the compression efficiency.</t>

<t>The recommended SRv6 SID block size for the REPLACE-C-SID flavor can be 48, 56, 64, 72 or 80 bits, depending on the needs of the operator.</t>

</section>
<section anchor="sec-c-sid-lib-recommendation" title="GIB/LIB Usage">

<t>The previous block and C-SID length recommendations, call for the following GIB/LIB usage:</t>

<t><list style="symbols">
  <t>NEXT-C-SID:
  <list style="symbols">
      <t>GIB: END.NEXT-C-SID</t>
      <t>LIB: END.X.NEXT-C-SID, END.DX.NEXT-C-SID, END.DT.NEXT-C-SID</t>
      <t>LIB: END.DX.NEXT-C-SID for large-scale PW support</t>
    </list></t>
  <t>REPLACE-C-SID:
  <list style="symbols">
      <t>GIB: END.REPLACE-C-SID, END.X.REPLACE-C-SID, END.DX.REPLACE-C-SID, END.DT.REPLACE-C-SID</t>
      <t>LIB: END.DX.REPLACE-C-SID for large-scale PW support</t>
    </list></t>
</list></t>

</section>
</section>
<section anchor="efficient-sid-list-encoding" title="Efficient SID-list Encoding">

<t>The compressed SID-list encoding logic is a local behavior of the SR Policy headend node and hence out of the scope of this document.</t>

</section>
<section anchor="control-plane" title="Control Plane">

<t>This document does not require any control plane modification.</t>

</section>
<section anchor="illustrations" title="Illustrations">

<t>Illustrations will be provided in a separate document.</t>

</section>
<section anchor="security-considerations" title="Security Considerations">

<t>TBD</t>

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

<t>TBD</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC8402;
&RFC8754;
&I-D.ietf-spring-srv6-network-programming;


    </references>

    <references title='Informative References'>

&I-D.filsfils-spring-net-pgm-extension-srv6-usid;
&I-D.cheng-spring-shorter-srv6-sid-requirement;
<reference anchor="draft-cl-spring-generalized-srv6-for-cmpr" >
  <front>
    <title>Generalized SRv6 Network Programming for SRv6 Compression</title>
    <author initials="W." surname="Cheng">
      <organization></organization>
    </author>
    <author initials="Z." surname="Li">
      <organization></organization>
    </author>
    <author initials="C." surname="Li">
      <organization></organization>
    </author>
    <author initials="F." surname="Clad">
      <organization></organization>
    </author>
    <author initials="A." surname="Liu">
      <organization></organization>
    </author>
    <author initials="C." surname="Xie">
      <organization></organization>
    </author>
    <author initials="Y." surname="Liu">
      <organization></organization>
    </author>
    <author initials="S." surname="Zadok">
      <organization></organization>
    </author>
    <date year="2020" month="May"/>
  </front>
  <seriesInfo name="draft-cl-spring-generalized-srv6-for-cmpr-00 (work in progress)" value=""/>
</reference>


    </references>


<section anchor="problems-with-replace-c-sid-flavor-and-16-bit-c-sids" title="Problems with REPLACE-C-SID flavor and 16-bit C-SIDs">

<t>In this section, we show the problems that would arise if REPLACE-C-SID is used with C-SID length of 16bits.</t>

<t>The use of 16-bit C-SIDs requires to allocate END.X.REPLACE-C-SID, END.DT.REPLACE-C-SID and END.DX.REPLACE-C-SID SIDs from the LIB.</t>

<t>In the case of an END.REPLACE-C-SID SID followed by an END.X.REPLACE-C-SID SID instantiated on the same node, this would require to:</t>

<t><list style="symbols">
  <t>Lookup the END.REPLACE-C-SID SID in the DA</t>
  <t>Replace active C-SID with the next one in SRH</t>
  <t>Lookup the END.X.REPLACE-C-SID SID in the DA</t>
  <t>Replace active C-SID with the next one in SRH</t>
  <t>Forward the packet via X-connect</t>
</list></t>

<t>In the case of an END.REPLACE-C-SID SID following by an END.DT.REPLACE-C-SID SID instantiated on the same node, this would require to:</t>

<t><list style="symbols">
  <t>Lookup the END.REPLACE-C-SID SID in the DA</t>
  <t>Replace active C-SID with the next one in SRH</t>
  <t>Lookup the END.DT.REPLACE-C-SID SID in the DA</t>
  <t>Decapsulate the packet</t>
  <t>Lookup the inner DA in the appropriate table</t>
  <t>Forward the packet</t>
</list></t>

<t>This double or triple lookup is a major inefficiency if one would want to deploy the REPLACE-C-SID flavor with 16-bit C-SIDs. It really mandates the use of 32-bit C-SIDs, such that END.X.REPLACE-C-SID, END.DT.REPLACE-C-SID and END.DX.REPLACE-C-SID SIDs can be allocated from the GIB and it is not required to prefix them with an END.REPLACE-C-SID SID.</t>

</section>


  </back>

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

-->

</rfc>

