<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" consensus="true" docName="draft-ietf-pim-bfd-p2mp-use-case-10" indexInclude="true" ipr="trust200902" number="9186" prepTime="2022-01-26T19:09:39" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="3" tocInclude="true" xml:lang="en">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-pim-bfd-p2mp-use-case-10" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9186" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="BFD P2MP Use in PIM-SM">Fast Failover in Protocol Independent Multicast - Sparse Mode (PIM-SM) Using Bidirectional Forwarding Detection (BFD) for Multipoint Networks</title>
    <seriesInfo name="RFC" value="9186" stream="IETF"/>
    <author initials="G." surname="Mirsky" fullname="Greg Mirsky">
      <organization showOnFrontPage="true">Ericsson</organization>
      <address>
        <email>gregimirsky@gmail.com</email>
      </address>
    </author>
    <author initials="X." surname="Ji" fullname="Xiaoli Ji">
      <organization showOnFrontPage="true">ZTE Corporation</organization>
      <address>
        <postal>
          <extaddr>Yuhuatai District</extaddr>
          <street>No. 50 Software Avenue</street>
          <city>Nanjing</city>
          <country>China</country>
        </postal>
        <email>ji.xiaoli@zte.com.cn</email>
      </address>
    </author>
    <date month="01" year="2022"/>
    <area>Routing</area>
    <workgroup>PIM Working Group</workgroup>
    <keyword>PIM-SM</keyword>
    <keyword>BFD</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">
	This document specifies how Bidirectional Forwarding Detection (BFD) for multipoint networks 
	can provide sub-second failover for routers that participate in Protocol Independent Multicast - Sparse Mode (PIM-SM).
 An extension to the PIM Hello message used to
bootstrap a point-to-multipoint BFD session is also defined in this
document.
      </t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by
            the Internet Engineering Steering Group (IESG).  Further
            information on Internet Standards is available in Section 2 of 
            RFC 7841.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9186" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2022 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.1.2">
              <li pn="section-toc.1-1.1.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-conventions-used-in-this-do">Conventions Used in This Document</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.1.2.1.2">
                  <li pn="section-toc.1-1.1.2.1.2.1">
                    <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.1.2.1.1"><xref derivedContent="1.1.1" format="counter" sectionFormat="of" target="section-1.1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terminology">Terminology</xref></t>
                  </li>
                  <li pn="section-toc.1-1.1.2.1.2.2">
                    <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.1.2.2.1"><xref derivedContent="1.1.2" format="counter" sectionFormat="of" target="section-1.1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-language">Requirements Language</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bfd-discriminator-pim-hello">BFD Discriminator PIM Hello Option</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2">
              <li pn="section-toc.1-1.2.2.1">
                <t indent="0" pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-using-p2mp-bfd-in-pim-route">Using P2MP BFD in PIM Router Monitoring</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.2">
                <t indent="0" pn="section-toc.1-1.2.2.2.1"><xref derivedContent="2.2" format="counter" sectionFormat="of" target="section-2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-p2mp-bfd-in-pim-dr-load-bal">P2MP BFD in PIM DR Load Balancing</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.3">
                <t indent="0" pn="section-toc.1-1.2.2.3.1"><xref derivedContent="2.3" format="counter" sectionFormat="of" target="section-2.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-multipoint-bfd-encapsulatio">Multipoint BFD Encapsulation</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.5.2">
              <li pn="section-toc.1-1.5.2.1">
                <t indent="0" pn="section-toc.1-1.5.2.1.1"><xref derivedContent="5.1" format="counter" sectionFormat="of" target="section-5.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.5.2.2">
                <t indent="0" pn="section-toc.1-1.5.2.2.1"><xref derivedContent="5.2" format="counter" sectionFormat="of" target="section-5.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgments</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="intro" numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">
