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

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!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.ietf-spring-segment-routing-policy SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-spring-segment-routing-policy.xml">
<!ENTITY I-D.ietf-lsr-isis-srv6-extensions SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lsr-isis-srv6-extensions.xml">
<!ENTITY I-D.ietf-bess-srv6-services SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-bess-srv6-services.xml">
<!ENTITY I-D.ietf-idr-bgpls-srv6-ext SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-idr-bgpls-srv6-ext.xml">
<!ENTITY I-D.ietf-spring-sr-service-programming SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-spring-sr-service-programming.xml">
<!ENTITY I-D.ietf-6man-spring-srv6-oam SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-6man-spring-srv6-oam.xml">
<!ENTITY I-D.ietf-lsr-flex-algo SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lsr-flex-algo.xml">
<!ENTITY I-D.ietf-rtgwg-segment-routing-ti-lfa SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-rtgwg-segment-routing-ti-lfa.xml">
]>

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

<rfc ipr="trust200902" docName="draft-ietf-spring-compression-requirement-03" category="info">

  <front>
    <title abbrev="SRCOMP Requirements">Compressed SRv6 SID List Requirements</title>

    <author initials="W." surname="Cheng" fullname="Weiqiang Cheng">
      <organization>China Mobile</organization>
      <address>
        <email>chengweiqiang@chinamobile.com</email>
      </address>
    </author>
    <author initials="C." surname="Xie" fullname="Chongfeng Xie">
      <organization>China Telecom</organization>
      <address>
        <email>xiechf@chinatelecom.cn</email>
      </address>
    </author>
    <author initials="R." surname="Bonica" fullname="Ron Bonica">
      <organization>Juniper</organization>
      <address>
        <email>rbonica@juniper.net</email>
      </address>
    </author>
    <author initials="D." surname="Dukes" fullname="Darren Dukes">
      <organization>Cisco Systems</organization>
      <address>
        <email>ddukes@cisco.com</email>
      </address>
    </author>
    <author initials="C." surname="Li" fullname="Cheng Li">
      <organization>Huawei</organization>
      <address>
        <email>c.l@huawei.com</email>
      </address>
    </author>
    <author initials="P." surname="Shaofu" fullname="Peng Shaofu">
      <organization>ZTE</organization>
      <address>
        <email>peng.shaofu@zte.com.cn</email>
      </address>
    </author>
    <author initials="W." surname="Henderickx" fullname="Wim Henderickx">
      <organization>Nokia</organization>
      <address>
        <email>wim.henderickx@nokia.com</email>
      </address>
    </author>

    <date year="2023" month="April" day="03"/>

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

    <abstract>


<t>This document specifies requirements for solutions to compress SRv6 SID lists.</t>



    </abstract>


  </front>

  <middle>


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

<t>The SPRING working group defined SRv6, with <xref target="RFC8402"/> describing how the Segment Routing (SR) architecture is instantiated on two data-planes: SR over MPLS (SR-MPLS) and SR over IPv6 (SRv6). SRv6 uses a routing header called the SR Header (SRH) <xref target="RFC8754"/> and defines SRv6 SID behaviors and a registry for identifying them in <xref target="RFC8986"/>. SRv6 is a proposed standard and is deployed today.</t>

<t>The SPRING working group has observed that some use cases, such as strict path TE, may require long SRv6 SID lists. There are several proposed methods to reduce the resulting SRv6 encapsulation size by compressing the SID list.</t>

<t>The SPRING working group formed a design team to define requirements for, and analyze proposals to, compress SRv6 SID lists.</t>

<t>It is a goal of the design team to identify solutions to SRv6 SID list compression that are based on the SRv6 standards. As such, this document provides requirements for SRv6 SID list compression solutions that utilize the existing SRv6 data plane and control plane.</t>

