<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.2.3) -->
<?rfc tocompact="yes"?>
<?rfc tocindent="yes"?>
<?rfc compact="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bonica-6man-crh-helper-opt-06" category="exp" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.2 -->
  <front>
    <title abbrev="CRH Helper Option">Compact Routing Header (CRH) Helper Option</title>
    <seriesInfo name="Internet-Draft" value="draft-bonica-6man-crh-helper-opt-06"/>
    <author initials="X." surname="Li" fullname="Xing Li">
      <organization>CERNET Center/Tsinghua University</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>xing@cernet.edu.cn</email>
      </address>
    </author>
    <author initials="C." surname="Bao" fullname="Congxiao Bao">
      <organization>CERNET Center/Tsinghua University</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>congxiao@cernet.edu.cn</email>
      </address>
    </author>
    <author initials="R." surname="Bonica" fullname="Ron Bonica">
      <organization>HPE</organization>
      <address>
        <postal>
          <city>Herndon</city>
          <region>Virginia</region>
          <country>USA</country>
        </postal>
        <email>rbonica@juniper.net</email>
      </address>
    </author>
    <date year="2025" month="October" day="01"/>
    <area>Internet</area>
    <workgroup>6man</workgroup>
    <keyword>IPv6, CRH</keyword>
    <abstract>
      <?line 62?>

<t>This document introduces a new IPv6 Destination Option called the
CRH Helper. The CRH Helper is used with the Compact Routing Header 
(CRH) [RFC 9631]. It contains information required to 
convert a CRH SID to the IPv6 address of a interface on a packet's 
delivery path.</t>
      <t>Because the CRH Helper contains this information, it eliminates the 
need for a CRH-FIB. It also eliminates the need for CRH-FIB support
in the control plane.</t>
      <t>The CRH helper is useful in underlay networks, where all interfaces are numbered