Faster convergence in the control plane minimizes the periods of
traffic loss due to the use of stale routing information, transient routing loops, and other situations
that may negatively affect service data flow.  Faster convergence
in the control plane is beneficial to unicast and multicast routing
protocols.
</t>
      <t indent="0" pn="section-1-2">
 <xref target="RFC7761" format="default" sectionFormat="of" derivedContent="RFC7761"/> is the current specification of the Protocol Independent
   Multicast - Sparse Mode (PIM-SM) for IPv4 and IPv6 networks. A conforming implementation of PIM-SM elects a Designated Router (DR)
 on each PIM-SM interface. When a group of PIM-SM nodes is connected to a shared media segment, e.g., Ethernet,
 the node elected as the DR acts on behalf of directly connected hosts in the context of the PIM-SM protocol.
Failure of the DR impacts the quality of the multicast services it
provides to directly connected hosts because the default failure detection interval
for PIM-SM routers is 105 seconds.
      </t>
      <t indent="0" pn="section-1-3">
 Bidirectional Forwarding Detection (BFD) <xref target="RFC5880" format="default" sectionFormat="of" derivedContent="RFC5880"/> was originally defined to detect
 a failure of a point-to-point (P2P) path, single hop <xref target="RFC5881" format="default" sectionFormat="of" derivedContent="RFC5881"/>, or multihop <xref target="RFC5883" format="default" sectionFormat="of" derivedContent="RFC5883"/>.
 In some PIM-SM deployments, a P2P BFD can be used to detect a failure and enable faster failover.

 <xref target="RFC8562" format="default" sectionFormat="of" derivedContent="RFC8562"/> extends the BFD base specification <xref target="RFC5880" format="default" sectionFormat="of" derivedContent="RFC5880"/> for multipoint and multicast
 networks, which matches the deployment scenarios for PIM-SM over a LAN segment.
 A BFD system in a point-to-multipoint (P2MP) environment that transmits BFD Control messages using the BFD Demand mode <xref target="RFC5880" format="default" sectionFormat="of" derivedContent="RFC5880"/> creates less BFD state
 than the Asynchronous mode. P2MP BFD can enable 
 faster detection of PIM-SM router failure compared to PIM-SM without BFD and 
 thus minimizes multicast service disruption. The monitored PIM-SM router acts as the head and other routers act as tails of a P2MP BFD
session. This document defines the monitoring of a PIM-SM router using P2MP BFD.
This document also defines the extension to PIM-SM <xref target="RFC7761" format="default" sectionFormat="of" derivedContent="RFC7761"/>
 to bootstrap a PIM-SM router to join in the P2MP BFD session over a shared media segment.
      </t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-1.1">
        <name slugifiedName="name-conventions-used-in-this-do">Conventions Used in This Document</name>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-1.1.1">
          <name slugifiedName="name-terminology">Terminology</name>
          <t indent="0" pn="section-1.1.1-1">
This document uses terminology defined in <xref target="RFC5880" format="default" sectionFormat="of" derivedContent="RFC5880"/>, <xref target="RFC8562" format="default" sectionFormat="of" derivedContent="RFC8562"/>,
and <xref target="RFC7761" format="default" sectionFormat="of" derivedContent="RFC7761"/>. Familiarity with these specifications and the terminology used
is expected.
</t>
        </section>
        <section numbered="true" toc="include" removeInRFC="false" pn="section-1.1.2">
          <name slugifiedName="name-requirements-language">Requirements Language</name>
          <t indent="0" pn="section-1.1.2-1">
    The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
    "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
    described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> 
    when, and only when, they appear in all capitals, as shown here.
          </t>
        </section>
      </section>
    </section>
    <section anchor="bfd-discriminatorpim-hello-sec" numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-bfd-discriminator-pim-hello">BFD Discriminator PIM Hello Option</name>
      <t indent="0" pn="section-2-1">
 <xref target="tlv-p2mp-bfd-boot-fig" format="default" sectionFormat="of" derivedContent="Figure 1"/> displays the new optional
 BFD Discriminator PIM Hello Option
to bootstrap a tail of the P2MP BFD session:
      </t>
      <figure anchor="tlv-p2mp-bfd-boot-fig" align="left" suppress-title="false" pn="figure-1">
        <name slugifiedName="name-bfd-discriminator-pim-hello-">BFD Discriminator PIM Hello Option</name>
        <artwork name="" type="" align="left" alt="" pn="section-2-2.1">    
     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          OptionType           |         OptionLength          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                       HeadDiscriminator                       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       </artwork>
      </figure>
      <t indent="0" pn="section-2-3">