<t>It is also a goal of the design team to consider proposals that are not based on the SRv6 data plane and control plane. As such, this document includes requirements to evaluate whether a compression proposal provides all the functionality of SRv6 (section "SRv6 Functionality") in addition to satisfying compression specific requirements.</t>

<t>For each requirement, a description, rationale and metrics are described.</t>

<t>The design team will produce a separate document to analyze the proposals.</t>

<t>This document is a draft; additional requirements are under review, additional requirements will be added, and current requirements may change. Appendix A contains a subset of requirements without unanimous consensus.  Additional requirements without unanimous consensus are not in the appendix.</t>

</section>
<section anchor="conventions-used-in-this-document" title="Conventions used in this document">

<section anchor="requirements-language" title="Requirements Language">

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>

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

<t>SR: Segment Routing</t>

<t>SRH: Segment Routing Header</t>

<t>MPLS: Multiprotocol Label Switching</t>

<t>SR-MPLS: Segment Routing over MPLS data plane</t>

<t>SID: Segment Identifier</t>

<t>SRv6: Segment Routing over IPv6</t>

<t>SRv6 SID List: A list of SRv6 SIDs</t>

<t>Compression proposal: A proposal to compress SRv6 SID lists</t>

<t>SRv6 base: SRv6 as defined in <xref target="RFC8402"/>, <xref target="RFC8754"/>, <xref target="RFC8986"/></t>

<t>SID numbering space: may be implemented as</t>

<t><list style="symbols">
  <t>a single IGP instance</t>
  <t>a single IGP level or area</t>
  <t>two or more autonomous systems that coordinate SID numbering space</t>
  <t>two or more IGP instances that coordinate SID numbering space</t>
</list></t>

<t>SRv6 Encapsulation Header: The IPv6 header, and any extension headers preceding a payload, used to implement a SRv6 base or compression proposal.</t>

</section>
</section>
<section anchor="srv6-sid-list-compression-requirements" title="SRv6 SID List Compression Requirements">

<section anchor="dataplane-efficiency-and-performance-requirements" title="Dataplane Efficiency and Performance Requirements">

<section anchor="encapsulation-header-size" title="Encapsulation Header Size">
<t>Description: The compression proposal MUST reduce the size of the SRv6 encapsulation header.</t>

<t>Rationale: A smaller SRv6 encapsulation results in better MTU efficiency.</t>

<t>Metric: Compression is the ratio of the IPv6 encapsulation size of SRv6 as defined in <xref target="RFC8402"/>, <xref target="RFC8754"/>, <xref target="RFC8986"/> vs the IPv6 encapsulation size of a given proposal.  The encapsulation savings of a compression proposal vs the SRv6 base is a useful measurement to compare proposals.</t>

<t>The encapsulation metric (E) records the number of bytes required for a proposal to encapsulate a packet given a specific segment list.</t>

<t><list style="symbols">
  <t>E(proposal, segment list).</t>
</list></t>

<t>The encapsulation savings(ES)records the encapsulation savings for a proposal to encapsulate a packet given a specific segment list.</t>

<t><list style="symbols">
  <t>ES(proposal, segment list) = 1 - E(proposal, segment list)/E(SRv6 base, segment list).</t>
</list></t>

</section>
<section anchor="forwarding-efficiency" title="Forwarding Efficiency">

<t>Description: The compression proposal SHOULD minimize the number of required hardware resources accessed to process a segment.</t>

<t>Rationale: Efficiency in bits on the wire and processing efficiency are both important. Optimizing one at the expense of the other may lead to significant performance impact.</t>

<t>Metric: The data plane efficiency metric (D) records the data plane forwarding efficiency of the proposed solution. Two metrics are used and recorded at each segment endpoint:</t>

<t><list style="symbols">
  <t>D.PRS(segment list): number of headers parsed during processing of the segment list, starting from and including the IPv6 header.</t>
  <t>D.LKU(segment list): number of FIB lookups during processing of the segment list. The type of lookup is also recorded as longest prefix match (LPM) or exact match (EM)</t>