from a few /112 or /96 prefixes.</t>
    </abstract>
  </front>
  <middle>
    <?line 78?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>IPv6 <xref target="RFC8200"/> source nodes use Routing Headers to steer packets through a specified delivery path. <xref target="rtghdr"/> depicts a generic IPv6 Routing Header.</t>
      <figure anchor="rtghdr">
        <name>Generic IPv6 Routing Header</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="528" viewBox="0 0 528 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,32 L 8,88" fill="none" stroke="black"/>
              <path d="M 8,128 L 8,160" fill="none" stroke="black"/>
              <path d="M 136,32 L 136,64" fill="none" stroke="black"/>
              <path d="M 264,32 L 264,64" fill="none" stroke="black"/>
              <path d="M 392,32 L 392,64" fill="none" stroke="black"/>
              <path d="M 520,32 L 520,88" fill="none" stroke="black"/>
              <path d="M 520,128 L 520,160" fill="none" stroke="black"/>
              <path d="M 8,32 L 520,32" fill="none" stroke="black"/>
              <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
              <path d="M 8,160 L 520,160" fill="none" stroke="black"/>
              <g class="text">
                <text x="44" y="52">Next</text>
                <text x="92" y="52">Header</text>
                <text x="168" y="52">Hdr</text>
                <text x="200" y="52">Ext</text>
                <text x="232" y="52">Len</text>
                <text x="312" y="52">Routing</text>
                <text x="364" y="52">Type</text>
                <text x="436" y="52">Segments</text>
                <text x="492" y="52">Left</text>
                <text x="8" y="100">.</text>
                <text x="520" y="100">.</text>
                <text x="8" y="116">.</text>
                <text x="248" y="116">type-specific</text>
                <text x="324" y="116">data</text>
                <text x="520" y="116">.</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Next Header  |  Hdr Ext Len  |  Routing Type | Segments Left |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      .                                                               .
      .                       type-specific data                      .
      .                                                               .
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </artset>
      </figure>
      <t>In <xref target="rtghdr"/>, type-specific data represents a list of interfaces. Depending upon the Routing Type, a packet traverses these interfaces in forward or reverse order. If the packet traverses the interfaces in forward order, the last interface in the list is the packet's ultimate destination. If the packet traverses the interfaces in reverse order, the first packet in the list is the packet's ultimate destination. The packet may also traverse other interfaces that are not in the list.</t>
      <t>The IETF has defined several Routing Types <xref target="V6RTG"/>. <xref target="RFC9631"/> defines two of these. Collectively, they are called the Compact Routing Headers (CRH). Individually, they are called the CRH-16 and CRH-32.  <xref target="CRH16"/> depicts the CRH-16 while <xref target="CRH32"/> depicts the CRH-32.</t>
      <figure anchor="CRH16">
        <name>The CRH-16 Routing Type</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="528" viewBox="0 0 528 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,64 L 8,160" fill="none" stroke="black"/>
              <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
              <path d="M 232,144 L 232,160" fill="none" stroke="black"/>
              <path d="M 248,144 L 248,160" fill="none" stroke="black"/>
              <path d="M 264,64 L 264,160" fill="none" stroke="black"/>
              <path d="M 280,144 L 280,160" fill="none" stroke="black"/>
              <path d="M 392,64 L 392,96" fill="none" stroke="black"/>
              <path d="M 520,64 L 520,128" fill="none" stroke="black"/>
              <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
              <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
              <path d="M 8,128 L 512,128" fill="none" stroke="black"/>
              <path d="M 8,160 L 304,160" fill="none" stroke="black"/>
              <g class="text">
                <text x="16" y="36">0</text>
                <text x="176" y="36">1</text>
                <text x="336" y="36">2</text>
                <text x="496" y="36">3</text>
                <text x="16" y="52">0</text>
                <text x="32" y="52">1</text>
                <text x="48" y="52">2</text>
                <text x="64" y="52">3</text>
                <text x="80" y="52">4</text>
                <text x="96" y="52">5</text>
                <text x="112" y="52">6</text>
                <text x="128" y="52">7</text>
                <text x="144" y="52">8</text>
                <text x="160" y="52">9</text>
                <text x="176" y="52">0</text>
                <text x="192" y="52">1</text>
                <text x="208" y="52">2</text>
                <text x="224" y="52">3</text>
                <text x="240" y="52">4</text>
                <text x="256" y="52">5</text>
                <text x="272" y="52">6</text>
                <text x="288" y="52">7</text>
                <text x="304" y="52">8</text>
                <text x="320" y="52">9</text>
                <text x="336" y="52">0</text>
                <text x="352" y="52">1</text>
                <text x="368" y="52">2</text>
                <text x="384" y="52">3</text>
                <text x="400" y="52">4</text>
                <text x="416" y="52">5</text>
                <text x="432" y="52">6</text>
                <text x="448" y="52">7</text>
                <text x="464" y="52">8</text>
                <text x="480" y="52">9</text>
                <text x="496" y="52">0</text>
                <text x="512" y="52">1</text>
                <text x="44" y="84">Next</text>
                <text x="92" y="84">Header</text>
                <text x="168" y="84">Hdr</text>
                <text x="200" y="84">Ext</text>
                <text x="232" y="84">Len</text>
                <text x="304" y="84">Routing</text>
                <text x="356" y="84">Type</text>
                <text x="436" y="84">Segments</text>
                <text x="492" y="84">Left</text>
                <text x="140" y="116">SID[0]</text>
                <text x="372" y="116">SID[1]</text>
                <text x="224" y="148">.</text>
                <text x="240" y="148">.</text>
                <text x="256" y="148">.</text>
                <text x="272" y="148">.</text>
                <text x="288" y="148">.</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |  Next Header  |  Hdr Ext Len  | Routing Type  | Segments Left |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |             SID[0]            |          SID[1]               |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|
     |                          .........
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
]]></artwork>
        </artset>
      </figure>
      <figure anchor="CRH32">
        <name>The CRH-32 Routing Type</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="224" width="528" viewBox="0 0 528 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,64 L 8,192" fill="none" stroke="black"/>
              <path d="M 136,64 L 136,96" fill="none" stroke="black"/>
              <path d="M 232,176 L 232,192" fill="none" stroke="black"/>
              <path d="M 248,176 L 248,192" fill="none" stroke="black"/>
              <path d="M 264,64 L 264,96" fill="none" stroke="black"/>
              <path d="M 264,176 L 264,192" fill="none" stroke="black"/>
              <path d="M 280,176 L 280,192" fill="none" stroke="black"/>
              <path d="M 392,64 L 392,96" fill="none" stroke="black"/>
              <path d="M 520,64 L 520,160" fill="none" stroke="black"/>
              <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
              <path d="M 8,96 L 520,96" fill="none" stroke="black"/>
              <path d="M 8,128 L 520,128" fill="none" stroke="black"/>
              <path d="M 8,160 L 520,160" fill="none" stroke="black"/>
              <path d="M 8,192 L 304,192" fill="none" stroke="black"/>
              <g class="text">
                <text x="16" y="36">0</text>
                <text x="176" y="36">1</text>
                <text x="336" y="36">2</text>
                <text x="496" y="36">3</text>
                <text x="16" y="52">0</text>
                <text x="32" y="52">1</text>
                <text x="48" y="52">2</text>
                <text x="64" y="52">3</text>
                <text x="80" y="52">4</text>
                <text x="96" y="52">5</text>
                <text x="112" y="52">6</text>
                <text x="128" y="52">7</text>
                <text x="144" y="52">8</text>
                <text x="160" y="52">9</text>
                <text x="176" y="52">0</text>
                <text x="192" y="52">1</text>
                <text x="208" y="52">2</text>
                <text x="224" y="52">3</text>
                <text x="240" y="52">4</text>
                <text x="256" y="52">5</text>
                <text x="272" y="52">6</text>
                <text x="288" y="52">7</text>
                <text x="304" y="52">8</text>
                <text x="320" y="52">9</text>
                <text x="336" y="52">0</text>
                <text x="352" y="52">1</text>
                <text x="368" y="52">2</text>
                <text x="384" y="52">3</text>
                <text x="400" y="52">4</text>
                <text x="416" y="52">5</text>
                <text x="432" y="52">6</text>
                <text x="448" y="52">7</text>
                <text x="464" y="52">8</text>
                <text x="480" y="52">9</text>
                <text x="496" y="52">0</text>
                <text x="512" y="52">1</text>
                <text x="44" y="84">Next</text>
                <text x="92" y="84">Header</text>
                <text x="168" y="84">Hdr</text>
                <text x="200" y="84">Ext</text>
                <text x="232" y="84">Len</text>
                <text x="304" y="84">Routing</text>
                <text x="356" y="84">Type</text>
                <text x="436" y="84">Segments</text>
                <text x="492" y="84">Left</text>
                <text x="268" y="116">SID[0]</text>
                <text x="268" y="148">SID[1]</text>
                <text x="224" y="180">.</text>
                <text x="240" y="180">.</text>
                <text x="256" y="180">.</text>
                <text x="272" y="180">.</text>
                <text x="288" y="180">.</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |  Next Header  |  Hdr Ext Len  | Routing Type  | Segments Left |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     +                             SID[0]                            +
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     +                             SID[1]                            +
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                          .........
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
]]></artwork>
        </artset>
      </figure>
      <t>In the CRH-16 and in the CRH-32, each CRH SID identifies an entry in the CRH 
