<?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-05" 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 Venaas" 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 McBride" 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="7" month="August" year="2024"/>

    <abstract>
      <t>This document specifies Protocol Independent Multicast Light (PIM
      Light) and PIM Light Interface (PLI) which does not need PIM Hello
      message to accept PIM Join/Prune messages. PLI can signal multicast
      states over networks that can not support full PIM neighbor discovery,
      as an example BIER networks that are connecting two or more PIM domains.
      This document outlines the PIM Light protocol and procedures to ensure
      loop-free multicast traffic between two or more PIM Light routers.</t>
    </abstract>
  </front>

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

      <t>This document specifies the Protocol Independent Multicast Light (PIM
      Light) and PIM Light Interface (PLI) procedures. PLI is a new type of
      PIM interface that allows signaling of PIM Join/Prune packets without
      full PIM neighbor discovery. PLI is useful in scenarios where multicast
      state needs to be signaled over networks or media that do not support or
      require full PIM neighborship between routers. The document details
      procedures and considerations needed for PIM Light and PLI to ensure
      efficient routing of multicast groups for specific deployment
      environments.</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 Protocol Independent Multicast
        - Sparse Mode (PIM-SM): Protocol Specification <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 certain scenarios, it is desirable to establish multicast states
      between two Layer 3 adjacent routers without forming a PIM neighborship.
      This can be necessary for various reasons, such as signaling multicast
      states upstream between multiple PIM domains over a network that is not
      optimized for PIM or does not necessitate PIM Neighbor establishment.
      For example, in a Bit Index Explicit Replication (BIER) <xref
      target="RFC8279"/> networks connecting multiple PIM domains, where PIM
      Join/Prune messages are tunneled via BIER as specified in <xref
      target="draft-ietf-bier-pim-signaling"/>.</t>

      <t>A PIM Light Interface (PLI) accepts Join/Prune messages from an
      unknown PIM router without requiring a PIM Hello message from the
      router. The absence of Hello messages on a PLI means there is no
      mechanism to discover neighboring PIM routers or their capabilities, nor
      to execute basic algorithms such as Designated Router (DR) election
      <xref target="RFC7761"/>. Consequently, the PIM Light router does not
      create any general-purpose state for neighboring PIM routers and only
      processes Join/Prune messages from downstream routers in its multicast
      routing table. Processing these Join/Prune messages will introduce
      multicast states in a PIM Light router.</t>

      <t>Due to these constraints, a PLI should be deployed in very specific
      scenarios. The application using these PLIs MUST ensure there is no
      multicast packet duplication, such as multiple upstream routers sending
      the same multicast stream to a single downstream router.</t>

      <section title="PLI supported Messages">
        <t>As per IANA <xref target="iana pim-parameters"/>, PIM supports
        numerous message types. However, PIM Light only supports message type
        3 (Join/Prune) from the ALL-PIM-ROUTERS message types listed in <xref
        target="RFC7761"/>. Other unicast destination type message like
        Register messages, Register-Stop message and
        Candidate-RP-Advertisement message 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="Absence of Hello Message consideration">
        <t>In a PIM Light domain, the following considerations should be taken
        into account due to the lack of processing Hello messages</t>

        <section title="Join Attribute">
          <t>Since a PLI does not process PIM Hello messages, it also does not
          support the join attributes option in PIM Hello as specified in
          <xref target="RFC5384"/>. As such, PIM Light is unaware of its
          neighbor's capability to process join attributes. A PIM Light router
          that does not recognize the type 1 Encoded-source Address, as per
          <xref target="RFC7761"/>, SHOULD NOT process a join message
          containing it. Otherwise, the PLI SHOULD process the join attribute
          accordingly.</t>
        </section>

        <section title="DR Selection">
          <t>Due to the absence of Hello messages, DR Election is not
          supported on a PIM Light router. The network design must ensure DR
          Election occurs within the PIM domain, assuming the PIM Light domain
          interconnects PIM domains.</t>

          <t><figure>
              <artwork><![CDATA[                         BBR                   BBR 
           |--PIM Domain--|--BIER domain (PLI)--|--PIM domain--| 
 Source--( A )----------( B ) ---- ( C ) ---- ( D )----------( E )--host
           |       PIM Adj|         | |         |PIM Adj       |
           |------------( E )-------| |-------( F )------------|
                                          (DR Election)]]></artwork>
            </figure></t>

          <t>For instance, in a BIER domain connecting two PIM networks, a PLI
          can be used between BIER edge routers solely for multicast state
          communication, transmitting only PIM Join/Prune messages. To prevent
          multicast stream duplication, PIM routers on either side of the BIER
          domain should establish PIM adjacency as per <xref
          target="RFC7761"/> to ensure DR election at the edge of BIER domain,
          as an example DR election between router D and F in above figure.
          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 designated router.</t>
        </section>

        <section title="PIM Assert">
          <t>In scenarios where multiple PIM routers peer over a shared LAN or
          a Point-to-Multipoint medium, more than one upstream router may have
          valid forwarding state for a packet, potentially causing packet
          duplication. PIM Assert is used to select a single transmitter when
          such duplication is detected. According to <xref target="RFC7761"/>,
          PIM Assert should only be accepted from a known PIM neighbor.</t>

          <t>In PIM Light implementations, care must be taken to avoid
          duplicate streams arriving from upstream PIM Light routers to a
          single downstream PIM Light router. If network design constraints
          prevent this, the implemented network architecture should take
          measures to avoid traffic duplication. For example, in a PIM Light
          over a BIER domain scenario, downstream IBBR (Ingress BIER Border
          Router) in a BIER domain can identify the nearest EBBRs (Egress BIER
          Border Routers) to the source using SPF with post-processing as
          described in <xref target="draft-ietf-bier-pim-signaling"/> Appendix
          A.1. If the downstream IBBR identifies two EBBRs, it can select one
          using a unique IP selection algorithm, such as choosing the EBBR
          with the lowest or highest IP address. If the selected EBBR goes
          offline, the downstream router can use the next EBBR based on the IP
          selection algorithm, which is beyond the 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 arriving Join/Prune messages, there needs
        to be a mechanism to enable PLI on interfaces. Only when PLI is
        enabled on an interface, arriving Join/Prune messages should be
        processed, otherwise they should be dropped. While on some logical
        interfaces PLI maybe enabled automatically or via an underlying
        mechanism, as an example the logical interface connecting two or more
        BIER edge routers in a BIER sub-domain <xref
        target="draft-ietf-bier-pim-signaling"/>.</t>
      </section>

      <section title="Failures in PLR domain">
        <t>Because the Hello messages are not processed on the PLI, PIM Light
        Interface failures may not be discovered in a PIM Light domain and
        multicast routes will not be pruned toward the source on the PIM Light
        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 has an OIF for a multicast route
        &lt;S,G&gt;, PIM should remove that PLI from its OIF list.</t>

        <t><figure>
            <artwork><![CDATA[                         UBER                 DBER 
           |--PIM Domain--|--BIER domain (PLI)--|--PIM domain--| 
 Source--( A )----------( B ) ---- ( C ) ---- ( D )----------( E )--host
                  <--Prune <S,G>          <failure on D>]]></artwork>
          </figure></t>

        <t>In another example, if PLI is configured automatically, as an
        example in BIER case, when the downstream BIER Edge Router (DBER) is
        no longer reachable, the upstream BIER Edge Router (UBER) which is
        also a PIM Light Router can prune the &lt;S,G&gt; advertised toward
        the source on the PIM domain 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, using either TCP or SCTP as
        transport protocol. For TCP, PIM over reliable transport (PORT) uses
        port 8471 which is assigned by IANA. SCTP is explained in <xref
        target="RFC9260"/>, and it is used as a second option for PORT. <xref
        target="RFC6559"/> mentions that when a router is configured to use
        PIM over TCP on a given interface, it MUST include the
        PIM-over-TCP-Capable Hello Option in its Hello messages for that
        interface. The same is true for SCTP and the router must include
        PIM-over-SCTP-Capable Hello Option in its Hello messsage on that
        interface.</t>

        <t>These Hello options contain a Connection ID which is an IPv4 or
        IPv6 address used to establish the SCTP or TCP connection. For PORT
        using TCP, the connection ID is used for determining which peer is
        doing a active transport open to the neighbor and which peer is doing
        passive transport open, as per section 4 of <xref
        target="RFC6559"/></t>

        <t>When the router is using SCTP, the Connection ID IP address
        comparison need not be done since the SCTP protocol can handle call
        collision.</t>

        <t>PIM Light lacking Hello messages, the PLI can be configured with
        the Connection ID IPv4 or IPv6 addresses used to establish the SCTP or
        TCP connection. For PIM Light using TCP PORT option each end of the
        PLI must be explicitly and correct configured as being active
        transport open or passive transport open to ensure handle call
        collision is avoided.</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>There are no new IANA considerations for this draft.</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
      where appropriate.</t>

      <t>In <xref target="RFC7761"/> section 6.1.1 only forged join/prune
      message should be considered as attach vector. This is because PIM Light
      does not process Hello messages or Assert messages. In section 6.2 a PIM
      Light router accepts Join/Prune message from a router which it has not
      yet revived a valid Hello Message from, hence it is important for PIM
      Light routers to accept Join/Prune messages only from configured or a
      valid PLI. In section 6.3 the same authentication mechanism explained in
      <xref target="RFC5796"/> can be used for PLI via IPsec Encapsulating
      Security payload (ESP) or optionally the Authentication Header (AH).</t>

      <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"
                 target="https://www.iana.org/assignments/pim-parameters/pim-parameters.xhtml#message-types">
        <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="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>

      <reference anchor="RFC9260">
        <front>
          <title>R. Stewart, M. Tuxen, K. Nielsen, "Stream Control
          Transmission Protocol"</title>

          <author>
            <organization/>
          </author>

          <date month="June" year="2022"/>
        </front>
      </reference>
    </references>

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

          <author>
            <organization/>
          </author>

          <date/>
        </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 -->
