<?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.31 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-venaas-pim-ipv4-in-ipv6-core-00" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="IPv4 in IPv6 Core using PIM">Native IPv4 multicast in IPv6 Core using PIM</title>
    <seriesInfo name="Internet-Draft" value="draft-venaas-pim-ipv4-in-ipv6-core-00"/>
    <author initials="S." surname="Venaas" fullname="Stig Venaas">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street>Tasman Drive</street>
          <city>San Jose</city>
          <code>CA 95134</code>
          <country>United States of America</country>
        </postal>
        <email>svenaas@cisco.com</email>
      </address>
    </author>
    <author initials="M." surname="Mishra" fullname="Mankamana Mishra">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street>821 Alder Drive</street>
          <city>Milpitas</city>
          <code>CA 95035</code>
          <country>United States</country>
        </postal>
        <email>mankamis@cisco.com</email>
      </address>
    </author>
    <author initials="S." surname="Buraiky" fullname="Salah M. Buraiky">
      <organization>Aramco</organization>
      <address>
        <email>salah.buraiky.1@aramco.com</email>
      </address>
    </author>
    <date year="2026" month="February" day="25"/>
    <area>Routing</area>
    <workgroup>PIM Working Group</workgroup>
    <keyword>PIM</keyword>
    <keyword>IPv6</keyword>
    <keyword>IPv4-over-IPv6</keyword>
    <keyword>Multicast</keyword>
    <keyword>RPF Vector</keyword>
    <abstract>
      <?line 47?>

<t>This document describes how PIM Sparse-Mode can be used to construct IPv4 
multicast trees across an IPv6-only network core. It specifies the use of 
IPv6 PIM messages to carry IPv4 group and source addresses, the use of RPF 
vectors for reachability, and a new Hello Option to signal support for this 
capability.</t>
    </abstract>
  </front>
  <middle>
    <?line 55?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>In typical network deployments, it is preferred that the network core remains 
simple, pushing complexity to the edge. One such case involves providing a 
mix of IPv4 and IPv6 unicast and multicast at the edge while deploying only 
one address family (IPv6) in the core.</t>
      <t>For unicast, <xref target="RFC5549"/> allows building a RIB with IPv4 prefixes that have 
IPv6 next-hops, removing the requirement for IPv4 addresses on core routers. 
This allows native IPv4 unicast packets to be forwarded through a network 
without IPv4 addresses.</t>
      <t>This document describes how to build IPv4 multicast trees and construct 
IPv4 multicast forwarding tables to allow native IPv4 multicast through 
a network without IPv4 addresses, using PIM Sparse-Mode <xref target="RFC7761"/>.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", 
"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this 
document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> 
when, and only when, they appear in all capitals, as shown here.</t>
    </section>
    <section anchor="protocol-operation">
      <name>Protocol Operation</name>
      <section anchor="pim-message-encoding">
        <name>PIM Message Encoding</name>
        <t><xref target="RFC7761"/> uses an encoding for all IP addresses that specifies the address 
family. This allows a PIM message with an IPv6 header to contain IPv4 
addresses. This document proposes exchanging PIM Join/Prune messages with 
IPv6 headers and IPv6 target addresses, where the Source or Group addresses 
within the message may be IPv4.</t>
        <t>It is assumed that all sources in a group record are of the same address 
family as the group itself.</t>
      </section>
      <section anchor="rpf-handling">
        <name>RPF Handling</name>
        <t>Each PIM router must determine the RPF neighbor and interface for a given 
(*,G) or (S,G).</t>
        <ol spacing="normal" type="1"><li>
            <t>If core routers have a RIB with IPv4 prefixes and IPv6 next-hops 
(e.g., via <xref target="RFC5549"/>), this information is used for the RPF lookup.</t>
          </li>
          <li>
            <t>Alternatively, the RPF Vector <xref target="RFC5496"/> can be used. This allows an 
egress core router to include RPF vector(s) with the IPv6 address(es) 
of the ingress core routers in the PIM Join message. By doing so, the 
core network does not require IPv4 unicast routing information.</t>
          </li>
        </ol>
      </section>
      <section anchor="pim-hello-option">
        <name>PIM Hello Option</name>
        <t>To ensure interoperability, a new PIM Hello Option is probably needed.
A router would include this option to indicate that it accepts PIM messages
with IPv6 headers containing IPv4 source and group addresses.</t>
      </section>
      <section anchor="register-and-assert-messages">
        <name>Register and Assert Messages</name>
        <t>It is assumed that Rendezvous Points (RPs) are located outside of the 
core; therefore, no special handling for PIM Register messages is 
defined in this document.</t>
        <t>PIM Assert messages MUST use an IPv6 header and contain IPv4 source and 
group information. If an RPF vector is used, it MUST be used for the 
metric calculation as specified in Section 3.3.3 of <xref target="RFC5496"/>.</t>
      </section>
      <section anchor="data-plane-requirements">
        <name>Data Plane Requirements</name>
        <t>An IPv6 core router must be able to detect native IPv4 packets received 