where new fields are interpreted as:
</t>
      <dl indent="3" newline="false" spacing="normal" pn="section-2-4">
        <dt pn="section-2-4.1">OptionType:</dt>
        <dd pn="section-2-4.2">39</dd>
        <dt pn="section-2-4.3">OptionLength:</dt>
        <dd pn="section-2-4.4">
          <bcp14>MUST</bcp14> be set to 4.</dd>
        <dt pn="section-2-4.5">HeadDiscriminator:</dt>
        <dd pn="section-2-4.6"> the 4-octet field <bcp14>MUST</bcp14> be included in the BFD Discriminator PIM-SM Hello Option.
The value <bcp14>MUST NOT</bcp14> be zero. It equals the value of My Discriminator 
<xref target="RFC5880" format="default" sectionFormat="of" derivedContent="RFC5880"/> allocated by the head. </dd>
      </dl>
      <t indent="0" pn="section-2-5">
If the value of the OptionLength field is not equal to 4, the BFD Discriminator PIM Hello Option
is considered malformed, and the receiver <bcp14>MUST</bcp14> stop processing PIM Hello Options.
If the value of the HeadDiscriminator field equals zero, then the BFD Discriminator PIM Hello Option
<bcp14>MUST</bcp14> be considered invalid, and the receiver <bcp14>MUST</bcp14> ignore it.
The receiver <bcp14>SHOULD</bcp14> log a notification regarding the malformed or invalid BFD Discriminator Hello Option
under the control of a throttling logging mechanism.
</t>
      <section anchor="pim-dr-p2mp-bfd-sec" numbered="true" toc="include" removeInRFC="false" pn="section-2.1">
        <name slugifiedName="name-using-p2mp-bfd-in-pim-route">Using P2MP BFD in PIM Router Monitoring</name>
        <t indent="0" pn="section-2.1-1">
If the head is no longer serving the function that prompted it
to be monitored, then it <bcp14>MUST</bcp14> cease including the BFD Discriminator
PIM Hello Option in its PIM Hello message, and it <bcp14>SHOULD</bcp14> shut down
the BFD session following the procedures described in <xref target="RFC8562" sectionFormat="comma" section="5.9" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8562#section-5.9" derivedContent="RFC8562"/>.
</t>
        <t indent="0" pn="section-2.1-2">
 The head <bcp14>MUST</bcp14> create a BFD session of type MultipointHead <xref target="RFC8562" format="default" sectionFormat="of" derivedContent="RFC8562"/>.
 Note that any PIM-SM router, regardless of its role, <bcp14>MAY</bcp14> become a head of a P2MP BFD session.
 To control the volume of BFD Control traffic on a shared media segment, an operator should carefully
 select PIM-SM routers configured as a head of a P2MP BFD session.
The head <bcp14>MUST</bcp14> include the BFD Discriminator PIM Hello Option in its
PIM Hello messages.
</t>
        <t indent="0" pn="section-2.1-3">
 A PIM-SM router that is configured to monitor the head by
using P2MP BFD is referred to throughout this document as a "tail". When such a
tail receives a PIM Hello packet with the BFD Discriminator PIM Hello Option, the tail
<bcp14>MAY</bcp14> create a P2MP BFD session of type MultipointTail, as defined in <xref target="RFC8562" format="default" sectionFormat="of" derivedContent="RFC8562"/>.
        </t>
        <t indent="0" pn="section-2.1-4">
The node that includes the BFD Discriminator PIM Hello Option
transmits BFD Control packets periodically. For the tail to correctly
demultiplex BFD <xref target="RFC8562" format="default" sectionFormat="of" derivedContent="RFC8562"/>, the source
address and My Discriminator of the BFD packets <bcp14>MUST</bcp14> be the same
as the source address and the HeadDiscriminator, respectively, of the PIM Hello
message. If that is not the case,
the tail BFD node would not be able to monitor the state of the PIM-SM node --
that is, the head of the P2MP BFD session -- though the regular PIM-SM mechanisms remain fully operational.
        </t>
        <t indent="0" pn="section-2.1-5">