</list></t>

</section>
<section anchor="state-efficiency" title="State Efficiency">

<t>Description: The compression proposal SHOULD minimize the amount of additional forwarding state stored at a node.</t>

<t>Rationale: Additional state increases the complexity of the control plane and data plane. It can also result in an increase in memory usage.</t>

<t>Metric: The state efficiency metric (S) records the amount of additional forwarding state required by the proposed solution.</t>

<t><list style="symbols">
  <t>S(node parameters): the number of additional forwarding states that need to be stored at a node, given a set of node parameters consisting of the number of nodes in the network, number of local interfaces, number of adjacencies. The forwarding state is counted as entries required in a Forwarding Information Base (FIB) at a node.</t>
</list></t>

</section>
</section>
</section>
<section anchor="srv6-specific-requirements" title="SRv6 Specific Requirements">

<section anchor="srv6-based" title="SRv6 Based">

<t>Description: A solution to compress SRv6 SID Lists SHOULD be based on the SRv6 architecture, control plane and data plane.  The compression solution MAY be based on a different data plane and control plane, provided that it derives sufficient benefit.</t>

<t>Rationale: A compression proposal built on existing IETF standards is preferable to creating new standards with equivalent functionality and performance.</t>

<t>Metric: The utilization metric (U) records whether a proposal utilizes the SRv6 specifications.</t>

<t>Utilization is recorded in a table, with a column per proposal and rows consisting of the following metrics:</t>

<t><list style="symbols">
  <t>U.RFC8402: utilizes <xref target="RFC8402"/>.</t>
  <t>U.RFC8754: utilizes <xref target="RFC8754"/>.</t>
  <t>U.PGM: utilizes <xref target="RFC8986"/>.</t>
  <t>U.IGP: utilizes <xref target="I-D.ietf-lsr-isis-srv6-extensions"/>.</t>
  <t>U.BGP: utilizes <xref target="I-D.ietf-bess-srv6-services"/>.</t>
  <t>U.POL: utilizes <xref target="I-D.ietf-spring-segment-routing-policy"/>.</t>
  <t>U.BLS: utilizes <xref target="I-D.ietf-idr-bgpls-srv6-ext"/>.</t>
  <t>U.SVC: utilizes <xref target="I-D.ietf-spring-sr-service-programming"/>.</t>
  <t>U.OAM: utilizes <xref target="I-D.ietf-6man-spring-srv6-oam"/>.</t>
  <t>U.ALG: utilizes <xref target="I-D.ietf-lsr-flex-algo"/>.</t>
</list></t>

<t>Each cell contains "yes" for utilizes, or "no" for does not utilize.</t>

</section>
<section anchor="functional-requirements" title="Functional Requirements">

<section anchor="srv6-functionality" title="SRv6 Functionality">

<t>Description: A solution to compress an SRv6 SID list MUST support the functionality of SRv6. This requirement ensures no SRv6 functionality is lost. It is particularly important to understand how a proposal, as evaluated in section "SRv6 Based", provides this functionality.</t>

<t>Rationale: Operators require SRv6 functionality. Evaluating the extent to which a proposal supports SRv6 functionality is important for operators and implementors to understand the impact on network operations.</t>

<t>Metric: The Functionality metric (F) records whether a proposal supports SRv6 functionality and how the functionality is provided.</t>

<t>Functionality is recorded in a table with columns for each proposal and rows consisting of the following metrics:</t>