on the (S,G) incoming interface (for switching to the Shortest Path Tree) 
and on Outgoing Interface Lists (OIFs) for Assert handling.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document does not change the security properties of <xref target="RFC7761"/>. 
However, it introduces the handling of mixed-address-family control 
packets which implementations must validate to prevent malformed 
packet processing.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>If we decide to use a hello option, IANA will be requested to assign a new
PIM Hello Option type from the "PIM Hello Options" registry for the option
described in this document.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <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="RFC5549">
        <front>
          <title>Advertising IPv4 Network Layer Reachability Information with an IPv6 Next Hop</title>
          <author fullname="F. Le Faucheur" initials="F." surname="Le Faucheur"/>
          <author fullname="E. Rosen" initials="E." surname="Rosen"/>
          <date month="May" year="2009"/>
          <abstract>
            <t>Multiprotocol BGP (MP-BGP) specifies that the set of network-layer protocols to which the address carried in the Next Hop field may belong is determined by the Address Family Identifier (AFI) and the Subsequent Address Family Identifier (SAFI). The current AFI/SAFI definitions for the IPv4 address family only have provisions for advertising a Next Hop address that belongs to the IPv4 protocol when advertising IPv4 Network Layer Reachability Information (NLRI) or VPN-IPv4 NLRI. This document specifies the extensions necessary to allow advertising IPv4 NLRI or VPN-IPv4 NLRI with a Next Hop address that belongs to the IPv6 protocol. This comprises an extension of the AFI/SAFI definitions to allow the address of the Next Hop for IPv4 NLRI or VPN-IPv4 NLRI to also belong to the IPv6 protocol, the encoding of the Next Hop in order to determine which of the protocols the address actually belongs to, and a new BGP Capability allowing MP-BGP Peers to dynamically discover whether they can exchange IPv4 NLRI and VPN-IPv4 NLRI with an IPv6 Next Hop. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5549"/>
        <seriesInfo name="DOI" value="10.17487/RFC5549"/>
      </reference>
      <reference anchor="RFC5496">
        <front>
          <title>The Reverse Path Forwarding (RPF) Vector TLV</title>
          <author fullname="IJ. Wijnands" initials="IJ." surname="Wijnands"/>
          <author fullname="A. Boers" initials="A." surname="Boers"/>
          <author fullname="E. Rosen" initials="E." surname="Rosen"/>
          <date month="March" year="2009"/>
          <abstract>
            <t>This document describes a use of the Protocol Independent Multicast (PIM) Join Attribute as defined in RFC 5384, which enables PIM to build multicast trees through an MPLS-enabled network, even if that network's IGP does not have a route to the source of the tree. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5496"/>
        <seriesInfo name="DOI" value="10.17487/RFC5496"/>
      </reference>
      <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="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>
    </references>
    <?line 140?>



  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA5VXXW/bOBZ9N+D/QKQv6cL2Jm3aTr0v46Zp40GceOJ0FovF
