<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.8 (Ruby 2.6.10) -->


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

]>

<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-eckert-pim-mrh-01" category="exp" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="mrh">The IPv6 Multicast Routing Headers (MRH)</title>

    <author initials="T." surname="Eckert" fullname="Toerless Eckert" role="editor">
      <organization>Futurewei Technologies USA</organization>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>tte@cs.fau.de</email>
      </address>
    </author>
    <author initials="Y." surname="Liu" fullname="Yisong Liu">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>liuyisong@chinamobile.com</email>
      </address>
    </author>
    <author initials="Y." surname="Zhu" fullname="Yongqing Zhu">
      <organization>China Telecom</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>zhuyq8@chinatelecom.cn</email>
      </address>
    </author>
    <author initials="C." surname="Lin" fullname="Changwang Lin">
      <organization>New H3C Technologies</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>linchangwang.04414@h3c.com</email>
      </address>
    </author>

    <date year="2025" month="July" day="21"/>

    
    <workgroup>PIM</workgroup>
    

    <abstract>


<?line 57?>

<t>This document describes the IPv6 extensions to support an experiment in which
new IPv6 Routing headers that support stateless replication are implemented and deployed
for IPv6 Segment Routing Networks. Collectively, these headers are
called Multicast Routing Header (MRH).</t>

<t>One purpose of this experiment is to demonstrate that the MRH can be
implemented and deployed in a production network. Another purpose is to
encourage replication of the experiment.</t>



    </abstract>



  </front>

  <middle>


<?line 68?>

<section anchor="overview"><name>Overview</name>

<t>This document introduces IPv6 Routing headers that enable stateless replication
of packets in IPv6 or SRv6 networks. These headers are collectively called
Multicast Routing Headers (MRH).  IPv6 Packets using these Routing headers can
be IPv6 multicast packets or IPv6 (unicast) packets. When they are multicast packets, these
mechanism can enable to avoid stateful multicast tree building protocols, such as PIM-SM,
<xref target="RFC7761"/>.  When they are unicast packets that need to be sent to more than one receiver,
this mechanism allows to avoid either sender-side replication of these packets
or the use of IPv6 multicast to achieve the replication.</t>

<t>The mechanisms in this document are specifically targeted for SRv6 networks where
stateless forwarding through ingres node steering of packets via SRH (<xref target="RFC8754"/>))
already establishes a network preference to minimize the amount of state required in
networks and/or the desire or need for advanced traffic steering, both of which is also
possible for stateless replicated packets through the mechanisms in this memo.</t>

<t>This document intends to support an experiment in which these new IPv6 Routing headers are
implemented and deployed for IPv6 Segment Routing Networks or IPv6 network withoutt he desire
for other forwarding planes.</t>

<t>One purpose of this experiment is to demonstrate that the MRH can be
implemented and deployed in a production network. Another purpose is to
encourage replication of the experiment.</t>

<t>This document only specifies the Routing headers and their semantics. The
larger context of the experiment is (informationally) described in
<xref target="I-D.eckert-pim-mrh-experiment"/>.</t>

<t>This document is intended for 6MAN which is authoritative for IPv6 extension headers,
but it is initially directed at review in PIM which is responsible for the overall
experiment as the Multicast Routing expert group, including Multicast for Segment Routing/SRv6.</t>

</section>
<section anchor="the-multicast-routing-header-mrh"><name>The Multicast Routing Header (MRH)</name>

<t>The MRH header contains the following fields:</t>

<t><list style="symbols">
  <t>Next Header - Defined in <xref target="RFC8200"/>.</t>
  <t>Hdr Ext Len - Defined in <xref target="RFC8200"/>.</t>
  <t>Routing Type - Defined in <xref target="RFC8200"/>. Each MRH sub-type is allocated a new Routing Type by IANA.</t>
  <t>Segments Left - Defined in <xref target="RFC8200"></xref>.</t>
  <t>Type-specific Data - Described in <xref target="RFC8200"></xref>.</t>
</list></t>

<t>In the MRH, the Type-specific Data field contains the elements as shown in <xref target="FIG-MRH"/>.</t>