<t><list style="symbols">
  <t>F.SID: Supports SRv6 SID functionality as described in <xref target="RFC8402"/></t>
  <t>F.SCOPE: Supports globally and locally scoped SID functionality as described in <xref target="RFC8402"/></t>
  <t>F.PFX: Supports prefix SID functionality as described in <xref target="RFC8402"/> and <xref target="RFC8986"/></t>
  <t>F.ADJ: Supports adjacency SID functionality as described in <xref target="RFC8402"/> and <xref target="RFC8986"/></t>
  <t>F.BIND: Supports binding SID functionality as described in <xref target="RFC8402"/> and <xref target="RFC8986"/></t>
  <t>F.PEER: Supports BGP peering SID functionality as described in <xref target="RFC8402"/> and <xref target="RFC8986"/></t>
  <t>F.SVC: Supports L3 and L2 VPN service SID functionality as described in <xref target="RFC8986"/></t>
  <t>F.ALG: Supports flexible algorithms functionality as described in <xref target="I-D.ietf-lsr-flex-algo"/></t>
  <t>F.TILFA: Supports TI-LFA functionality as described in <xref target="I-D.ietf-rtgwg-segment-routing-ti-lfa"/></t>
  <t>F.SEC: Supports securing an SR domain with ingress filtering as functionally defined in <xref target="RFC8754"/></t>
  <t>F.IGP: Supports distributing topological SIDs and behaviors via ISIS as functionally described in <xref target="I-D.ietf-lsr-isis-srv6-extensions"/></t>
  <t>F.BGP: Supports BGP VPNs as functionally described in <xref target="I-D.ietf-bess-srv6-services"/></t>
  <t>F.POL: Supports SR policies and steering traffic over those policies as funcitonally described in <xref target="I-D.ietf-spring-segment-routing-policy"/></t>
  <t>F.BLS: Supports Link State distribution via BGP as functionally described in <xref target="I-D.ietf-idr-bgpls-srv6-ext"/></t>
  <t>F.SFC: Supports stateless service programming as functionally described in <xref target="I-D.ietf-spring-sr-service-programming"/></t>
  <t>F.PING: Supports pinging a SID to verify the SID is implemented as functionally described in <xref target="I-D.ietf-6man-spring-srv6-oam"/></t>
</list></t>

<t>Each cell contains the specification name documenting the functionality.</t>

</section>
<section anchor="heterogeneous-sid-lists" title="Heterogeneous SID lists">

<t>Description: The compression proposal SHOULD support a combination of compressed and non-compressed segments in a single path. As an example, a solution may satisfy this requirement without being SRv6 based by using a binding SID to impose an additional SRv6 header (IPv6 header plus optional SRH) with non-compressed SID.</t>

<t>Rationale: Support of SID lists with compressed and non-compressed SIDs reduces encapsulation size when not all SRv6 nodes deploy the compression proposal or 128-bit SIDs are required.</t>

<t>Metric: A compliant compression proposal supports both:</t>

<t><list style="symbols">
  <t>classic 128-bit SRv6 SIDs in the IPv6 Destination Address field</t>
  <t>segment lists (i.e., paths) with both compressed and 128-bit SRv6 SIDs.</t>
</list></t>

</section>
<section anchor="sid-list-length" title="SID list length">

<t>Description: The compression proposal MUST be able to represent SR paths that contain up to 16 segments.</t>

<t>Rationale: Strict TE paths require SID list lengths proportional to the diameter of the SR domain.</t>

<t>Metric: The compression proposal must be able to steer a packet through an SR path that contains up to sixteen segments.</t>

</section>
<section anchor="sid-summarization" title="SID summarization">

<t>Description: The solution MUST be compatible with segment summarization.</t>

<t>Rationale: Summarization of segments is a key benefit of SRv6 vs SR MPLS. In interdomain deployments, any node can reach any other node via a single prefix segment. Without summarization, border router SIDs must be leaked, and an additional global prefix segment is required for each domain border to be traversed.</t>

<t>Metric: A solution supports summarization when segments can be summarized for advertisement into other IGP domains or levels.</t>

</section>
</section>
<section anchor="operational-requirements" title="Operational Requirements">

<section anchor="lossless-compression" title="Lossless Compression">

<t>Description: A path traversed using a compessed SID list MUST always be the same as the path traversed using the uncompressed SID list if no compression was applied.</t>