Forwarding Information Base (CRH-FIB).  Each CRH-FIB entry identifies an 
interface on the packet's delivery path.</t>
      <t>This document introduces a new IPv6 Destination Option called the
CRH Helper. The CRH Helper contains the information required to convert a
CRH SID to the IPv6 address of a interface on a packet's delivery path.
Therefore, the CRH Helper eliminates the need for a CRH-FIB. It also 
eliminates the need for CRH-FIB support in the control plane.</t>
      <t>The CRH helper is useful in underlay networks, where all interfaces are numbered
from a few /112 or /96 prefixes.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="the-crh-helper">
      <name>The CRH Helper</name>
      <t>The CRH Helper is IPv6 Destination Option. It <bcp14>MAY</bcp14> occur in packets that contain a CRH. It <bcp14>SHOULD NOT</bcp14> occur in packets that do not contain a CRH. If it occurs in a packet that does not include a CRH, it <bcp14>MUST</bcp14> be ignored by the receiver.</t>
      <t>The CRH Helper <bcp14>MAY</bcp14> occur in a Destination Option Header that precedes a Routing Header. If it occurs in any other IPv6 extension header, it <bcp14>MUST</bcp14> be ignored by the receiver.</t>
      <t><xref target="CRHHO"/> depicts the CRH Helper option.</t>
      <figure anchor="CRHHO">
        <name>The CRH Helper Option</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="96" width="408" viewBox="0 0 408 96" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,32 L 8,64" fill="none" stroke="black"/>
              <path d="M 136,32 L 136,64" fill="none" stroke="black"/>
              <path d="M 264,32 L 264,64" fill="none" stroke="black"/>
              <path d="M 8,32 L 272,32" fill="none" stroke="black"/>
              <path d="M 8,64 L 272,64" fill="none" stroke="black"/>
              <g class="text">
                <text x="288" y="36">-</text>
                <text x="304" y="36">-</text>
                <text x="320" y="36">-</text>
                <text x="336" y="36">-</text>
                <text x="352" y="36">-</text>
                <text x="368" y="36">-</text>
                <text x="384" y="36">-</text>
                <text x="400" y="36">-</text>
                <text x="52" y="52">Option</text>
                <text x="100" y="52">Type</text>
                <text x="168" y="52">Opt</text>
                <text x="204" y="52">Data</text>
                <text x="240" y="52">Len</text>
                <text x="312" y="52">Helpers</text>
                <text x="288" y="68">-</text>
                <text x="304" y="68">-</text>
                <text x="320" y="68">-</text>
                <text x="336" y="68">-</text>
                <text x="352" y="68">-</text>
                <text x="368" y="68">-</text>
                <text x="384" y="68">-</text>
                <text x="400" y="68">-</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- - - - - - - - -
     |  Option Type  |  Opt Data Len |  Helpers
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- - - - - - - - -
]]></artwork>
        </artset>
      </figure>
      <ul spacing="normal">
        <li>
          <t>Option Type - (8 bits) RFC3692-style Experiment. Value Ox9E. See NOTE below.</t>
        </li>
        <li>
          <t>Opt Data Len - (8 bits) Length of the option, in octets, excluding the Option Type and Option Length fields.</t>
        </li>
        <li>
          <t>Helpers - (variable length). One or more single helper fields, as depicted in <xref target="CRHH"/>. Helper fields 
