<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<rfc category="std" docName="draft-ietf-pim-light-03" ipr="trust200902">
  <front>
    <title abbrev="PIM Light">PIM Light</title>

    <author fullname="Hooman Bidgoli" initials="H" role="editor"
            surname="Bidgoli">
      <organization>Nokia</organization>

      <address>
        <postal>
          <street>March Road</street>

          <city>Ottawa</city>

          <region>Ontario</region>

          <code>K2K 2T6</code>

          <country>Canada</country>
        </postal>

        <phone/>

        <email>hooman.bidgoli@nokia.com</email>
      </address>
    </author>

    <author fullname="Stig" initials="S." surname="Venaas">
      <organization>Cisco System, Inc.</organization>

      <address>
        <postal>
          <street>Tasman Drive</street>

          <city>San Jose</city>

          <region>California</region>

          <code>95134</code>

          <country>United States of America</country>
        </postal>

        <phone/>

        <email>stig@cisco.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Mankamana Mishra" initials="M." surname="Mishra">
      <organization>Cisco System</organization>

      <address>
        <postal>
          <street>Tasman Drive</street>

          <city>San Jose</city>

          <region>California</region>

          <code>95134</code>

          <country>United States of America</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>mankamis@cisco.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Zhaohui Zhang" initials="Z." surname="Zhang">
      <organization>Juniper Networks</organization>

      <address>
        <postal>
          <street/>

          <city>Boston</city>

          <region/>

          <code/>

          <country>USA</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>zzhang@juniper.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Mike" initials="M." surname="McBride">
      <organization>Futurewei Technologies Inc.</organization>

      <address>
        <postal>
          <street/>

          <city>Santa Clara</city>

          <region/>

          <code/>

          <country>USA</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>michael.mcbride@futurewei.com</email>

        <uri/>
      </address>
    </author>

    <date day="13" month="May" year="2024"/>

    <abstract>
      <t>This document specifies a new Protocol Independent Multicast
      interface which does not need PIM Hello to accept PIM Join/Prunes.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <!-- 1 -->

      <t>It might be desirable to create a PIM interface between routers where
      only PIM Join/Prunes packets are signaled over it without having a full
      PIM neighbor discovery. This type of PIM interface can be useful in some
      scenarios where the multicast state needs to be signaled over a network
      or medium which is not capable of or has no need for creating full PIM
      neighborship between its peer Routers. These type of PIM interfaces are
      called PIM Light Interfaces (PLI).</t>
    </section>

    <section title="Conventions used in this document">
      <!-- 2 -->

      <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 title="Definitions">
        <!-- 2.1 -->

        <t>This draft uses definitions used in <xref target="RFC7761"/></t>
      </section>
    </section>

    <section title="PIM Light Interface">
      <!--  3 -->

      <t>RFC <xref target="RFC7761"/> section 4.3.1 describes the PIM neighbor
      discovery via Hello messages. In section 4.5 it describes that If a
      router receives a Join/Prune message from a particular IP source address
      and it has not seen a PIM Hello message from that source address, then
      the Join/Prune message SHOULD be discarded without further
      processing.</t>

      <t>In some scenarios it is desirable to communicate and build multicast
      states between two L3 adjacent routers without establishing a PIM
      neighborship. There could be many reasons for this desired, but one
      example is the desired to signal multicast states upstream, between two
      or more PIM Domains via a network or medium that is not optimized for
      PIM or does not require PIM Neighbor establishment. An example is a BIER
      network connecting multiple PIM domains. In these BIER networks PIM
      Join/prune messages are tunneled via bier as per <xref
      target="draft-ietf-bier-pim-signaling"/>.</t>

      <t>A PIM Light Interface (PLI) ONLY accepts Join/Prune messages from an
      unknown PIM router and it accepts these messages without receiving a PIM
      Hello message form the router. Lack of Hello Messages on a PLI means
      there is no mechanism to learn about the neighboring PIM routers on each
      interface and their capabilities or run some of the basic algorithms
      like DR Election between the routers. As such the PIM Light router
      doesn't create any General-Purpose state for neighboring PIM and it only
      process Join/Prune message from downstream routers in its multicast
      routing table.</t>

      <t>Because of this, a PLI needs to be created in very especial cases and
      the application that is using these PLIs should ensure there is no
      multicast duplication of packets. As an example, multiple upstream
      routers sending the same multicast stream to a single downstream
      router.</t>

      <t/>

      <section title="PLI supported Messages">
        <t>As per IANA <xref target="iana pim-parameters"/> PIM supports more
        than 12 message types, PIM Light only supports message type 3
        (Join/Prune) from the ALL-PIM-ROUTERS message types listed in RFC7761,
        other unicast destination message types are supported by PIM light.
        All other message types are not supported for PIM Light and SHOULD not
        be process if received on a PLI.</t>
      </section>

      <section title="Lack of Hello Message consideration">
        <t>The following should be considered on a PIM Light domain since
        Hello messages are not processed.</t>

        <section title="Join Attribute">
          <t>Since PLI does not process the PIM Hello message, processing of
          the join attributes option in PIM Hello as per <xref
          target="RFC5384"/> is also not supported, leaving PIM Light unaware
          of its neighbor capability of processing the join attribute. A PIM
          Light Router that does not understand the type 1 Encoded-source
          Address and per <xref target="RFC7761"/> SHOULD not process a join
          message that contains it. Otherwise the PLI can process the Join
          Attribute accordingly.</t>
        </section>

        <section title="DR Selection">
          <t>Since DR Election is not supported on PIM Light because of lack
          of Hello messages, the network design should ensure that DR Election
          is achieve on the PIM domain, assuming the PIM Light domain is
          connecting PIM domains.</t>

          <t>As an example, in a BIER domain which is connecting 2 PIM
          networks, a PLI can be used between the BIER edge routers. The PLI
          will be only used for multicast states communication, by
          transmitting ONLY PIM Join/prunes over the BIER domain. In this case
          to ensure there is no multicast stream duplication the PIM routers
          attached on each side of the BIER domain might want to establish PIM
          Adjacency via <xref target="RFC7761"/> to ensure DR election on the
          edge of the BIER router, while PLI is used in the BIER domain,
          between BIER edge routers. When the Join or Prune message arrives
          from a PIM domain to the down stream BIER edge router, it can be
          send over the BIER tunnel to the upstream BIER edge router only via
          the selected designated router.</t>
        </section>

        <section title="PIM Assert">
          <t>Where multiple PIM routers peer over a shared LAN or a
          Point-to-Multipoint medium, it is possible for more than one
          upstream router to have valid forwarding state for a packet, which
          can lead to packet duplication. When this is detected PIM Assert is
          used to select one transmitter. That said as per <xref
          target="RFC7761"/> PIM Assert should only be accepted if it comes
          from a known PIM neighbor. With PIM LIGHT the implementation SHOULD
          ensure there is no duplicate streams arriving from upstream PIM
          Light routers to a single downstream PIM LIGHT router. If this
          condition is not possible to be met because of network design, the
          implementation should ensure there is no duplication of stream. As
          an example in PIM LIGHT over a BIER domain implementation, for IBBR
          (Down stream PIM LIGHT router) in a BIER domain to find the EBBRs
          closes to the source (upstream PIM LIGHT routes), SPF can be use
          with a post processing as per <xref
          target="draft-ietf-bier-pim-signaling"/> Appendix A.1. With this
          post processing if 2 EBBRs are found by the downstream IBBR, then
          this downstream IBBR router can choose one of the EBBRs with a
          unique IP selection algorithm. As an example the EBBR with lowest IP
          address or largest IP address can be the EBBR that the downstream
          PIM LIGHT (IBBR) router sends the join/prune message to. When this
          EBBR goes offline the downstream router can send the join to the
          next EBBR based on the IP selection algorithm. This IP selection
          algorithm is outside of scope of this draft.</t>
        </section>
      </section>

      <section title="PLI Configuration">
        <!-- 3.1 -->

        <t>Since a PLI doesn't require PIM Hello Messages and PIM neighbor
        adjacency is not checked for join/prune messages, there needs to be a
        mechanism to enable PLI on interfaces for security purpose, while on
        some other interfaces this may be enabled automatically. An example of
        the latter is the logical interface for a BIER sub-domain <xref
        target="draft-ietf-bier-pim-signaling"/>.</t>

        <t>If a system explicitly needs a PLI to be configured, then this
        system SHOULD not accept the Join/Prune messages on interfaces that
        the PLI is not configured on, and it should drop these messages on a
        non PLI interface. If the system automatically enables PLI on some
        special interfaces, as an example interfaces facing a BIER domain,
        then it should accept Join/Prune messages on these interfaces
        only.</t>
      </section>

      <section title="Failures in PLR domain">
        <t>Because the Hello messages are not processed on the PLI, some
        failures may not be discovered in PLI domain and multicast routes will
        not be pruned toward the source on the PIM domain, leaving the
        upstream routers continuously sending multicast streams until the out
        going interface (OIF) expires.</t>

        <t>Other protocols can be used to detect these failures in the PIM
        Light domain and they can be implementation specific. As an example,
        the interface that PIM Light is configured on can be protected via BFD
        or similar technology. If BFD to the far-end PLI goes down, and the
        PIM Light Router is upstream and is an OIF for a multicast route
        &lt;S,G&gt;, PIM should remove that PLI from its OIF list. In addition
        if upstream PLI is configured automatically, as an example in BIER
        case, when the downstream BFR is no longer reachable, the upstream PIM
        Light Router can prune the &lt;S,G&gt; advertised by that BFR, toward
        the source to stop the transmission of the multicast stream.</t>
      </section>

      <section title="Reliable Transport Mechanism for PIM LIGHT">
        <t><xref target="RFC6559"/> defines a reliable transport mechanism for
        PIM transmission of Join/Prune messages. PIM over reliable transport
        (PORT) uses TCP port 8471 which is assigned by IANA. <xref
        target="RFC6559"/> mandates that if a router is configured to use PIM
        over TCP or SCTP on a given interface it must include the
        PIM-over-TCP-Capable or PIM-over-SCTP-Capable Hello option in its
        Hello messages for that interface. These options also communicate the
        connection ID of TCP for the appropriate address family. PIM Light
        lacking Hello messages, can be configured to use PORT under a PLI.
        That said the TCP connection ID of local router and peer router has to
        be configured manually under each side of the PLI. The PLI uses these
        local and peer connection ID to setup a TCP connection. As per <xref
        target="RFC6559"/> section 4 the routers use the connection IDs to
        figure out which side will do a passive transport open and which side
        of the PLI with do a active open. If TCP connection failed to open
        then PLI will revert back to Datagram mode.</t>
      </section>

      <section title="PIM Variants not supported">
        <t>The following PIM variants are not supported with PIM Light and not
        covered by this draft:</t>

        <t><list style="numbers">
            <t>Protocol Independent Multicast - Dense Mode (PIM-DM)<xref
            target="RFC3973"> </xref></t>

            <t>Bidirectional Protocol Independent Multicast (BIDIR-PIM) <xref
            target="RFC5015"/></t>
          </list></t>
      </section>
    </section>

    <section title="IANA Considerations">
      <!-- 7 -->

      <t>NA</t>
    </section>

    <section title="Security Considerations">
      <!-- 8 -->

      <t>Since PIM Light can be used for signaling Source-Specific and Sparse
      Mode Join/Prune messages, security considerations of <xref
      target="RFC7761"/> and <xref target="RFC4607"/> SHOULD be
      considered.</t>

      <t>It should be noted a PIM Light can also use <xref target="RFC5796"/>
      as indicated in <xref target="RFC7761"/> for authentication.</t>
    </section>

    <section title="Acknowledgments">
      <!-- 9 -->

      <t>Would like to thank Sandy &lt;Zhang Zheng&gt; and Tanmoy Kundu for
      their suggestions and contribution to this draft.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <!-- 10.1 -->

      <reference anchor="RFC2119">
        <front>
          <title>S. Brandner, "Key words for use in RFCs to Indicate
          Requirement Levels"</title>

          <author>
            <organization/>
          </author>

          <date month="March" year="1997"/>
        </front>
      </reference>

      <reference anchor="RFC8174">
        <front>
          <title>B. Leiba, "ambiguity of Uppercase vs Lowercase in RFC 2119
          Key Words"</title>

          <author>
            <organization/>
          </author>

          <date month="May" year="2017"/>
        </front>
      </reference>

      <reference anchor="RFC7761">
        <front>
          <title>B.Fenner, M.Handley, H. Holbrook, I. Kouvelas, R. Parekh,
          Z.Zhang "PIM Sparse Mode"</title>

          <author>
            <organization/>
          </author>

          <date month="March" year="2016"/>
        </front>
      </reference>

      <reference anchor="RFC5384">
        <front>
          <title>A. Boers, I. Wijnands, E. Rosen "PIM Join Attribute
          Format"</title>

          <author>
            <organization/>
          </author>

          <date month="March" year="2016"/>
        </front>
      </reference>

      <reference anchor="draft-ietf-bier-pim-signaling">
        <front>
          <title>H.Bidgoli, F.XU, J. Kotalwar, I. Wijnands, M.Mishra, Z.
          Zhang, "PIM Signaling Through BIER Core"</title>

          <author>
            <organization/>
          </author>

          <date month="July" year="2021"/>
        </front>
      </reference>

      <reference anchor="iana pim-parameters">
        <front>
          <title/>

          <author>
            <organization/>
          </author>

          <date month="01" year="2022"/>
        </front>
      </reference>

      <reference anchor="RFC6559">
        <front>
          <title>D. Farinacci, I. Wijnands, S. Venaas, M. Napierala "A
          reliable Transport Mechanism for PIM"</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>

      <reference anchor="RFC4607">
        <front>
          <title>H. Holbrook, B. Cain "Source-Specific Multicast for
          IP"</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>

      <reference anchor="RFC5796">
        <front>
          <title>W. Atwood, S. Islam, M. Siami "Authentication and
          Confidentiality in PIM-SM"</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>

      <reference anchor="RFC5015">
        <front>
          <title>M. Handley, I. Kouvelas, T. Speakman, L. Vicisano
          "Bidirectional Protocol Independent Multicast" </title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>

      <reference anchor="RFC3973">
        <front>
          <title>A. Adams, J. Nicholas, W. Siadak, "Protocol Independent
          Multicast - Dense Mode"</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>
    </references>

    <references title="Informative References">
      <!-- 10.2 -->

      <reference anchor="RFC8279">
        <front>
          <title>Wijnands, IJ., Rosen, E., Dolganow, A., Przygienda, T. and S.
          Aldrin, "Multicast using Bit Index Explicit Replication"</title>

          <author>
            <organization/>
          </author>

          <date month="October" year="2016"/>
        </front>
      </reference>
    </references>
  </back>
</rfc>
<!-- generated from file C:\Users\hbidgoli\Downloads\draft-ietf-bier-pim-signaling-08.nroff with nroff2xml 0.1.0 by Tomek Mrugalski -->