<t>Rationale: In SRv6, we can represent a path to meet certain objectives. A compression proposal needs to support the objectives with the same path.</t>

<t>Metric: Information present in the pre-compression segment list MUST also be present in the post-compression SID list.</t>

</section>
<section anchor="preservation-of-non-routing-information" title="Preservation of non-routing information">

<t>Description:The compression mechanism MUST NOT cause the loss of non-routing information when delivering a packet from the SR ingress node to the egress/penultimate SR node</t>

<t>Rationale: SRv6 ingress nodes encode non-routing information in the IPv6 header chain. This information can be encoded in the following fields:</t>

<t><list style="symbols">
  <t>Hop Count</t>
  <t>DSCP bits</t>
  <t>ECN bits</t>
  <t>Flow label</t>
  <t>HBH Options Extension header</t>
  <t>Fragment Extension header</t>
  <t>Authentication Extension header</t>
  <t>Encrypted Security Payload Extension header</t>
  <t>Destination Options Extension header</t>
</list></t>

<t>Some of these fields are mutable (e.g., Hop Count) while others are immutable (e.g., Fragment Extension Header).</t>

<t>Some of these fields contain information that is required by every node along a packet's delivery path (e.g., Hop Count). Others contain information that is required only by the packet's ultimate destination (e.g., Fragment Extension Header).</t>

<t>Therefore, the compression mechanism MUST NOT prevent this information from being delivered, in an IPv6 header chain,  to any node that needs it.</t>

<t>Metric: The SR source node encapsulates its payload (e.g.., Ethernet, IP, TCP) in an IPv6 header. The SRv6 header contains both routing and non-routing information. The compression mechanism MUST NOT cause the loss of non-routing information when delivering a packet from the SR ingress node to the egress/penultimate SR node.</t>

</section>
<section anchor="address-planning" title="Address Planning">

<t>Description: Network operators require addressing plan flexibility, The compression mechanism MUST support flexible IPv6 address planning, it MUST support deployment by using GUA from different address blocks.</t>

<t>Rationale: The address planning of the network may vary based on the addressing scheme of the operator, so the solution MUST support a flexible addressing scheme.  Operators need to deploy the solution based on their own address planning.</t>

<t>Metric: The compression proposal supports locators drawn from different prefixes with the solutions analysis indicating efficiency.</t>

</section>
</section>
<section anchor="scalability-requirements" title="Scalability Requirements">

<section anchor="adjacency-segment-scale" title="Adjacency segment scale">

<t>Description: The compression proposal MUST be capable of representing 65000 adjacency segments per node</t>

<t>Rationale: Typically, network operators deploy networks with tens or hundreds of adjacency segments per node, but some network operators may deploy networks that use more adjacency segments per node.</t>

<t>Metric: A proposal that allows 65000 adjacency segments per node satisfies this requirement.</t>

</section>
<section anchor="prefix-segment-scale" title="Prefix segment scale">

<t>Description: The compression proposal MUST be capable of representing 1 million prefix segments per SID numbering space.</t>

<t>Rationale: Typically, network operators deploy networks with thousands of prefix segments per SID numbering space, but some network operators may deploy networks that use more prefix segments per SID numbering space.</t>

<t>Metric: A proposal that allows 1 million prefix segments per SID numbering space satisfies this requirement.</t>

</section>
<section anchor="service-scale" title="Service Scale">
<t>Description: The compression proposal MUST be capable of representing 1 million services per node.</t>

<t>Rationale: Typically, network operators deploy networks with tens to hundreds of thousands of services per node, but some network operators may deploy networks that use more services per node.</t>

<t>Metric: A proposal that allows 1 million services per node satisfies this requirement.</t>

</section>
<section anchor="compression-levels" title="Compression Levels">

<t>Description: The compression proposal SHOULD be able to support multiple levels of compression.</t>

<t>Rationale: The compression proposal will be deployed in networks of varying size with SID numbering spaces of varying size.  Network and service scale can directly impact SID length and the ability of a proposal to compress the SID list.</t>