<bcp14>MUST</bcp14> be sorted in by their High SID value, in ascending order. See below. If they are not sorted correctly, the receiver <bcp14>MUST</bcp14> discard the packet and send an ICMPv6 <xref target="RFC4443"/> Parameter Problem message, Code 0, to the source,
pointing to the first incorrectly sorted Helper field.</t>
        </li>
      </ul>
      <t><xref target="CRHH"/> depicts a single helper field.</t>
      <figure anchor="CRHH">
        <name>A Single Helper Field</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="96" width="408" viewBox="0 0 408 96" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,32 L 8,64" fill="none" stroke="black"/>
              <path d="M 120,32 L 120,64" fill="none" stroke="black"/>
              <path d="M 216,32 L 216,64" fill="none" stroke="black"/>
              <path d="M 8,32 L 272,32" fill="none" stroke="black"/>
              <path d="M 8,64 L 272,64" fill="none" stroke="black"/>
              <g class="text">
                <text x="288" y="36">-</text>
                <text x="304" y="36">-</text>
                <text x="320" y="36">-</text>
                <text x="336" y="36">-</text>
                <text x="352" y="36">-</text>
                <text x="368" y="36">-</text>
                <text x="384" y="36">-</text>
                <text x="400" y="36">-</text>
                <text x="52" y="52">Helper</text>
                <text x="96" y="52">Len</text>
                <text x="156" y="52">High</text>
                <text x="192" y="52">SID</text>
                <text x="364" y="52">Prefix</text>
                <text x="288" y="68">-</text>
                <text x="304" y="68">-</text>
                <text x="320" y="68">-</text>
                <text x="336" y="68">-</text>
                <text x="352" y="68">-</text>
                <text x="368" y="68">-</text>
                <text x="384" y="68">-</text>
                <text x="400" y="68">-</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- - - - - - - - -
     |  Helper Len |  High SID |               Prefix
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- - - - - - - - -
]]></artwork>
        </artset>
      </figure>
      <ul spacing="normal">
        <li>
          <t>Helper Len - (8 bits) Length of the Helper, in octets, excluding the Helper Length field. <bcp14>MUST</bcp14> be 
