<?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-05" category="exp" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.0 -->
  <front>
    <title abbrev="CRH Helper Option">Compressed Routing Header (CRH) Helper Option</title>
    <seriesInfo name="Internet-Draft" value="draft-bonica-6man-crh-helper-opt-05"/>
    <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="August" day="05"/>
    <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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
dv4J8L+0fgk0AAA=

-->

</rfc>
