<?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-hb-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/>

          <city>Ottawa</city>

          <region/>

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

          <city>San Jose</city>

          <region/>

          <code/>

          <country>US</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/>

          <city>Milpitas</city>

          <region/>

          <code/>

          <country>USA</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="30" month="August" year="2022"/>

    <abstract>
      <t>This document specifies a new Protocol Independent Multicast
      interface which does not need PIM Hello to accept PIM Join/Prunes or PIM
      Asserts.</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 triggered over it without having a full
      PIM neighbor discovery. As an example, 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. It also describes that PIM Join/Prune are
      not accepted from a router unless a Hello message has been heard from
      that router.</t>

      <t>In some scenarios it is desirable to communicate and build multicast
      states between two directly or non directly attach 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 it 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 Priority between the routers. As such the router doesn't create
      any General-Purpose state for neighboring PIM and it only accepts and
      installs each Join message from upstream 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 currently
        supports 12 message types, PIM Light only supports message type 3
        (Join/Prune). All other message types are not supported for PIM Light
        and should not be process if recived on a PLR interface.</t>

        <section title="PIM Sparse Mode ">
          <t>Lack of register message on PLR means that, the Source, DR, RP
          all need to be in a common PIM domain and can not be connected over
          PLR. PLR will only processes join/prune regardless of if the
          join/prune is &lt;S,G&gt; or &lt;*,G&gt;.</t>
        </section>
      </section>

      <section title="Lack of Hello Message considration">
        <t>The following should be considered on a PLR 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 PLRs unaware if
          their neighbors have the capability of processing the join
          attribute. A PLR that does not understand the type 1 Encoded-source
          Address, should not process a join message that contains it.
          Otherwise the PLR can process the Join Attribute accordingly.</t>
        </section>

        <section title="DR Selection">
          <t>Since DR selection is not supported on the PLR because of lack of
          hello messages, the network design should ensure that DR selection
          is achieve on the PIM domain, assuming the PLR 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 selection 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>

      <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 accepts 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.</t>

        <t>Other protocols can be used to detect these failures in the PLR
        domain and they can be implementation specific. As an example, the
        interface that PLR is configured on can be protected via BFD or
        similar technology. If BFD to the far-end PLR goes down, and the PLR
        is upstream and is an OIF for a multicast route &lt;S,G&gt;, PIM
        should remove that PLR from its OIF list. In addition if upstream PLR
        is configured automatically, as an example in BIER case, when the
        downstream BFR is no longer reachable, the upstream PLR 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>

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

      <t/>
    </section>

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

      <t/>
    </section>

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

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