YkFLtE1EIjUkZccz6H/fc3kpWU7bXWwD1BQl3u9z7uVwOOz3gg6FGotbGfRW
iel8eyHKugg6kz4IbWjnrbi0Tonaa7MW8+ms35PLpVPbMX/+o49ymxlZQnbu
5CoMt8pI6YeVLoe62l4MtaHft8MMx4ZnZ/1eJoNaW7cfCx/yfq/f05Ubi+Bq
H16dnb0/ewW9TsmxuLd1gJZ+b2fd49rZuhqTRvF3PJL2z7TV7z2qPT7Ix+Kf
eDmINsb/L4Z2q9yQn2eNrwNxP/8kflNZsO5fpN0HafJ/y8IauLBXvt+rNGQF
mw2Ety44tfJY7UtaxBOyDhvrxv2eQFwF/mnjx2IxglRynfc4JIug10fb1q2l
0X8gC9aMxaX2mRWLvQ+qhJKpyUb8mYdaFcbiQfpSGvHRIWn8JtMBkVtg8xfr
mz2bQ9flRLx/c/76otmrTaAgfzE6qByWIOxe2JWYlMohFPyZKqUukAnO2s8Z
GTTKbPnMudlIzLTfONl1bibNo4R58ujd/+nhT6/OxaTIlfvWyZkuKh2ayHWc
PHv95r85eeRZGY3UP3YNeftQO6kf90eJk4XckNtH7459mzhZZvY4jnRstOQz
o/OfZfyEtfZ7xroy4o9qR9x/unz37u15s37z5uJ9u754/7ZZvzo/b/d/On93
MSZJw+FQyCViKLNAzw8b7QWAWJfKBJErnzm9RLo3dhchs6ik82o4QwxFhtpZ
EoIRsGARQwM5dRYY5f3egRYoRV7IzFmPH4b/0JpiL4wKBEpBoB6JaRC+Uple
aXweNlE2VVq/FwmDDCiV93JNr6FROrdnbRHVEJ0DarXLlJB57vCpQq10BBFk
+71tBK0XK+sECCLbyKUuUCmDKEDCqJ24VkVhxV1FGSJdXq+NLISvqwpYjkcD
xYpoqErnR01ES53nhaKnF6jU4GyOsEAQ7Uwhbl8hLkXrfK6qwu4p4rBWg0W9
qEASyjmK7EaG6EI3VDAbdWJIvddlVaiBqGq/ITJDieD5CeaQ2XRQ5WvE9s4o
WJ9tEDXEQputLbaKFNmtzumgpJTpJwpTDCnFIoa9NpxF2jjkNFlFwsVuowuV
3CBRMbX9HpiwyYNYATvYPCWJL6kF0OGYdQrKJ4QzqRmIP/9MVfz1q5DIws6L
Za2LZOT99IPY6bBhIylO+ilWCwzaSLSkVCxGPYXhxlYIKYIFJ3GadDr1e62x
Q/VNWWRfm2qB6SnA6BnK+ZFImEiGmE7ba+JSyexRhViRgANk7qTLY+YgZL2J
BcWpQweC5ZD8TOvof0GPRFMInvfbBCwk5oC+6H/3o2RRDIBcFoyd6M+ROx2p
yXB0qNb07xs+OPTvI2qIKSRS+vp1xDB4UK7UxhZ2vWdnlUC/FdRwvTiZfVk8
nAz4V9zexfX91a9fpvdXH2m9uJ7c3LSL5ovF9d2XG3rf76X14ezl3Wx2dfuR
j2NXPNuaTf5xwng/uZs/TO9uJzcnXJYR1G0eMEGkxGqDgkC9UX+Qvk1QTqc+
XM7F+QW7TTyLyo1r4lmskfeNMqwuYoMfUY57IatKSUdCkBKAkzpVgcBChUfq
jdioBJIXYu4sxglbgJeUkw2jvHgR4z9jZhRXBh0ujjv9XicPRIGRfFV6H6uf
dE7nnfqPODom4QbC/R6DeCS6iJBdWmZkJoaH5ZL6MfeGIHnuo85wKHxxXPVg
o8qSGeoJrGzWTW39YrX569zVIJS2AURVCeysyR84K0i3VqFbqDuKY/RnwR0C
3n/mrtE6z/hM5NS4VMo9pZ9MJzaAxsjQ0nvYnPiZwsiNx8dMpn7kFLgkjzUE
ViWhHkPBNwGlXNNLPqSDV8VqlDJLHesabhUpo1doVzEkTFBArSeyCBFe7B8d
MUqvN0tKsMm5clcyU5xysQbmDbSf/mXw+SXF4XSBBTt3PhJiujriQKbVHzJv
G/OWcQWPMqdqtB4NxFbLLqW/HDDGtFnxFAPGxWOcIrirsgeFtY91hTC8gkWT
AoYwWRX7QfsNT99JOkYdVHlnKHlWpyaZpdYx+B0PqUK1yYo6Z7E8H5z6l+wu
aYsOprydKrxJcxxnFbl5LtM3Pa4p36aeMAnuUfBU2d6yK80M6g5NPreIrLGh
aVfHHcfxhaYbw1GHCbqzSyRbC9D72iUOs0Qe7cQTp53np3gEsUu0C5rRFNoZ
FEyaeO1sXeRtyGI6bTspaZNrupoxMjDOyCxTFfpjd3xjpIkj8CaSIMeit80k
h/paHwO1BYdaa08G0TcTvMFkNms1fBep98rk6o+trWEPkgCzTu/nyCdhtLBk
Nyi6Dl7nLWYx4iE1f6M1ah7LATLDHIkhbpPAGYuXXGyNapmKOwrgYrhbhC7n
RV/oXLK/PRV7Ic2tz+g0dfsDn3bi1O8lDukUBsEZIg6F3cAtzppRSzPFN/jD
IKgC7nZAU5HVBYOUGlLqC9GLhYozrXg9wh/FqgPDJkEfZUB/KCSY6f4wd8Xc
TJJXXRxGMoMxNKVQKRGvYaLpTinNsAVqVdjM45gZjY4kRkVpS8ZGQ3qn5JZH
vWVxQE5T8QJXb9zxgphLFOIDBikCNXdocVeHdYTotJVyg6SiWO6mn1AtJDHl
q8l/atGISu1o+L7EQIYi4jbtvzPgNQiPjY6Z2zeHqwjSoPmi3Z2mYOO13amt
cnxVSLeL1KrbYsQpzPIqHybMDFOnocJxGCD6vSaQmN3RUeIlguxiczkTW1no
PCLZEt1vyexSFlRaMfAsgoyFfn+IwXRyO/mO/6jDHd0SMsIWRMbaRlUT7TB9
DPjoTqOdLnlUR4b4egkU4wrGfMWAOb6i7Su0N2fLGIeT5+/9CaQRLnFhbKrc
JoI8muS+xSZd6JbwtN/7DyYyMJ8AEwAA

-->

</rfc>