greater than 2 and less than 16.</t>
        </li>
        <li>
          <t>High SID - (8 bits) The index of the highest CRH SID to which this helper applies.</t>
        </li>
        <li>
          <t>Prefix - (Variable length) The high-order bits of an IPv6 address.</t>
        </li>
      </ul>
      <t>NOTE: For this experiment, the Option Type is set to '10011110', i.e.,
0x9E. The highest-order two bits are set to 10 indicating that the
required action by a destination node that does not recognize the option
is to discard the packet and send an ICMP message. The third highest-order bit is set to 0 
indicating that Option Data cannot be modified along the path between
the packet's source and its destination. The remaining low-order bits
are set to '11110' to indicate the single IPv6 Destination Option Type
code point available in the registry for experimentation.</t>
    </section>
    <section anchor="crh-processing">
      <name>CRH Processing</name>
      <section anchor="in-the-absence-of-the-crh-helper-option">
        <name>In The Absence Of The CRH Helper Option</name>
        <t>In the absence of the CRH helper option, CRH processing is as described in <xref target="RFC9631"/>.</t>
      </section>
      <section anchor="in-the-presence-of-the-crh-helper-option">
        <name>In The Presence Of the CRH Helper Option</name>
        <t>In the presence of the CRH helper option is as follows:</t>
        <ul spacing="normal">
          <li>
            <t>If Hdr Ext Len indicates that the CRH is larger than the implementation can process, 
discard the packet and send an ICMPv6 Parameter Problem, Code 0, message to the 
Source Address, pointing to the Hdr Ext Len field.</t>
          </li>
          <li>
            <t>Compute L, the minimum CRH length as described in section 5.1 of <xref target="RFC9631"/>.</t>
          </li>
          <li>
            <t>If L is greater than Hdr Ext Len, discard the packet and send an ICMPv6 Parameter Problem, 
Code 6, message to the Source Address, pointing to the Segments Left field.</t>
          </li>
          <li>
            <t>Decrement Segments Left.</t>
          </li>
          <li>
            <t>Search the CRH Helper Option for a CRH Helper that applies to the 
current CRH SID"  In this document, the "current CRH SID" is the CRH SID list
entry referenced by the Segments Left field.</t>
          </li>
          <li>
            <t>If the search does not return a CRH Helper, discard the packet and send an ICMPv6 