If the tail detects a MultipointHead failure <xref target="RFC8562" format="default" sectionFormat="of" derivedContent="RFC8562"/>,
 it <bcp14>MUST</bcp14> delete the corresponding neighbor state and follow procedures defined in <xref target="RFC7761" format="default" sectionFormat="of" derivedContent="RFC7761"/> 
 for the DR and additional neighbor state deletion after the neighbor timeout expires.
        </t>
        <t indent="0" pn="section-2.1-6">
 If the head ceases to include the BFD Discriminator PIM Hello Option in its PIM Hello message,
 the tail <bcp14>SHOULD</bcp14> close the corresponding MultipointTail BFD session without affecting the PIM state in any way.
Thus, the tail stops using BFD to monitor
 the head and reverts to the procedures defined in <xref target="RFC7761" format="default" sectionFormat="of" derivedContent="RFC7761"/>.
        </t>
      </section>
      <section anchor="p2mp-bfd-pim-drlb-sec" numbered="true" toc="include" removeInRFC="false" pn="section-2.2">
        <name slugifiedName="name-p2mp-bfd-in-pim-dr-load-bal">P2MP BFD in PIM DR Load Balancing</name>
        <t indent="0" pn="section-2.2-1">
<xref target="RFC8775" format="default" sectionFormat="of" derivedContent="RFC8775"/> specifies the PIM Designated Router Load-Balancing (DRLB) functionality.
Any PIM router that advertises the DR Load-Balancing Capability (DRLB-Cap) Hello Option can become the head of a P2MP BFD session,
as specified in <xref target="pim-dr-p2mp-bfd-sec" format="default" sectionFormat="of" derivedContent="Section 2.1"/>.
The head router administratively sets the bfd.SessionState to Up in
the MultipointHead session <xref target="RFC8562" format="default" sectionFormat="of" derivedContent="RFC8562"/> only if it is a Group Designated
Router (GDR) Candidate, as specified in Sections <xref target="RFC8775" section="5.5" sectionFormat="bare" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8775#section-5.5" derivedContent="RFC8775"/> and
<xref target="RFC8775" section="5.6" sectionFormat="bare" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8775#section-5.6" derivedContent="RFC8775"/> of
<xref target="RFC8775" format="default" sectionFormat="of" derivedContent="RFC8775"/>. If the router is no longer the GDR, then it <bcp14>MUST</bcp14> shut down
following the procedures described in <xref target="RFC8562" sectionFormat="comma" section="5.9" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8562#section-5.9" derivedContent="RFC8562"/>.
 For each GDR Candidate that includes the
 BFD Discriminator Option in its PIM Hello, the PIM DR <bcp14>MUST</bcp14> create a MultipointTail session <xref target="RFC8562" format="default" sectionFormat="of" derivedContent="RFC8562"/>. PIM DR
 demultiplexes BFD sessions based on the value of the My Discriminator field and the source IP address.
 If PIM DR detects a failure of one of the sessions, it <bcp14>MUST</bcp14> remove that router from
 the GDR Candidate list and immediately transmit a new DRLB-List option.
        </t>
      </section>
      <section anchor="p2mp-bfd-encap" numbered="true" toc="include" removeInRFC="false" pn="section-2.3">
        <name slugifiedName="name-multipoint-bfd-encapsulatio">Multipoint BFD Encapsulation</name>
        <t indent="0" pn="section-2.3-1">