<t>Metric: A compression proposal that supports relatively better compression for smaller SID numbering spaces and service scale satisfies this requirement.</t>

</section>
</section>
</section>
<section anchor="protocol-design-requirements" title="Protocol Design Requirements">

<section anchor="srv6-base-coexistence" title="SRv6 Base Coexistence">

<t>Description: The compression proposal MUST support simultaneous deployment with SRv6 networks.</t>

<t>Rationale: SRv6 is deployed today. A compression proposal that interoperates well with SRv6, as deployed, will reduce the overhead and simplify operations. For Network operators who would migrate to compressed SRv6 SID lists, the migration is expected to gradually occur over a period of time as they upgrade networks, domains, device families and software instances.</t>

<t>Metric: A compliant compression proposal provides the following</t>

<t><list style="symbols">
  <t>Supports simultaneous deployment at a node with current SRv6 SIDs.</t>
  <t>Supports simultaneous deployment at a node with current SRv6 control plane.</t>
  <t>Supports simultaneous operation of current SRv6 paths with compressed paths.</t>
  <t>Supports the behaviors in <xref target="RFC8986"/>.</t>
  <t>Does not require removal of existing IPv6 address planning.</t>
</list></t>

</section>
</section>
<section anchor="security-requirements" title="Security Requirements">

<section anchor="security-mechanisms" title="Security Mechanisms">

<t>Description: The compression solution SHOULD be able to address security issues that it introduces, using existing security mechanisms.</t>

<t>Rationale: It is important to identify security issues and how to address them in any specification.</t>

<t>Metric: A compression solution that does not introduce unresolved security issues meets this requirement.</t>

</section>
<section anchor="sr-domain-protection" title="SR Domain Protection">

<t>Description: A compression solution must not require nodes outside the SR domain to know SID values within the SR domain, and it must provide the ability to block nodes outside an SR domain from accessing SIDS.</t>

<t>Rationale: The unauthorized use of SIDs within the SR domain by nodes outside the domain can disrupt an operators' network.</t>

<t>Metric: A compliant solution describes how access to SIDs within the SR domain is denied to nodes outside the SR domain.</t>

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

<t>This document has no requests to IANA.</t>

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

<t>TBD</t>

</section>
<section anchor="contributors" title="Contributors">
<t>The following individuals contributed to this draft</t>

<t>Sanders Steffann, SJM Steffann Consultancy, sander@steffann.nl</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC2119;
&RFC8174;
&RFC8402;
&RFC8754;
&RFC8986;
&I-D.ietf-spring-segment-routing-policy;
&I-D.ietf-lsr-isis-srv6-extensions;
&I-D.ietf-bess-srv6-services;
&I-D.ietf-idr-bgpls-srv6-ext;
&I-D.ietf-spring-sr-service-programming;
&I-D.ietf-6man-spring-srv6-oam;
&I-D.ietf-lsr-flex-algo;
&I-D.ietf-rtgwg-segment-routing-ti-lfa;


    </references>



<section anchor="proposed-requirements" title="Proposed Requirements">

<t>This appendix contains requirements that the design team discussed
   but could not be agreed upon.</t>

<section anchor="ipv6-based" title="IPv6 Based">

<t>Description: The compression mechanism requires every node along the packet's delivery path to be IPv6-capable. It MUST not require any node along the packet's forwarding path to support any other forwarding plane (e.g., IPv4, MPLS)</t>

<t>Rational: According to RFC 8402, SRv6 is an instantiation of the SR Architecture over the IPv6 data plane.</t>

<t>Metric: A compliant solution requires every node along the packet's delivery path to be IPv6-capable. It does not require any node along the packet's forwarding path to support any other forwarding plane (e.g., IPv4, MPLS)</t>

</section>
<section anchor="point-to-multipoint" title="Point to Multipoint">