Parameter Problem, Code 0, message to the Source Address, pointing to the current SID.</t>
          </li>
          <li>
            <t>Set the Destination Address field in the IPv6 header to ::0.</t>
          </li>
          <li>
            <t>Overwrite the high-order bits of the Destination Address field in the IPv6 header with the prefix from the CRH Helper.</t>
          </li>
          <li>
            <t>Overwrite the low-order bits of the Destination Address field in the IPv6 header with the current CRH.</t>
          </li>
          <li>
            <t>If Segments Left is greater than 0 and the Destination Address is a multicast address, 
discard the packet and send an ICMPv6 Parameter Problem, Code 0, message to the Source Address, pointing
to the current SID.  (This prevents packet storms.)</t>
          </li>
          <li>
            <t>Forward the packet</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="relationship-to-rho">
      <name>Relationship To RHO</name>
      <t>When used with the CRH Helper, the CRH is functionally identical to the deprecated Type 0
Routing Header (RH0) <xref target="RFC5095"/>. It differs only in that its encoding is more compact when used
in common underlay numbering schemes.</t>
      <t>For example, assume the following:</t>
      <ul spacing="normal">
        <li>
          <t>An underlay network numbers all of its interfaces from a /112.</t>
        </li>
        <li>
          <t>An IPv6 delivery path traverses 5 of those interfaces.</t>
        </li>
      </ul>
      <t>RH0 required 88 bytes to encode that delivery path. The same delivery path can be encoded with a 16 byte CRH-16 and a 20 byte CRH Helper (total: 36 bytes).</t>
      <t>When used with the CRH Helper option, the CRH inherits security considerations from RH0. See <xref target="security"/> for details.</t>
    </section>
    <section anchor="deployment-considerations">
      <name>Deployment Considerations</name>
      <t>Some networks discard packets that include IPv6 Destination Options. 
This is an impediment to deployment.</t>
      <t>Because the CRH Helper Option uses an experimental code point, there
is a risk of collisions with other experiments.  Specifically, the
egress PE may process packets from another experiment that uses the
same code point.</t>
      <t>It is expected that, as with all experiments with IETF protocols,
care is taken by the operator to ensure that all nodes participating
in an experiment are carefully configured.</t>
      <t>Because the CRH Helper  Destination Option uses an experimental code point,
processing of this option <bcp14>MUST</bcp14> be disabled by default. Explicit configuration
is required to enable processing of the option.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document does not make any IANA requests.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t><xref target="RFC9631"/> inherits security considerations from <xref target="RFC5095"/> and this document inherits
security considerations from <xref target="RFC9631"/>. <xref target="RFC9631"/> addresses the security considerations
inheritted from <xref target="RFC5095"/> by restricting CRH deployment to a community of trusted nodes.
It also describes several methods by which trust can be verified.</t>
      <t>Because the CRH Helper is processed only in the presence of the CRH, it introduces no security