<figure title="MRH format" anchor="FIG-MRH"><artwork><![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 |X| TLV offset  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    |    MSER-Segment (128 bit IPv6 address)                        |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  MRH Sub-Type specific data                                   |
    ...                                                           ...
    //                         ...                                 //
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    //                                                             //
    //         Optional Type Length Value (TLV) objects (variable) //
    //                                                             //
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t>The "MSER-Segment" ("Multicast Source Exit Router Segment") carries
an IPv6 address. If it is an IPv6 address according to <xref target="RFC4291"/>,
then the packet is an IPv6 multicast packet.</t>

<t>If the MSER-Segment is not an IPv6 address, then it is a SID according
to <xref target="RFC8986"/>, and the packet is called a stateless, directed replication, SRv6
(unicast) packet.</t>

<t>MRH Sub-Type specific data contains a compressed encoding of SIDs that
permits replication to a set of one or more destination SR nodes.
Its encoding is determined by the MRH Sub-Type indicated by the
Routing Type field.</t>

<t>The data contained in MSER-Segment does not allow to determine on every
Segment endpoint node a calculation of the actual number of segments left,
nor would this value be useful. For this reasons, the MRH header field
does not include a "Segments Left" field, but that space is instead used
to indicate the offset to the optional TLV objects field in 32 bit units.
This also makes it necessary for the MRH Sub-Type field to be multiple
of 32 bit units in length - or be padded accordingly. If no TLV objects
field is present, the value of TLV offset points to the first byte after
the end of the MRH header.</t>

<t>Note that the definition of TLV offset makes it never zero, which is necessary
so that routers not supporting MRH extension headers will stop processing
the packet and raise an ICMPv6 error according to <xref target="RFC8200"/>, section 4.4.</t>

<t>The X Flag is for future extensions, see <xref target="longer-headers"/>. It MUST
be set to 0 Packets received with X set to 1 MUST, the node must discard the
packet and send an ICMP Parameter Problem, Code 0, message to the packet's
Source Address, pointing to the unrecognized Routing Type.</t>

<t>The length of the MRH Sub-Type may change during processing. TLV offset
then needs to be updated accordingly. MTU discovery is not used for multicast
packets and MRH headers are intended for use in controlled networks, so
change in header size is something that can be managed. For example by
never sending packets with more than the minimum MTU of 1280 as recommended
for multicast packets in <xref target="RFC3542"/> and accordingly setting the MTU in the
controlled network so the largest possible headersizes plus 1280 will fit.</t>

<t>The Optional Type Length Value (TLV) objects field is as defined in 
<xref target="RFC8754"/>. As specified there, its length may change.</t>

<t>Except for the aforementioned fixed value of the Segments left field,
routing and forwarding for packets with an MRH routing extension header
follows the rules of <xref target="RFC8200"/> as restated and refined by the following
definitions.</t>

</section>
<section anchor="mrh-nodes"><name>MRH nodes</name>

<t>There are different types of nodes that may be involved in MRH segment routing networks:</t>

<t><list style="symbols">
  <t>Source nodes: originate packets with an MRH segment address
in the destination address of the IPv6 header</t>
  <t>Transit nodes: forward packets destined to a remote MRH segment</t>
  <t>Segment endpoint nodes: process a local segment in the destination address of an IPv6 header.</t>
  <t>Egress nodes: a subset of the Segment endpoint node that act as IPv6/IPv6-Multicast
host to the packet, passing it up to the next header protocol of the packet</t>
</list></t>

<t>Note that SRv6 in <xref target="RFC8754"/> does not explicitly name egress nodes, although every
SRH packet has exactly one such Egress node too. This document simply adds that
additional terminology for convenience reasons. All other node types have exactly
the same specification as in <xref target="RFC8754"/>.</t>

</section>
<section anchor="mrh-sub-type-semantics"><name>MRH sub-type semantics</name>

<t>All MRH sub-types operate on the semantic that a packet is forwarded and replicated
across a directed tree rooted in the source node of the MRH packet. All edges of the
tree are segments, each vertex of the tree is a segment endpoint node. All leaves and
a subset of the non-leaf are egress nodes, operating as IPv6 hosts processing the next
header protocol of the packet.</t>

<section anchor="destination-class-mrh-sub-type"><name>Destination class MRH sub-type</name>

<t>In a "destination" class MRH sub-type, the MRH sub-type specific data encodes only a
list of egress node SIDs. All leaves of the tree are egress nodes. Non-egress edges/nodes
of the tree are determined by forwarding/replication on segment endpoint nodes. Each segment
endpoint node determines next segment endpoint nodes to replicate the packet
to in order to reach the subset of egress nodes for the subtree rooted in this node.
This is the replication mechanism used for example in <xref target="RFC8279"/>.</t>

</section>
<section anchor="steering-class-mrh-sub-type"><name>Steering class MRH sub-type</name>

<t>In a "steering" class MRH sub-type, the MRH sub-type specific data encodes the complete
directed tree with its segment endpoint nodes. Each non-leaf segment endpoint node
determines the next segment endpoint nodes to which to replicate the packet to
directly from the MRH sub-type specific data without having to examine the encoded
tree beyond those next-hops. This is the replication mechanism used for example in <xref target="RFC9262"/>.</t>

<t>In a "steering" class MRH sub-type, the non-leaf nodes of the tree are pre-determined
by the MRH sub-type data and delivery of the packet to that node can thus be granted.
Therefore, the actual property of a node being an egress node does not need to be encoded
in the MRH sub-type but can instead be derived from membership of that node in the
packets IPv6 multicast and/or future MSER segment SID semantic. This allows for more
compact encoding of MRH sub-type data in this case because it eliminates the need to
distinguish between a non-leaf segment endpoint node of the tree to be an egress node
or not.</t>

</section>
</section>
<section anchor="mrh-packet-processing"><name>MRH Packet processing</name>

<section anchor="on-transit-nodes"><name>On Transit Nodes</name>

<t>Processing of MRH extension headers is as specified in <xref target="RFC8754"/>, Section 4.2. with
respect to <xref target="RFC8200"/> forwarding of IPv6 packets.</t>

<t>However, additional packet processing in the forwarding plane that operate
on IPv6 multicast packets for functions beyond those of IPv6 (unicast) packet forwarding
MAY perform the same operation on an IPv6 packet with an MRH extension header which
is an IPv6 multicast packet because its MSER-Segment contains an IPv6 multicast group address.</t>

<t>In this case, the IPv6 multicast related function is performed as if the IPv6 multicast
group address in the MSER-Segment was present in the IPv6 DA field of the packet, ignoring
the IPv6 (unicast) Segment endpoint address in the IPv6 DA field, which is irrelevant
to the IPv6 multicast semantic of the packet.</t>

<t>Examples of such functions are statistics gathering of IPv6 multicast packets for IPFIX,
attachment of QoS policies to the packet or "ACL" filtering of packet including firewall
functions or filtering of scoped IPv6 multicast addresses (<xref target="RFC7346"/>).</t>

</section>
<section anchor="on-the-mrh-source-node"><name>On the MRH source node</name>

<t><list style="symbols">
  <t>A source node steers a packet into an MRH/SR policy that translates into one or more
of the following set of data elements, each one required for one copy of the packet.  <list style="symbols">
      <t>An MSR sub-type header representing in a compressed form a set of Egress node SIDs
(destination sub-type) or a tree of segment endoint node SIDs with optional
Egress nodes (steering sub-type)</t>
      <t>An IPv6 source address belonging to the source node, which may be a SID,
or which may need to be associated with semantics of the MSR sub-type header
or the packet. For example, for an IPv6 multicast SSM packet as in<xref target="RFC3306"/>, <xref target="RFC3569"/>,
the SA needs to be set according to the desired (S,G) channel.</t>
      <t>An IPv6 destination address, which may be an IPv6 multicast group address (G)
or a SID to be processed by all Egress nodes.</t>
      <t>TLV (including HMAC).</t>
      <t>Optionally an IPv6 destination address for the first Segment endpoint node.</t>
    </list></t>
</list></t>

<t>The MRH/SR policy needs more than one data element sets and hence packet copies when
the desired list of egress nodes und/or representation of the tree of segment endpoint does
not fit into a single MRH header.</t>

<t><list style="symbols">
  <t>The source node sets the IPv6 header and MRH extension header as follows  <list style="symbols">
      <t>The SA of the packet is set to the IPv6 source address</t>
      <t>The MSER-segment is set to the IPv6 destination address.</t>
      <t>The Next Header and Hdr Ext Len fields are set as specified in <xref target="RFC8200"/>.
The Routing Type field is set to the value assigned for the MSR sub-type.</t>
      <t>The MSR sub-type header is inserted into its field. The Segments left
field is set to the length of the MSR sub-type header plus 32 bits in
units of 32 bits.</t>
      <t>If the SR policy includes a first Segment endpoint node IPv6 address, then
the packets DA is set to that address, and the packet is sent to it.</t>
      <t>If the SR policy does not include such an IPv6 address, the packets DA is logically
left unset and the packet is passed to the nodes MRH Segment endpoint processing steps.</t>
    </list></t>
</list></t>

</section>
<section anchor="on-segment-endpoint-nodes"><name>On Segment endpoint nodes</name>

<t>This document requires/uses only a single SRv6 SID for the reception of IPv6 packets
with MRH type routing extension header. This SID can also be used for other purposes if the node
can distinguish the semantic based on the routing header it contains - aka: for packets
without an MRH type routing extension header.</t>

<t><list style="symbols">
  <t>If local processing requires TLV processing, perform TLV processing
as described in in <xref target="RFC8754"/>.</t>
  <t>Determine if this node is an egress node for the packet as follows.
  <list style="symbols">
      <t>If the MRH sub-type data explicitly encodes this node as an egress node.</t>
      <t>If the node has membership for the IPv6 address in the MSER segment field. 
This can be the case when it is an IPv6 ASM multicast group that this node has
joined to, or if the node has subscribed to the IP6 SSM channel indicated by
(SA,MSER-segment), or if the MSER-segment indicates a non multicast SID that the node
is subscribed to. The rules for subscription to non multicast SID are outside the
scope of this document.</t>
    </list></t>
  <t>If the node is egress node for the packet, create a copy of the packet for which to proceed to
process the next header in the packet, whose type is identified by the Next Header field
in the routing header.</t>
  <t>Reduce the Hop-Count of the packet by 1.</t>
  <t>If the hop count is &lt;= 1, determine from the MSER segment SID whether ICMPv6 processing
is desired.
  <list style="symbols">
      <t>If the MSER segment SID is IPv6 multicast, no ICMPv6 processing is desired.</t>
      <t>Otherwise, the desire for ICMPv6 processing is defined by the SID.</t>
      <t>If ICMPv6 processing is desired, Send an ICMP Time Exceeded -- Hop Limit Exceeded
in Transit message to the Source Address</t>
      <t>discard the packet, stop processing</t>
    </list></t>
  <t>Determine from the MRH sub-type data a list of 0 or more next-hop segments of the tree and
perform the following processing for each of those next-hop segments
  <list style="symbols">
      <t>Create a copy of the packet</t>
      <t>Change the DA of the packet to the Segment Endpoint SID for that next-hop node.</t>
      <t>Rewrite the MRH sub-type data according to the processing rule of that MRH sub-type.
Typically, in a destination MRH sub-type this consists in eliminating from the
encoded Egress nodes set those that are not reachable via this next-hop segment, and for
a steering MRH sub-type in adjusting offset pointers in the MRH sub-type data to point
to the subtree rooted in the next-hop node.</t>
    </list></t>
  <t>Discard packet, terminate processing</t>
</list></t>

</section>
</section>
<section anchor="mrh-sub-types"><name>MRH sub-types</name>

<section anchor="mrh-bitstring-destination-mrh-bd-sub-type-format"><name>MRH-bitstring-destination (MRH-bd) Sub-Type format</name>

<t>MRH-bd uses the packet forwarding data structures (BIFT) and forwarding rules of <xref target="RFC8279"/>.
IPv6 packets with MRH-sd extension header are an <xref target="RFC8279"/> compliant encapsulation
to support BIER architecture (<xref target="RFC8279"/> packet forwarding, and it uses all forwarding
rules unmodified. <xref target="RFC8296"/> encapsulation is not used.</t>

<figure title="MRH-bd Sub-Type format" anchor="FIG-MRH-bd"><artwork><![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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |       SD      |       SI      |OAM| Entropy                   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                BitString  (first 32 bits)                     ~
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ~                                                               ~
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    ~                BitString  (last 32 bits)                      |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t><xref target="FIG-MRH-bd"/> shows the field of the MRH Sub-type specific data for the
MRH</t>

<t><list style="symbols">
  <t>SD is the sub-domain as specified in <xref target="RFC8279"/></t>
  <t>SI is the Set Identifier as specified in <xref target="RFC8279"/></t>
  <t>Entropy is as specified in <xref target="RFC8279"/>.</t>
  <t>BitString is as specified in <xref target="RFC8279"/>.</t>
  <t>OAM is for future use with OAM procedures.</t>
</list></t>

<t>The length of the BitString MUST be a multiple of 32 bits. It SHOULD be
one of thefollowing value for compatibility with potentially pre-existing
{RFC8279}} forwarding hardware:</t>

<t>64, 128, 256, 512, 1024, (2048, 4096)</t>

<t>Nodes supporting MRH-sd MUST support a BSL of 256 bits. Note that 
the length of 2048 and 4096 are not possible in an MRH extension header
due to the 255 byte size limit of IPv6 extension headers. See <xref target="longer-headers"/>.</t>

<t>Population of the <xref target="RFC8279"/>, section 6.4 forwarding tables (BIFT) is outside the scope of this specification. For the purpose of performing the rewriting of the IPv6 DA on Segment endpoint nodes, the BFR-NBR in the BIFT needs to be the MRH-sd SID of the next-hop MRH-sd node.</t>

</section>
<section anchor="mrh-steering-mrh-s-sub-type-format"><name>MRH-steering (MRH-s) Sub-Type format</name>

<t>This sub-type is TBD. There are currently multiple competing proposals
considered, including RTS (<xref target="I-D.eckert-pim-rts-forwarding"/> and 
<xref target="I-D.liu-pim-msr6-encapsulation-and-forwarding"/>.</t>

<t>It should be noted, that <xref target="RFC9262"/> will explicitly not be considered, because
that work was focussed on re-using the <xref target="RFC8279"/> forwarding plane as much
as possible, and this lead to a lot of management and scalability issues
which would make experimentation not with it not very useful. <xref target="RFC8279"/>
can work fine in smaller scale deployments (networks and/or size of trees),
but the purpose of this experiment is also to find better solutions for future
hardware forwarding engines.</t>

</section>
</section>


  </middle>

  <back>


    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC3306">
  <front>
    <title>Unicast-Prefix-based IPv6 Multicast Addresses</title>
    <author fullname="B. Haberman" initials="B." surname="Haberman"/>
    <author fullname="D. Thaler" initials="D." surname="Thaler"/>
    <date month="August" year="2002"/>
  </front>
  <seriesInfo name="RFC" value="3306"/>
  <seriesInfo name="DOI" value="10.17487/RFC3306"/>
</reference>

<reference anchor="RFC4291">
  <front>
    <title>IP Version 6 Addressing Architecture</title>
    <author fullname="R. Hinden" initials="R." surname="Hinden"/>
    <author fullname="S. Deering" initials="S." surname="Deering"/>
    <date month="February" year="2006"/>
    <abstract>
      <t>This specification defines the addressing architecture of the IP Version 6 (IPv6) protocol. The document includes the IPv6 addressing model, text representations of IPv6 addresses, definition of IPv6 unicast addresses, anycast addresses, and multicast addresses, and an IPv6 node's required addresses.</t>
      <t>This document obsoletes RFC 3513, "IP Version 6 Addressing Architecture". [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4291"/>
  <seriesInfo name="DOI" value="10.17487/RFC4291"/>
</reference>

<reference anchor="RFC7346">
  <front>
    <title>IPv6 Multicast Address Scopes</title>
    <author fullname="R. Droms" initials="R." surname="Droms"/>
    <date month="August" year="2014"/>
    <abstract>
      <t>This document updates the definitions of IPv6 multicast scopes and therefore updates RFCs 4007 and 4291.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7346"/>
  <seriesInfo name="DOI" value="10.17487/RFC7346"/>
</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="RFC8279">
  <front>
    <title>Multicast Using Bit Index Explicit Replication (BIER)</title>
    <author fullname="IJ. Wijnands" initials="IJ." role="editor" surname="Wijnands"/>
    <author fullname="E. Rosen" initials="E." role="editor" surname="Rosen"/>
    <author fullname="A. Dolganow" initials="A." surname="Dolganow"/>
    <author fullname="T. Przygienda" initials="T." surname="Przygienda"/>
    <author fullname="S. Aldrin" initials="S." surname="Aldrin"/>
    <date month="November" year="2017"/>
    <abstract>
      <t>This document specifies a new architecture for the forwarding of multicast data packets. It provides optimal forwarding of multicast packets through a "multicast domain". However, it does not require a protocol for explicitly building multicast distribution trees, nor does it require intermediate nodes to maintain any per-flow state. This architecture is known as "Bit Index Explicit Replication" (BIER). When a multicast data packet enters the domain, the ingress router determines the set of egress routers to which the packet needs to be sent. The ingress router then encapsulates the packet in a BIER header. The BIER header contains a bit string in which each bit represents exactly one egress router in the domain; to forward the packet to a given set of egress routers, the bits corresponding to those routers are set in the BIER header. The procedures for forwarding a packet based on its BIER header are specified in this document. Elimination of the per-flow state and the explicit tree-building protocols results in a considerable simplification.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8279"/>
  <seriesInfo name="DOI" value="10.17487/RFC8279"/>
</reference>

<reference anchor="RFC8754">
  <front>
    <title>IPv6 Segment Routing Header (SRH)</title>
    <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
    <author fullname="D. Dukes" initials="D." role="editor" surname="Dukes"/>
    <author fullname="S. Previdi" initials="S." surname="Previdi"/>
    <author fullname="J. Leddy" initials="J." surname="Leddy"/>
    <author fullname="S. Matsushima" initials="S." surname="Matsushima"/>
    <author fullname="D. Voyer" initials="D." surname="Voyer"/>
    <date month="March" year="2020"/>
    <abstract>
      <t>Segment Routing can be applied to the IPv6 data plane using a new type of Routing Extension Header called the Segment Routing Header (SRH). This document describes the SRH and how it is used by nodes that are Segment Routing (SR) capable.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8754"/>
  <seriesInfo name="DOI" value="10.17487/RFC8754"/>
</reference>

<reference anchor="RFC8986">
  <front>
    <title>Segment Routing over IPv6 (SRv6) Network Programming</title>
    <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
    <author fullname="P. Camarillo" initials="P." role="editor" surname="Camarillo"/>
    <author fullname="J. Leddy" initials="J." surname="Leddy"/>
    <author fullname="D. Voyer" initials="D." surname="Voyer"/>
    <author fullname="S. Matsushima" initials="S." surname="Matsushima"/>
    <author fullname="Z. Li" initials="Z." surname="Li"/>
    <date month="February" year="2021"/>
    <abstract>
      <t>The Segment Routing over IPv6 (SRv6) Network Programming framework enables a network operator or an application to specify a packet processing program by encoding a sequence of instructions in the IPv6 packet header.</t>
      <t>Each instruction is implemented on one or several nodes in the network and identified by an SRv6 Segment Identifier in the packet.</t>
      <t>This document defines the SRv6 Network Programming concept and specifies the base set of SRv6 behaviors that enables the creation of interoperable overlays with underlay optimization.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8986"/>
  <seriesInfo name="DOI" value="10.17487/RFC8986"/>
</reference>




    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC3542">
  <front>
    <title>Advanced Sockets Application Program Interface (API) for IPv6</title>
    <author fullname="W. Stevens" initials="W." surname="Stevens"/>
    <author fullname="M. Thomas" initials="M." surname="Thomas"/>
    <author fullname="E. Nordmark" initials="E." surname="Nordmark"/>
    <author fullname="T. Jinmei" initials="T." surname="Jinmei"/>
    <date month="May" year="2003"/>
    <abstract>
      <t>This document provides sockets Application Program Interface (API) to support "advanced" IPv6 applications, as a supplement to a separate specification, RFC 3493. The expected applications include Ping, Traceroute, routing daemons and the like, which typically use raw sockets to access IPv6 or ICMPv6 header fields. This document proposes some portable interfaces for applications that use raw sockets under IPv6. There are other features of IPv6 that some applications will need to access: interface identification (specifying the outgoing interface and determining the incoming interface), IPv6 extension headers, and path Maximum Transmission Unit (MTU) information. This document provides API access to these features too. Additionally, some extended interfaces to libraries for the "r" commands are defined. The extension will provide better backward compatibility to existing implementations that are not IPv6-capable. This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3542"/>
  <seriesInfo name="DOI" value="10.17487/RFC3542"/>
</reference>

<reference anchor="RFC3569">
  <front>
    <title>An Overview of Source-Specific Multicast (SSM)</title>
    <author fullname="S. Bhattacharyya" initials="S." role="editor" surname="Bhattacharyya"/>
    <date month="July" year="2003"/>
    <abstract>
      <t>The purpose of this document is to provide an overview of Source-Specific Multicast (SSM) and issues related to its deployment. It discusses how the SSM service model addresses the challenges faced in inter-domain multicast deployment, changes needed to routing protocols and applications to deploy SSM and interoperability issues with current multicast service models. This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3569"/>
  <seriesInfo name="DOI" value="10.17487/RFC3569"/>
</reference>

<reference anchor="RFC7761">
  <front>
    <title>Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol Specification (Revised)</title>
    <author fullname="B. Fenner" initials="B." surname="Fenner"/>
    <author fullname="M. Handley" initials="M." surname="Handley"/>
    <author fullname="H. Holbrook" initials="H." surname="Holbrook"/>
    <author fullname="I. Kouvelas" initials="I." surname="Kouvelas"/>
    <author fullname="R. Parekh" initials="R." surname="Parekh"/>
    <author fullname="Z. Zhang" initials="Z." surname="Zhang"/>
    <author fullname="L. Zheng" initials="L." surname="Zheng"/>
    <date month="March" year="2016"/>
    <abstract>
      <t>This document specifies Protocol Independent Multicast - Sparse Mode (PIM-SM). PIM-SM is a multicast routing protocol that can use the underlying unicast routing information base or a separate multicast-capable routing information base. It builds unidirectional shared trees rooted at a Rendezvous Point (RP) per group, and it optionally creates shortest-path trees per source.</t>
      <t>This document obsoletes RFC 4601 by replacing it, addresses the errata filed against it, removes the optional (*,*,RP), PIM Multicast Border Router features and authentication using IPsec that lack sufficient deployment experience (see Appendix A), and moves the PIM specification to Internet Standard.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="83"/>
  <seriesInfo name="RFC" value="7761"/>
  <seriesInfo name="DOI" value="10.17487/RFC7761"/>
</reference>

<reference anchor="RFC8296">
  <front>
    <title>Encapsulation for Bit Index Explicit Replication (BIER) in MPLS and Non-MPLS Networks</title>
    <author fullname="IJ. Wijnands" initials="IJ." role="editor" surname="Wijnands"/>
    <author fullname="E. Rosen" initials="E." role="editor" surname="Rosen"/>
    <author fullname="A. Dolganow" initials="A." surname="Dolganow"/>
    <author fullname="J. Tantsura" initials="J." surname="Tantsura"/>
    <author fullname="S. Aldrin" initials="S." surname="Aldrin"/>
    <author fullname="I. Meilik" initials="I." surname="Meilik"/>
    <date month="January" year="2018"/>
    <abstract>
      <t>Bit Index Explicit Replication (BIER) is an architecture that provides optimal multicast forwarding through a "multicast domain", without requiring intermediate routers to maintain any per-flow state or to engage in an explicit tree-building protocol. When a multicast data packet enters the domain, the ingress router determines the set of egress routers to which the packet needs to be sent. The ingress router then encapsulates the packet in a BIER header. The BIER header contains a bit string in which each bit represents exactly one egress router in the domain; to forward the packet to a given set of egress routers, the bits corresponding to those routers are set in the BIER header. The details of the encapsulation depend on the type of network used to realize the multicast domain. This document specifies a BIER encapsulation that can be used in an MPLS network or, with slight differences, in a non-MPLS network.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8296"/>
  <seriesInfo name="DOI" value="10.17487/RFC8296"/>
</reference>

<reference anchor="RFC9262">
  <front>
    <title>Tree Engineering for Bit Index Explicit Replication (BIER-TE)</title>
    <author fullname="T. Eckert" initials="T." role="editor" surname="Eckert"/>
    <author fullname="M. Menth" initials="M." surname="Menth"/>
    <author fullname="G. Cauchie" initials="G." surname="Cauchie"/>
    <date month="October" year="2022"/>
    <abstract>
      <t>This memo describes per-packet stateless strict and loose path steered replication and forwarding for "Bit Index Explicit Replication" (BIER) packets (RFC 8279); it is called "Tree Engineering for Bit Index Explicit Replication" (BIER-TE) and is intended to be used as the path steering mechanism for Traffic Engineering with BIER.</t>
      <t>BIER-TE introduces a new semantic for "bit positions" (BPs). These BPs indicate adjacencies of the network topology, as opposed to (non-TE) BIER in which BPs indicate "Bit-Forwarding Egress Routers" (BFERs). A BIER-TE "packets BitString" therefore indicates the edges of the (loop-free) tree across which the packets are forwarded by BIER-TE. BIER-TE can leverage BIER forwarding engines with little changes. Co-existence of BIER and BIER-TE forwarding in the same domain is possible -- for example, by using separate BIER "subdomains" (SDs). Except for the optional routed adjacencies, BIER-TE does not require a BIER routing underlay and can therefore operate without depending on a routing protocol such as the "Interior Gateway Protocol" (IGP).</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9262"/>
  <seriesInfo name="DOI" value="10.17487/RFC9262"/>
</reference>


<reference anchor="I-D.eckert-pim-rts-forwarding">
   <front>
      <title>Stateless Multicast Replication with Segment Routed Recursive Tree Structures (RTS)</title>
      <author fullname="Toerless Eckert" initials="T. T." surname="Eckert">
         <organization>Futurewei Technologies USA</organization>
      </author>
      <author fullname="Michael Menth" initials="M." surname="Menth">
         <organization>University of Tuebingen</organization>
      </author>
      <author fullname="Steffen Lindner" initials="S." surname="Lindner">
         <organization>University of Tuebingen</organization>
      </author>
      <author fullname="Yisong Liu" initials="Y." surname="Liu">
         <organization>China Mobile</organization>
      </author>
      <date day="6" month="July" year="2025"/>
      <abstract>
	 <t>   BIER provides stateless multicast in BIER domains using bitstrings to
   indicate receivers.  BIER-TE extends BIER with tree engineering
   capabilities.  Both suffer from scalability problems in large
   networks as bitstrings are of limited size so the BIER domains need
   to be subdivided using set identifiers so that possibly many packets
   need to be sent to reach all receivers of a multicast group within a
   subdomain.

   This problem can be mitigated by encoding explicit multicast trees in
   packet headers with bitstrings that have only node-local
   significance.  A drawback of this method is that any hop on the path
   needs to be encoded so that long paths consume lots of header space.

   This document presents the idea of Segment Routed Recursive Tree
   Structures (RTS), a unifying approach in which a packet header
   representing a multicast distribution tree is constructed from a tree
   structure of vertices (&quot;so called Recursive Units&quot;) that support
   replication to their next-hop neighbors either via local bitstrings
   or via sequence of next-hop neighbor identifiers called SIDs.

   RTS, like RBS is intended to expand the applicability of deployment
   for stateless multicast replication beyond what BIER and BIER-TE
   support and expect: larger networks, less operational complexity, and
   utilization of more modern forwarding planes as those expected to be
   possible when BIER was designed (ca. 2010).

   This document only specifies the forwarding plane but discusses
   possible architectural options, which are primarily determined
   through the future definition/mapping to encapsulation headers and
   controller-plane functions.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-eckert-pim-rts-forwarding-03"/>
   
</reference>


<reference anchor="I-D.liu-pim-msr6-encapsulation-and-forwarding">
   <front>
      <title>Encapsulation and Forwarding Process for IPv6 Multicast Source Routing (MSR6) Data Plane</title>
      <author fullname="Yisong Liu" initials="Y." surname="Liu">
         <organization>China Mobile</organization>
      </author>
      <author fullname="Xuesong Geng" initials="X." surname="Geng">
         <organization>Huawei Technologies</organization>
      </author>
      <author fullname="Changwang Lin" initials="C." surname="Lin">
         <organization>New H3C Technologies</organization>
      </author>
      <date day="24" month="April" year="2025"/>
      <abstract>
	 <t>   This document specifies the mechanism of IPv6 Multicast Source
   Routing (MSR6), covering the encapsulation and forwarding processes
   in the data plane. It introduces the hierarchical bitstring
   structure (HBS) to organize replication information, and represent
   more information than flat bit strings. It indicates multicast
   forwarding behavior based on the local bitstring forwarding table,
   requires less BIFT state and improve scalability.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-liu-pim-msr6-encapsulation-and-forwarding-01"/>
   
</reference>


<reference anchor="I-D.eckert-pim-mrh-experiment">
   <front>
      <title>Proposal for experimentation with stateless IPv6 multicast source routing in IPv6-only SRv6 networks via new IPv6 Multicast Routing Headers (MRH)</title>
      <author fullname="Toerless Eckert" initials="T. T." surname="Eckert">
         <organization>Futurewei Technologies USA</organization>
      </author>
      <author fullname="Yisong Liu" initials="Y." surname="Liu">
         <organization>China Mobile</organization>
      </author>
      <date day="7" month="July" year="2025"/>
      <abstract>
	 <t>   This document proposes experimentation to evaluate benefits and
   feasibility of an IPv6 routing extension header based architecture,
   implementation and deployment of stateless IPv6 multicast
   specifically for IPv6 only networks using SRv6 for IP unicast.

   This experimentation intends to explore options to support easier
   proliferation of technologies developed by BIER-WG by providing an
   IPv6/SRv6 network optimized packet header and per-hop forwarding
   mechanisms than BIERin6.  It also discusses how this work related to
   exploring advanced in-packet tree encoding mechanisms for both IPv6/
   SRv6 networks as well as BIER networks as a related effort.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-eckert-pim-mrh-experiment-01"/>
   
</reference>




    </references>


<?line 390?>

<section anchor="longer-headers"><name>Longer MRH headers</name>

<t>Currently, IPv6 extension headers can only be up to 255 byte in
size. It is also perceived common understanding that high-speed
IPv6 routers, which are also targeted by this memo can not well
support lookup into packets of more than 512 bytes, and that examining
a long header may reduce packet throughput performance. For example,
an <xref target="RFC8279"/> Bitstring has to be completely examined by a router,
so longer Bitstrings run into this problem.</t>

<t>However, with segment tree encoding in MRH sub-types, a single
Segment endpoint nodes does not need to examine the whole header
anymore, but only a consecutive smaller part of a potentially much
larger header. Likewise, if each node removes its part of the
MRH sub-type data for the copy sent to the next-hop node, then
each node will also have its part of the header start near the start
of MRH header, thus no look deep into the packet is necessary. Likewise,
router forwarding engines become like general purpose CPU, the less
problematic larger offsets into packet memory will be an issue, but
only the total amoun of processing needed to be done on the memory
accessed.</t>

<t>Finally, is it worth to have a larger header instead of sending multiple
packets ? Yes, for multicast packets it is. Consider that a 1024 byte
long extension header could address for example 4 times as many destinations
as a 256 byte extension header, so the bandwidth use near the source
of the packet is significantly reduced by as much as a factor of 4.</t>

<t>One possible option would be to use the X field in the MRH header to
indicate that the Hdr Ext Len indicates the length of the extension
header in 32 or 64 bits.</t>

</section>
<section anchor="changelog"><name>Changelog</name>

<t>01: Added new co-authors</t>

<t>00: initial version.</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAJZzfmgAA91cbXPbuHb+jl+BST7UzpUU23Gc2NM7XcdJNp6Jk9Ty3u72
zp0OREISNhShJUgr2t3sb+95AUCQop202fuhTad3ZZEEDs77ec6hxuOxyGxu
ysWZbOr5+LkQtakLfSZvllpefrg9kVdNUZtMuVpe26aGO+UbrXJdObl3df1m
X6jZrNK3Z3JVLUVus1Kt4Om8UvN6rLOPuqrHa7Maw9XxwaHYwD4fLq9Epmq9
sNX2TOpPa+HqSqvVmbx8dfNaCrOuzmRdNa4+Ojg4PTgScF2V+X+pwpaw9FY7
sTZn8u+1zUbS2Qoenjv4tF3xh8yuVrqs3T+EUE29tLCakHIM/0//mMAbq6tC
OydfEY3hYmXx7Do3ta3Cd7YCol83dVPpjTbyRmfL0hZ2YbSTP0zPw22Zbcoa
T5R8p1fKFHCYWn+XuclcNZNc79Lyk3EW2PrWNJ0tL5amVPLKzkyhdzahi71t
CtNsaanvMry6oicnwI6BLeGuX1CW/7kc2vRGF5qf+/Kuvy6b7S/Pecuan5tk
5e6WF0tVLjaKDlp29nynN/LNk4sOZ7/ywGUWVp0cHB8fHn+3fJLRiUVpq5Wq
za0+g4euX188eXJw4j8eH50e+o/PnhyHb5+DtsWPz07Dx2dPj8PH0+dwrzDl
PFkaV356fBQ+nZzyp2fPTg750/Oj0xP+dHp0gvddjl9OEsOoajeGBTeqIivk
6yBJthpXnYx1mam1awrY0pZjsITd+3uGBjalK4NGAPSOx2OpZmBiKquFuFka
J8FMG7wqc+2yysxAketg7vpTrUsHO8F3VrpmvQYLk6qU7aLSlHKzNNlSlCA5
eiq4hqV3DfVS1fFhMF9UDDC2Sq8L8CV4EKkqLc1qXWhcUuewRQ70rAu71bmA
E/LCU72gLcMG73S9sdVHN5EXtgBlQzEU2xHS73TcHtYGFwPX8zvdF3uviRDv
Sy3XTbW28Lydw0LAoPSsxIdcr4AjwMNa89mQX7CAzIAzMy3uOgiySsl1ZfMm
o1OXTP9EnpcW1qji1rSPAFnbplIL3WEVkaUTqiYs1pXJc/AN4qF8f6urW6M3
fQEbMB7cGyR8t5x0qWaFHhaTgL3XCtSrdngWWgRkM72G/5ZRFjd97oPdttKR
LArxhUgykbz8B79d4/AWFmyfbmC7mHmNXcVlA6FBefaaki7shysT+R9LXeKa
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
4MrBWfgtEgzQuCg8/N+79/IQOVEAAA==

-->

</rfc>