The MultipointHead of a P2MP BFD session when transmitting BFD Control packets:
</t>
        <ul empty="false" spacing="normal" bare="false" indent="3" pn="section-2.3-2">
          <li pn="section-2.3-2.1">
            <bcp14>MUST</bcp14> set the TTL or Hop Limit value to 255 (<xref target="RFC5881" sectionFormat="comma" section="5" format="default" derivedLink="https://rfc-editor.org/rfc/rfc5881#section-5" derivedContent="RFC5881"/>). Similarly, all received BFD Control packets that are
   demultiplexed to the session <bcp14>MUST</bcp14> be discarded if the received TTL or
   Hop Limit is not equal to 255, and</li>
          <li pn="section-2.3-2.2">
            <bcp14>MUST</bcp14> use the group address ALL-PIM-ROUTERS ("224.0.0.13" for IPv4 and "ff02::d" for IPv6) as the destination IP address.</li>
        </ul>
      </section>
    </section>
    <section anchor="iana-consider" numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-3-1">
IANA has allocated a new OptionType value in the "PIM-Hello Options" registry according to <xref target="bfd-disc-pim-alloc" format="default" sectionFormat="of" derivedContent="Table 1"/>:
      </t>
      <table anchor="bfd-disc-pim-alloc" align="center" pn="table-1">
        <name slugifiedName="name-bfd-discriminator-option-ty">BFD Discriminator Option Type</name>
        <thead>
          <tr>
            <th align="left" colspan="1" rowspan="1">Value</th>
            <th align="left" colspan="1" rowspan="1">Length</th>
            <th align="left" colspan="1" rowspan="1">Name</th>
            <th align="left" colspan="1" rowspan="1">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left" colspan="1" rowspan="1">39</td>
            <td align="left" colspan="1" rowspan="1">4</td>
            <td align="left" colspan="1" rowspan="1">BFD Discriminator Option</td>
            <td align="left" colspan="1" rowspan="1">RFC 9186</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="security" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-4-1">
  This document defines a way to accelerate detection of a failure that affects PIM functionality by using BFD. The operation of either protocol is not changed.
      </t>
      <t indent="0" pn="section-4-2">	
 The security considerations discussed in <xref target="RFC5880" format="default" sectionFormat="of" derivedContent="RFC5880"/>, <xref target="RFC5881" format="default" sectionFormat="of" derivedContent="RFC5881"/>, <xref target="RFC7761" format="default" sectionFormat="of" derivedContent="RFC7761"/>, <xref target="RFC8562" format="default" sectionFormat="of" derivedContent="RFC8562"/>, and <xref target="RFC8775" format="default" sectionFormat="of" derivedContent="RFC8775"/> apply to this document.
      </t>
    </section>
  </middle>
  <back>
    <references pn="section-5">
      <name slugifiedName="name-references">References</name>
      <references pn="section-5.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1997" month="March"/>
            <abstract>
              <t indent="0">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="RFC5880" target="https://www.rfc-editor.org/info/rfc5880" quoteTitle="true" derivedAnchor="RFC5880">
          <front>
            <title>Bidirectional Forwarding Detection (BFD)</title>
            <author initials="D." surname="Katz" fullname="D. Katz">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Ward" fullname="D. Ward">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2010" month="June"/>
            <abstract>
              <t indent="0">This document describes a protocol intended to detect faults in the bidirectional path between two forwarding engines, including interfaces, data link(s), and to the extent possible the forwarding engines themselves, with potentially very low latency.  It operates independently of media, data protocols, and routing protocols. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5880"/>
          <seriesInfo name="DOI" value="10.17487/RFC5880"/>
        </reference>
        <reference anchor="RFC5881" target="https://www.rfc-editor.org/info/rfc5881" quoteTitle="true" derivedAnchor="RFC5881">
          <front>
            <title>Bidirectional Forwarding Detection (BFD) for IPv4 and IPv6 (Single Hop)</title>
            <author initials="D." surname="Katz" fullname="D. Katz">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Ward" fullname="D. Ward">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2010" month="June"/>
            <abstract>
              <t indent="0">This document describes the use of the Bidirectional Forwarding Detection (BFD) protocol over IPv4 and IPv6 for single IP hops. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5881"/>
          <seriesInfo name="DOI" value="10.17487/RFC5881"/>
        </reference>
        <reference anchor="RFC7761" target="https://www.rfc-editor.org/info/rfc7761" quoteTitle="true" derivedAnchor="RFC7761">
          <front>
            <title>Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol Specification (Revised)</title>
            <author initials="B." surname="Fenner" fullname="B. Fenner">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Handley" fullname="M. Handley">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="H." surname="Holbrook" fullname="H. Holbrook">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="I." surname="Kouvelas" fullname="I. Kouvelas">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Parekh" fullname="R. Parekh">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="Z." surname="Zhang" fullname="Z. Zhang">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L." surname="Zheng" fullname="L. Zheng">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2016" month="March"/>
            <abstract>
              <t indent="0">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 indent="0">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="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="May"/>
            <abstract>
              <t indent="0">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>
        <reference anchor="RFC8562" target="https://www.rfc-editor.org/info/rfc8562" quoteTitle="true" derivedAnchor="RFC8562">
          <front>
            <title>Bidirectional Forwarding Detection (BFD) for Multipoint Networks</title>
            <author initials="D." surname="Katz" fullname="D. Katz">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Ward" fullname="D. Ward">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Pallagatti" fullname="S. Pallagatti" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="G." surname="Mirsky" fullname="G. Mirsky" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2019" month="April"/>
            <abstract>
              <t indent="0">This document describes extensions to the Bidirectional Forwarding Detection (BFD) protocol for its use in multipoint and multicast networks.</t>
              <t indent="0">This document updates RFC 5880.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8562"/>
          <seriesInfo name="DOI" value="10.17487/RFC8562"/>
        </reference>
        <reference anchor="RFC8775" target="https://www.rfc-editor.org/info/rfc8775" quoteTitle="true" derivedAnchor="RFC8775">
          <front>
            <title>PIM Designated Router Load Balancing</title>
            <author initials="Y." surname="Cai" fullname="Y. Cai">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="H." surname="Ou" fullname="H. Ou">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Vallepalli" fullname="S. Vallepalli">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Mishra" fullname="M. Mishra">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Venaas" fullname="S. Venaas">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Green" fullname="A. Green">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2020" month="April"/>
            <abstract>
              <t indent="0">On a multi-access network, one of the PIM-SM (PIM Sparse Mode) routers is elected as a Designated Router. One of the responsibilities of the Designated Router is to track local multicast listeners and forward data to these listeners if the group is operating in PIM-SM. This document specifies a modification to the PIM-SM protocol that allows more than one of the PIM-SM routers to take on this responsibility so that the forwarding load can be distributed among multiple routers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8775"/>
          <seriesInfo name="DOI" value="10.17487/RFC8775"/>
        </reference>
      </references>
      <references pn="section-5.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="RFC5883" target="https://www.rfc-editor.org/info/rfc5883" quoteTitle="true" derivedAnchor="RFC5883">
          <front>
            <title>Bidirectional Forwarding Detection (BFD) for Multihop Paths</title>
            <author initials="D." surname="Katz" fullname="D. Katz">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Ward" fullname="D. Ward">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2010" month="June"/>
            <abstract>
              <t indent="0">This document describes the use of the Bidirectional Forwarding Detection (BFD) protocol over multihop paths, including unidirectional links.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5883"/>
          <seriesInfo name="DOI" value="10.17487/RFC5883"/>
        </reference>
      </references>
    </references>
    <section numbered="false" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgments">Acknowledgments</name>
      <t indent="0" pn="section-appendix.a-1">
         The authors cannot say enough to express their appreciation of the comments and suggestions that were received from <contact fullname="Stig Venaas"/>.
         The authors also greatly appreciate the comments and suggestions by <contact fullname="Alvaro Retana"/> that improved the clarity of this document.
      </t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author initials="G." surname="Mirsky" fullname="Greg Mirsky">
        <organization showOnFrontPage="true">Ericsson</organization>
        <address>
          <email>gregimirsky@gmail.com</email>
        </address>
      </author>
      <author initials="X." surname="Ji" fullname="Xiaoli Ji">
        <organization showOnFrontPage="true">ZTE Corporation</organization>
        <address>
          <postal>
            <extaddr>Yuhuatai District</extaddr>
            <street>No. 50 Software Avenue</street>
            <city>Nanjing</city>
            <country>China</country>
          </postal>
          <email>ji.xiaoli@zte.com.cn</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