considerations beyond those described in <xref target="RFC9631"/>.</t>
    </section>
    <section anchor="experimental-results">
      <name>Experimental Results</name>
      <t>Parties participating in this experiment should publish experimental results within one year of the publication of this document. Experimental results should address the following:</t>
      <ul spacing="normal">
        <li>
          <t>Effort required to deploy
          </t>
          <ul spacing="normal">
            <li>
              <t>Was deployment incremental or network-wide?</t>
            </li>
            <li>
              <t>Was there a need to synchronize configurations at each node or could nodes be configured independently?</t>
            </li>
            <li>
              <t>Did the deployment require hardware upgrade?</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Effort required to secure
          </t>
          <ul spacing="normal">
            <li>
              <t>Performance impact</t>
            </li>
            <li>
              <t>Effectiveness of risk mitigation with ACLs</t>
            </li>
            <li>
              <t>Cost of risk mitigation with ACLs</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Mechanism used to populate the FIB</t>
        </li>
        <li>
          <t>Scale of deployment</t>
        </li>
        <li>
          <t>Interoperability
          </t>
          <ul spacing="normal">
            <li>
              <t>Did you deploy two interoperable implementations?</t>
            </li>
            <li>
              <t>Did you experience interoperability problems?</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Effectiveness and sufficiency of OAM mechanisms
          </t>
          <ul spacing="normal">
            <li>
              <t>Did PING work?</t>
            </li>
            <li>
              <t>Did TRACEROUTE work?</t>
            </li>
            <li>
              <t>Did Wireshark work?</t>
            </li>
            <li>
              <t>Did TCPDUMP work?</t>
            </li>
          </ul>
        </li>
      </ul>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>TBD</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC4443">
          <front>
            <title>Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification</title>
            <author fullname="A. Conta" initials="A." surname="Conta"/>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="M. Gupta" initials="M." role="editor" surname="Gupta"/>
            <date month="March" year="2006"/>
            <abstract>
              <t>This document describes the format of a set of control messages used in ICMPv6 (Internet Control Message Protocol). ICMPv6 is the Internet Control Message Protocol for Internet Protocol version 6 (IPv6). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="89"/>
          <seriesInfo name="RFC" value="4443"/>
          <seriesInfo name="DOI" value="10.17487/RFC4443"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8200">
          <front>
            <title>Internet Protocol, Version 6 (IPv6) Specification</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="July" year="2017"/>
            <abstract>
              <t>This document specifies version 6 of the Internet Protocol (IPv6). It obsoletes RFC 2460.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="86"/>
          <seriesInfo name="RFC" value="8200"/>
          <seriesInfo name="DOI" value="10.17487/RFC8200"/>
        </reference>
        <reference anchor="RFC9631">
          <front>
            <title>The IPv6 Compact Routing Header (CRH)</title>
            <author fullname="R. Bonica" initials="R." surname="Bonica"/>
            <author fullname="Y. Kamite" initials="Y." surname="Kamite"/>
            <author fullname="A. Alston" initials="A." surname="Alston"/>
            <author fullname="D. Henriques" initials="D." surname="Henriques"/>
            <author fullname="L. Jalil" initials="L." surname="Jalil"/>
            <date month="August" year="2024"/>
            <abstract>
              <t>This document describes an experiment in which two new IPv6 Routing headers are implemented and deployed. Collectively, they are called the Compact Routing Header (CRH). Individually, they are called CRH-16 and CRH-32.</t>
              <t>One purpose of this experiment is to demonstrate that the CRH can be implemented and deployed in a production network. Another purpose is to demonstrate that the security considerations described in this document can be addressed with Access Control Lists (ACLs). Finally, this document encourages replication of the experiment.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9631"/>
          <seriesInfo name="DOI" value="10.17487/RFC9631"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC5095">
          <front>
            <title>Deprecation of Type 0 Routing Headers in IPv6</title>
            <author fullname="J. Abley" initials="J." surname="Abley"/>
            <author fullname="P. Savola" initials="P." surname="Savola"/>
            <author fullname="G. Neville-Neil" initials="G." surname="Neville-Neil"/>
            <date month="December" year="2007"/>
            <abstract>
              <t>The functionality provided by IPv6's Type 0 Routing Header can be exploited in order to achieve traffic amplification over a remote path for the purposes of generating denial-of-service traffic. This document updates the IPv6 specification to deprecate the use of IPv6 Type 0 Routing Headers, in light of this security concern. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5095"/>
          <seriesInfo name="DOI" value="10.17487/RFC5095"/>
        </reference>
        <reference anchor="V6RTG">
          <front>
            <title>Routing Types</title>
            <author>
              <organization>Internet Assigned Numbers Authority (IANA)</organization>
            </author>
            <date/>
          </front>
          <seriesInfo name="Web" value="&lt;https://www.iana.org/assignments/ipv6-parameters/ipv6-parameters.xhtml#ipv6-parameters-3&gt;"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
BjQAAA==

-->

</rfc>