<t>Description: The compression mechanism SHOULD support point-to-multipoint SR paths.</t>

<t>Rationale: Many VPN services require point-to-multipoint SR paths.</t>

<t>Metric: A compliant proposal can encode a multicast address in the ultimate segment of the segment list.</t>

</section>
<section anchor="parsability" title="Parsability">

<t>Description: The compression mechanism MUST be parsable. That is, the node that consumes the compressed SID list must be able to decode the active and next segment. Parsing information MAY be conveyed in either the forwarding or control plane.</t>

<t>Rationale: Failure to parse the compressed SID list leads to undesired behaviors.</t>

<t>Metric: In the nominal case the producer and consumer of the SID list agree on the active segment and next segment.
In forseeable failure modes it is possible to determine why the producer and consumer don't agree.</t>

</section>
</section>


  </back>

<!-- ##markdown-source:
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
Ci0emlH1eo5tFhwFYTJpTnKiRhamGEWPnDJZDseuQ4RHUajnLzGVkyg5bIgH
oIhFQtdkZzQV4z3fxJ2rcKiBc9M5VlB4l+LYwW0ZNAhZxIUL+tKdCTqOKmiQ
vYKYzDoM+3DCjqqzMqDdyVqduhBW9VL22OMpGZF34g6L7esxYCOVYDk2T4lt
roLwYaFQltrbOQA6r7/7YTSHzJsdYNlUgCL4xsl2phEi9tIJOA3rvgSAkkzC
mKQh79uZvjJD8gT9qryinKWp8/IqS4FCXF+04liP1XhIemGdtKnG3JHb3nS+
3h6yCMjml9XqpapNOQceU3DVglLhGGQL/Swy4zuLZIWiXuOo12+CVreB/YwP
Wj1M3LcB3re5s8xA6RQMKFLJWnP5q2mtuSjZAdq9C8lrW8ULobDQdEOqFfjy
5coFXzoIFq/LuoVZDUFNFfHqvHBtneeydAWKHvE21SInUupQVTqgb7/fLUId
8cWvUAyN78A2Bp6hcNWi0NDbUETEhj0keAWX/Ry2YOOg74fUyqUqI9ZiS0L/
+IhbEvQCI1bjnxgs+8aJ+Nm5nBbzQ1DRkg7DwCtsbaL6+43IlHz0J1/abodB
fmcKoTttOGLRrcRNw8VUiPMQe2zHgIP4g6m2WGUPEsSJQsC6rBviO38pEAaf
q9zJK5iP5YOtdmbFokuh1j7rhktlD9UGroy1FK2jvu1edYC10a8qeHDUn+Ad
owqBzLZyZ0kSqHYYAyVHx15C+AJCYsvXMjWNteSWNW2BkFyDIyThRoo5Lfx5
V69A3k1INyu2jMDOEhAg7piZ/4Ilgg3WmQ+UMrE+Til3XPJovmOjCUukgNls
eFx39qw4xwv/HLXKuJGf9RK0pEndD42tWl9G5zNxM+9weLkJxokxzJ+s1Q0/
7f3tOqxc4WkvbXPhjz+BQPHIKnKQgbo8QZmVOFWZ3rg0wbs36oo5n+mzCTJq
51oVPfrDWhV4LCinAyL3NGIgWg6IzudGBCgaI6FDLMXRzh8vXqHP5jJVPNQZ
HRNM/ZdNfYECIx5Sh+D4wazBZuqiwmbe7PyO+rPYsz6/8T8v4TOR4cEmHP/u
A/Vg8XzapHNiBceWkpWg591ZDWwAfnSgsmfEpEjK3Rph7YySOMgM7/jcS9/o
OOYfZEkMZnhWmSMd7D6vnfBJXnPJ5liNl4AIgiROsO6VuS4yD9V5Z3DPOvm4
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
aZzdEzylpvjWcTIe/C8D2sAX8E4AAA==

-->

</rfc>

