<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE rfc [ <!ENTITY nbsp " "> <!ENTITY zwsp "​"> <!ENTITY nbhy "‑"> <!ENTITY wj "⁠"> ]><?rfc toc="yes"?> <?rfc tocompact="yes"?> <?rfc tocdepth="3"?> <?rfc tocindent="yes"?> <?rfc symrefs="yes"?> <?rfc sortrefs="yes"?> <?rfc comments="yes"?> <?rfc inline="yes"?> <?rfc compact="yes"?> <?rfc subcompact="no"?><rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-ietf-mpls-p2mp-bfd-11" number="9780" consensus="true" ipr="trust200902" obsoletes="" updates="8562" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="3" symRefs="true" sortRefs="true" version="3"> <!--xml2rfc v2v3 conversion 3.12.0 --> <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>[rfced] We made the following changes to the document title: 1) updated "Multi-Point" to "Multipoint" and 2) updated "Label Switched Path (LSP)" to "Label Switched Paths (LSPs)" (plural). Let us know any concerns. Original: Bidirectional Forwarding Detection (BFD) for Multipoint Networks over Point-to-Multi-Point MPLS Label Switched Path (LSP) Current: Bidirectional Forwarding Detection (BFD) for Multipoint Networks over Point-to-Multipoint MPLS Label Switched Paths (LSPs) --> <!-- [rfced] Please review the following sentences in the abstract and introduction to ensure that they align with the document title and the rest of the document. These similar sentences mention SR P2MP policies with an SR-MPLS data plane, which are not mentioned in the document title. In addition, we only see SR and SR-MPLS mentioned in one sentence in Section 4.1 (and in the Terminology section). Are any updates needed? Document Title: Bidirectional Forwarding Detection (BFD) for Multipoint Networks over Point-to-Multipoint MPLS Label Switched Paths (LSPs) Abstract: This document describes procedures for using Bidirectional Forwarding Detection (BFD) for multipoint networks to detect data plane failures in MPLS point-to-multipoint Label Switched Paths (LSPs) and Segment Routing (SR) point-to-multipoint policies with an SR over MPLS (SR- MPLS) data plane. Introduction: This document describes procedures for using such modes of the BFD protocol to detect data plane failures in Multiprotocol Label Switching (MPLS) point-to-multipoint (p2mp) Label Switched Paths (LSPs) and Segment Routing (SR) point-to-multipoint policies with an SR over MPLS (SR-MPLS) data plane. --> <front> <titleabbrev="Multi-Pointabbrev="Multipoint BFD over P2MP MPLS LSP">Bidirectional Forwarding Detection (BFD) for Multipoint Networks overPoint-to-Multi-PointPoint-to-Multipoint MPLS Label SwitchedPath (LSP)</title>Paths (LSPs)</title> <seriesInfoname="Internet-Draft" value="draft-ietf-mpls-p2mp-bfd-11"/>name="RFC" value="9780"/> <author fullname="Greg Mirsky" initials="G." surname="Mirsky"> <organization>Ericsson</organization> <address><postal> <street/> <city/> <code/> <country/> </postal><email>gregimirsky@gmail.com</email> </address> </author> <author fullname="Gyan Mishra"initials="G. "initials="G." surname="Mishra"> <organization>Verizon Inc.</organization> <address> <email>gyan.s.mishra@verizon.com</email> </address> </author> <author fullname="DonaldEastlake,Eastlake 3rd"initials="D. " surname="Eastlake">initials="D." surname="Eastlake 3rd"> <organization>Independent</organization> <address> <postal> <street>2386 Panoramic Circle</street> <city>Apopka</city><code>FL 32703</code> <country>USA</country><region>FL</region><code>32703</code> <country>United States of America</country> </postal> <email>d3e3e3@gmail.com</email> </address> </author> <dateyear="2025"/> <area>Routing</area> <workgroup>MPLS Working Group</workgroup> <keyword>Internet-Draft</keyword>year="2025" month="May"/> <area>RTG</area> <workgroup>mpls</workgroup> <keyword>BFD</keyword> <keyword>Multipoint LSP</keyword> <!-- [rfced] FYI - We updated "and recommends...and discourages" to "by recommending...and discouraging" (we also made similar change in the introduction). Please review and let us know any concerns. Original: Furthermore, this document also updates RFC 8562 and recommends the use of an IPv6 address from the Dummy IPv6 range TBA2/64 (Section 7.1) and discourages the use of an IPv4 loopback address mapped to IPv6. Updated: Furthermore, this document updates RFC 8562 by recommending the use of an IPv6 address from the Dummy IPv6 Prefix range 100:0:0:1::/64 and discouraging the use of an IPv4 loopback address mapped to IPv6. --> <abstract> <t> This document describes procedures for using Bidirectional Forwarding Detection (BFD) for multipoint networks to detect data plane failures inMultiprotocol Label Switching (MPLS)MPLS point-to-multipoint Label Switched Paths (LSPs) and Segment Routing (SR) point-to-multipoint policies with an SR over MPLS (SR-MPLS) data plane. </t> <t> Furthermore, this documentalsoupdates RFC 8562and recommendsby recommending the use of an IPv6 address from the Dummy IPv6 Prefix rangeTBA2/64 (<xref target="iana-ipv6-addr-alloc-sec"/>)100:0:0:1::/64 anddiscouragesdiscouraging the use of an IPv4 loopback address mapped to IPv6. </t><t><!-- [rfced] How may we update this sentence to improve readability? Original: It also describes the applicability of LSP Ping, as in-band, and the control plane, as out-band, solutions to bootstrap a BFD session.</t> <t>Perhaps: This document also describes the applicability of LSP Ping (as an in-band solution) and the control plane (as an out-of-band solution) to bootstrap a BFD session. --> <!-- [rfced] Please review the following sentences. The first sentence (from the abstract) mentions both in-band and out-of-band solutions, but the sentence (from the introduction) only mentions out-of-band solutions. Should these be aligned? Original: It also describes the applicability of LSP Ping, as in-band, and the control plane, as out-band, solutions to bootstrap a BFD session. ... The document also describes the applicability of out-band solutions to bootstrap a BFD session in this environment. --> <t> In addition, this document describes the applicability of LSP Ping, as in-band, and the control plane, as out-of-band, solutions to bootstrap a BFD session. The document also describes the behavior of the active tail for head notification. </t> </abstract> </front> <middle> <section anchor="intro-section" numbered="true" toc="default"> <name>Introduction</name> <t> <xref target="RFC8562"/> defines a method of using Bidirectional Forwarding Detection (BFD) <xref target="RFC5880"/> to monitor and detect failures between the sender (head) and one or more receivers (tails) in multipoint or multicast networks. </t> <t> <xref target="RFC8562"/> added two BFD sessiontypes -types: MultipointHead and MultipointTail. Throughout this document, MultipointHead and MultipointTail refer to the value to which the bfd.SessionType is set on a BFD endpoint. </t> <t> This document describes procedures for using such modes of the BFD protocol to detect data plane failures inMultiprotocol Label Switching (MPLS)MPLS point-to-multipoint(p2mp)(P2MP) Label Switched Paths (LSPs) and Segment Routing (SR) point-to-multipoint policies with an SR over MPLS (SR-MPLS) dataplaneplane. </t> <t> The document also describes the applicability ofout-bandout-of-band solutions to bootstrap a BFD session in this environment. </t> <!-- [rfced] Please reivew "to select destination IPv6 addresses for" here. Would updating as follows make this text more clear? Original: Hence, IANA is requested to allocate TBA2/64 as a new Dummy IPv6 Prefix (Section 7.1) to select destination IPv6 addresses for IP/UDP encapsulation of management, control, and OAM packets. Perhaps: Hence, IANA has allocated 100:0:0:1::/64 as a new Dummy IPv6 Prefix (Section 7.1) for destination IPv6 addresses used for IP/UDP encapsulation of management, control, and Operations, Administration, and Maintenance (OAM) packets. --> <!-- [rfced] We see both of the following in Section 1: address::ffff:127.0.0.1/128 ::ffff:127.0.0.1/128 Should "address::ffff:127.0.0.1/128" be updated as follows? Current: Historically, an IPv6-mapped IPv4 loopback range address::ffff:127.0.0.1/128 was mandated, although functionally, an IPv6 address from that range is not analogous to its IPv4 counterpart. Perhaps: Historically, an address in the IPv6-mapped IPv4 loopback range ::ffff:127.0.0.1/128 was mandated, although functionally, an IPv6 address from that range is not analogous to its IPv4 counterpart. --> <!-- [rfced] To improve readabilty, we split this long sentence into two sentences. Would it be helpful to further update to use "::ffff:127.0.0.1/128 range" instead of "IPv6-mapped IPv4 loopback range address" in the second sentence? Original: Thus, this document also updates [RFC8562] and recommends the use of an IPv6 address from the Dummy IPv6 Prefix range TBA2/64 (Section 7.1) while acknowledging that an address from ::ffff:127.0.0.1/128 range might be used by existing implementations, discourages the use of the IPv6-mapped IPv4 loopback range address. Current: Thus, this document updates [RFC8562] by recommending the use of an IPv6 address from the Dummy IPv6 Prefix range 100:0:0:1::/64 (Section 7.1) while acknowledging that an address from the ::ffff:127.0.0.1/128 range might be used by existing implementations. This document discourages the use of an address in the IPv6-mapped IPv4 loopback range. Perhaps: Thus, this document updates [RFC8562] by recommending the use of an IPv6 address from the Dummy IPv6 Prefix range 100:0:0:1::/64 (Section 7.1) while acknowledging that an address from the ::ffff:127.0.0.1/128 range might be used by existing implementations. This document discourages the use of an address from the ::ffff:127.0.0.1/128 range. --> <t> Historically, an IPv6-mapped IPv4 loopback range address::ffff:127.0.0.1/128 was mandated, although functionally, an IPv6 address from that range is not analogous to its IPv4 counterpart. Furthermore, using the loopback address as the destination address, even for an inner IP encapsulation of a tunneledpacketpacket, violatesSection 2.5.3 of<xreftarget="RFC4291"/>.target="RFC4291" sectionFormat="of" section="2.5.3"/>. Hence, IANAis requested to allocate TBA2/64has allocated 100:0:0:1::/64 as a new Dummy IPv6 Prefix (<xref target="iana-ipv6-addr-alloc-sec"/>) to select destination IPv6 addresses for IP/UDP encapsulation of management, control, andOAMOperations, Administration, and Maintenance (OAM) packets. A source-only IPv6 dummy address is used as the destination to generate an exception and a reply message to the request message received. Thisdraftdocument starts the transition to using the IPv6 addresses from the Dummy IPv6 Prefix rangeTBA2/64100:0:0:1::/64 as the IPv6 destination address in the IP/UDP encapsulation of active OAM over the MPLS data plane. Thus, this documentalsoupdates <xref target="RFC8562"/>and recommendsby recommending the use of an IPv6 address from the Dummy IPv6 Prefix rangeTBA2/64100:0:0:1::/64 (<xref target="iana-ipv6-addr-alloc-sec"/>) while acknowledging that an address from::ffff:127.0.0.1/128 rangethe ::ffff:127.0.0.1/128 range might be used by existingimplementations,implementations. This document discourages the use of an address in the IPv6-mapped IPv4 loopbackrange address.range. </t> <t>ItThis document also describes the behavior of the active tail for head notification. </t> </section> <section numbered="true" toc="default"> <name>ConventionsusedUsed inthis document</name>This Document</name> <section numbered="true" toc="default"> <name>Terminology</name> <dl> <dt>ACH:</dt><dd>Associated Channel Header</dd> <dt>BFD:</dt><dd>Bidirectional Forwarding Detection</dd> <dt>GAL:</dt><dd>G-ACh Label</dd> <dt>G-ACh:</dt><dd>Generic Associated Channel</dd> <dt>LSP:</dt><dd>Label Switched Path</dd> <dt>LSR:</dt><dd>Label Switching Router</dd> <dt>MPLS:</dt><dd>Multiprotocol Label Switching</dd><dt>p2mp:</dt><dd>Point-to-Multipoint</dd><dt>P2MP:</dt><dd>Point-to-Multipoint</dd> <dt>PW:</dt><dd>Pseudowire (PW)</dd> <dt>SR:</dt><dd>Segment Routing</dd> <dt>SR-MPLS:</dt><dd>SR over MPLS</dd> </dl> </section> <section numbered="true" toc="default"> <name>Requirements Language</name> <t> The key words"MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY","<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"OPTIONAL""<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as described inBCP 14BCP 14 <xreftarget="RFC2119" format="default"/>target="RFC2119"/> <xreftarget="RFC8174" format="default"/>target="RFC8174"/> when, and only when, they appear in all capitals, as shown here. </t> </section> </section> <section anchor="encaps-section" numbered="true" toc="default"> <name>Multipoint BFD Encapsulation</name> <!-- [rfced] We do not see "demultiplex" in Section 3.1. Please review and let us know if any updates are needed. Original: If the BFD Control packet is encapsulated in IP/UDP, then the source IP address MUST be used to demultiplex the received BFD Control packet as described in Section 3.1. --> <t> <xref target="RFC8562" format="default"/> uses BFD intheDemand mode from the very start of a point-to-multipoint(p2mp)(P2MP) BFD session. Because the head doesn't receive any BFD Controlpacketpackets from a tail, the head of thep2mpP2MP BFD session transmits all BFD Control packets with the value of the Your Discriminator field set to zero. As a result, a tail cannot demultiplex BFD sessions using Your Discriminator, as defined in <xref target="RFC5880" format="default"/>. To demultiplex BFD sessions, <xref target="RFC8562" format="default"/> requires thatto demultiplex BFD sessions,the tailusesuse the source IP address, My Discriminator, and the identity of the multipoint tree from which the BFD Control packet was received. If the BFD Control packet is encapsulated in IP/UDP, then the source IP addressMUST<bcp14>MUST</bcp14> be used to demultiplex the received BFD Control packet as described in <xref target="ip-encaps-section" format="default"/>. The non-IP encapsulation case is described in <xref target="non-ip-encaps-section" format="default"/>. </t> <section anchor="ip-encaps-section" numbered="true" toc="default"> <name>IP Encapsulation of Multipoint BFD</name> <t> <xref target="RFC8562" format="default"/> defines IP/UDP encapsulation for multipoint BFD overp2mpP2MP MPLS LSP. This document updatesSection 5.8 of<xreftarget="RFC8562"/>target="RFC8562" sectionFormat="of" section="5.8"/> regarding the selection of the IPv6 destinationaddress:address as follows: </t> <ul spacing="normal"> <li>The sender of an MPLS echo requestSHOULD<bcp14>SHOULD</bcp14> use an address from the Dummy IPv6 Prefix rangeTBA2/64100:0:0:1::/64 (see <xreftarget="iana-ipv6-addr-alloc-sec"/>.</li>target="iana-ipv6-addr-alloc-sec"/>).</li> <li>The sender of an MPLS echo requestMAY<bcp14>MAY</bcp14> select the IPv6 destination address from the ::ffff:7f00/104 range.</li> </ul><t><!-- [rfced] Should the introductory text include the first part of the indented text here? Original: Thus, this specification further clarifies that: if multiple alternative paths for the given p2mp LSP Forwarding Equivalence Class (FEC) exist, the MultipointHead SHOULD use the Entropy Label [RFC6790] used for LSP Ping [RFC8029] to exercise those particular alternative paths; or the MultipointHead MAY use the UDP port number to possibly exercise those particular alternate paths. Perhaps: This specification further clarifies the following if multiple alternative paths for the given P2MP LSP Forwarding Equivalence Class (FEC) exist: * TheMotivation section <xrefMultipointHead SHOULD use the Entropy Label [RFC6790] used for LSP Ping [RFC8029] to exercise those particular alternative paths; or * The MultipointHead MAY use the UDP port number to possibly exercise those particular alternate paths. --> <t><xref target="RFC6790" sectionFormat="of" section="1.2" format="default"/> lists several advantages of generating the entropy value by an ingress Label Switching Router (LSR) compared to when a transit LSR infers entropy using the information in the MPLS label stack or payload.Thus, thisThis specification further clarifiesthat: </t>that:</t> <ulempty="true"spacing="normal"> <li>if multiple alternative paths for the givenp2mpP2MP LSP Forwarding Equivalence Class (FEC) exist, the MultipointHeadSHOULD<bcp14>SHOULD</bcp14> use the Entropy Label <xref target="RFC6790" format="default"/> used for LSP Ping <xref target="RFC8029" format="default"/> to exercise those particular alternative paths;</li><li> or<li>or the MultipointHeadMAY<bcp14>MAY</bcp14> use the UDP port number to possibly exercise those particular alternatepaths. </li>paths.</li> </ul> </section> <section anchor="non-ip-encaps-section" numbered="true" toc="default"> <name>Non-IP Encapsulation of Multipoint BFD</name> <t> In some environments, the overhead of extra IP/UDP encapsulations may be considered burdensome,makingwhich makes the use of more compact Generic Associated Channel (G-ACh)(<xref target="RFC5586"/>)<xref target="RFC5586"/> encapsulation attractive. Also, the validation of the IP/UDP encapsulation of a BFD Control packet in ap2mpP2MP BFD session may fail because of a problem related to neither the MPLS label stack nortoBFD. Avoiding unnecessary encapsulation ofp2mpP2MP BFD over an MPLS LSP improves the accuracy of the correlation of the detected failure and defect in MPLS LSP. </t> <!-- [rfced] The following sentences appear twice in Section 3.2 (as the second paragraph and in the third paragraph). Which should be removed? Original: If a BFD Control packet in PW-ACH encapsulation (without IP/UDP Headers) is to be used in ACH, an implementation would not be able to verify the identity of the MultipointHead and, as a result, will not properly demultiplex BFD packets. Hence, a new channel type value is needed. --> <t> If a BFD Control packet in PW-ACH encapsulation (without IP/UDP Headers) is to be used in ACH, an implementation would not be able to verify the identity of the MultipointHead and, as a result, will not properly demultiplex BFD packets. Hence, a new channel type value is needed. </t> <t> Non-IP encapsulation for multipoint BFD overp2mpP2MP MPLS LSP (shown in <xref target="non-ip-p2mp-bfd-pic" format="default"/>)MUST<bcp14>MUST</bcp14> use the G-ACh Label (GAL)(see<xref target="RFC5586"format="default"/>)format="default"/> at the bottom of the label stack followed by an Associated Channel Header (ACH). If a BFD Control packet in PW-ACH encapsulation (without IP/UDP Headers) is to be used in ACH, an implementation would not be able to verify the identity of the MultipointHead and, as a result, will not properly demultiplex BFD packets. Hence, a new channel type value is needed. The Channel Type field in ACHMUST<bcp14>MUST</bcp14> be set to Multipoint BFD Session(TBA1) value (<xref(0x0013) (see <xref target="iana-ach-sec"/>). To provide the identity of the MultipointHead for the particular multipoint BFD session, a Source Address TLV, as defined inSection 4.1 of<xref target="RFC7212"format="default"/>, MUSTsectionFormat="of" section="4.1"/>, <bcp14>MUST</bcp14> immediately follow a BFD Control message. The use of other TLVs is outside the scope of this document. </t> <figure anchor="non-ip-p2mp-bfd-pic"> <name>Non-IP Encapsulation for Multipoint BFDOverover a Multicast MPLS LSP</name> <artwork name="" type="" align="left" alt=""><![CDATA[ 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LSP Label | TC |S| TTL | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | GAL | TC |1| TTL | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0 0 0 1|Version| Flags | Channel Type =TBA10x0013 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ BFD Control Message ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type=0 | Reserved | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Address Family | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ~ Address ~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ]]></artwork> </figure><t>Fields<t>The fields in <xref target="non-ip-p2mp-bfd-pic"/> are interpreted as follows:</t><ul> <li>the<!-- [rfced] Would it be helpful to clarify "the top three four-octet words" here? Will readers understand what is defined in RFC 5586? Original: * the top three four-octet words as defined in<xref target="RFC5586"/>;</li> <li>the[RFC5586]; --> <!-- [rfced] We do not see mention of "BFD Control Message" in [RFC5880]. Please review. Original: * the BFD Control Message field is as defined in [RFC5880]; --> <ul> <li>The top three four-octet words are defined in <xref target="RFC5586"/>.</li> <li>The BFD Control Message field is defined in <xreftarget="RFC5880"/>;</li> <li>alltarget="RFC5880"/>.</li> <li>All the remaining fields areasdefined inSection 4.1 of<xreftarget="RFC7212"/>.</li>target="RFC7212" sectionFormat="of" section="4.1"/>.</li> </ul> </section> </section> <section anchor="bootstrapping-section" numbered="true" toc="default"> <name>Bootstrapping Multipoint BFD</name> <section anchor="lsp-section" numbered="true" toc="default"> <name>LSP Ping</name> <t> LSP Ping is the part of the on-demand OAM toolset used to detect and localize defects in the data plane and verify the control plane against the data plane by ensuring that the LSP is mapped to the same FEC at both egress and ingress endpoints. </t><t><!-- [rfced] Should the two instances of "Target FEC TLV" here be "Target FEC Stack TLV"? We see "Target FEC Stack TLV" in RFC 6425. Original: LSP Ping, as defined in<xref target="RFC6425" format="default"/>,[RFC6425], MAY be used to bootstrap MultipointTail. If LSP Ping is used, it MUST include the Target FEC TLV and the BFD Discriminator TLV defined in<xref target="RFC5884" format="default"/>.[RFC5884]. For the case of p2mp MPLS LSP, the Target FEC TLV MUST use sub-TLVs defined in Section 3.1 [RFC6425]. --> <t> LSP Ping, as defined in <xref target="RFC6425" format="default"/>, <bcp14>MAY</bcp14> be used to bootstrap MultipointTail. If LSP Ping is used, it <bcp14>MUST</bcp14> include the Target FEC TLV and the BFD Discriminator TLV defined in <xref target="RFC5884" format="default"/>. For the case ofp2mpP2MP MPLS LSP, the Target FEC TLV <bcp14>MUST</bcp14> use sub-TLVs defined in <xref target="RFC6425" sectionFormat="of" section="3.1"/>. For the case of P2MP SR policy with an SR-MPLS data plane, an implementation of this specificationMUST<bcp14>MUST</bcp14> follow the procedures defined in <xref target="RFC8287" format="default"/>. Setting the value of the Reply Mode field to "Do not reply" <xref target="RFC8029"/> for the LSP Ping to bootstrap the MultipointTail of thep2mpP2MP BFD session isRECOMMENDED.<bcp14>RECOMMENDED</bcp14>. Indeed, because BFD over a multipoint network uses BFD Demand mode, the MPLS echo reply from a tail has no useful information to convey to the head, unlike in the case oftheBFD over ap2pP2P MPLS LSP <xref target="RFC5884" format="default"/>. A MultipointTail that receives an LSP Ping that includes the BFD Discriminator TLV: </t> <!-- [rfced] May we update the introductory text to use "MUST" and remove "MUST" from each bullet? Or do you prefer the current? Original: A MultipointTail that receives an LSP Ping that includes the BFD Discriminator TLV: * MUST validate the LSP Ping; * MUST associate the received BFD Discriminator value with the p2mp LSP; * MUST create a p2mp BFD session and set bfd.SessionType = MultipointTail as described in [RFC8562]; * MUST use the source IP address of LSP Ping, the value of BFD Discriminator from the BFD Discriminator TLV, and the identity of the p2mp LSP to properly demultiplex BFD sessions. Perhaps: A MultipointTail that receives an LSP Ping that includes the BFD Discriminator TLV MUST do the following: * validate the LSP Ping; * associate the received BFD Discriminator value with the P2MP LSP; * create a P2MP BFD session and set bfd.SessionType = MultipointTail as described in [RFC8562]; and * use the source IP address of the LSP Ping, the value of BFD Discriminator from the BFD Discriminator TLV, and the identity of the P2MP LSP to properly demultiplex BFD sessions. --> <ul spacing="normal"> <li>MUST<bcp14>MUST</bcp14> validate the LSP Ping; </li> <li>MUST<bcp14>MUST</bcp14> associate the received BFD Discriminator value with thep2mpP2MP LSP; </li> <li>MUST<bcp14>MUST</bcp14> create ap2mpP2MP BFD session and set bfd.SessionType = MultipointTail as described in <xref target="RFC8562" format="default"/>; and </li> <li>MUST<bcp14>MUST</bcp14> use the source IP address of the LSP Ping, the value of BFD Discriminator from the BFD Discriminator TLV, and the identity of thep2mpP2MP LSP to properly demultiplex BFD sessions.</li> </ul> <t> Besides bootstrapping a BFD session over ap2mpP2MP LSP, LSP PingSHOULD<bcp14>SHOULD</bcp14> be used to verify the control plane against the data plane periodically by checking that thep2mpP2MP LSP is mapped to the same FEC at the MultipointHead and all active MultipointTails. The rate of generation of these LSP Ping Echo request messagesSHOULD<bcp14>SHOULD</bcp14> be significantly less than the rate of generation of the BFD Control packets because LSP Ping requires more processing to validate the consistency between the data plane and the control plane. An implementationMAY<bcp14>MAY</bcp14> provide configuration options to control the rate of generation of the periodic LSP Ping Echo request messages. </t> </section> <section anchor="control-plane-section" numbered="true" toc="default"> <name>Control Plane</name> <t> The BFD DiscriminatorAttribute MAYattribute <bcp14>MAY</bcp14> be used to bootstrap a multipoint BFD session on a tail, following the format and procedures given inSection 3.1.6 of<xref target="RFC9026"format="default"/>.sectionFormat="of" section="3.1.6"/>. </t> </section> </section> <section anchor="operation-sec" numbered="true" toc="default"> <name>Operation of Multipoint BFD with Active Tail over P2MP MPLS LSP</name> <t> <xref target="RFC8562" format="default"/>defineddefines howtheBFD Demand mode can be used in multipoint networks. When applied in MPLS, the procedures specified in <xref target="RFC8562" format="default"/> allow an egress LSR to detect a failureofin the part of the MPLSp2mpP2MP LSP from the ingress LSR to that egress LSR. The ingress LSR is not aware of the state of thep2mpP2MP LSP. <xref target="RFC8563" format="default"/>, using mechanisms defined in <xref target="RFC8562" format="default"/>,defineddefines the behavior of an"active tail" behavior.active tail. An active tail might notify the head of the detected failure andrespondsrespond to a poll sequence initiated by the head. The first method, referred to asHead"Head Notification withoutPolling,Polling", is mentioned inSection 5.2.1<xref target="RFC8563"format="default"/>,sectionFormat="of" section="5.2.1"/>) and is the simplest ofallthe methods described in <xref target="RFC8563" format="default"/>. The use of this method in BFD over MPLSp2mpP2MP LSP is discussed in this document. Analysis of other methodsoffor a headlearningto learn of the state of an MPLSp2mpP2MP LSP is outside the scope of this document. </t> <t> As specified in <xref target="RFC8563"format="default"/> for the active tail mode,format="default"/>, BFD variablesMUST<bcp14>MUST</bcp14> be asfollows:follows for the active tail mode: </t><t>On<ul spacing="normal"> <li><t>On an ingressLSR: </t>LSR:</t> <ul spacing="normal"> <li>bfd.SessionType isMultipointHead;</li>MultipointHead.</li> <li>bfd.RequiredMinRxInterval isset tononzero, allowing egress LSRs to send BFD Control packets.</li> </ul><t>On</li> <li><t>On an egressLSR: </t>LSR:</t> <ul spacing="normal"> <li>bfd.SessionType isMultipointTail;</li>MultipointTail.</li> <li>bfd.SilentTail is set to zero.</li> </ul> </li> </ul> <t>In Section 5.2.1<xref target="RFC8563"format="default"/> is notedsectionFormat="of" section="5.2.1"/> notes that "the tail sends unsolicited BFD packets in response to the detection of a multipoint path failure" butwithout thedoes not provide specificsonabout the information in thepacket andpackets or the frequency of transmissions.This document defines below theThe procedureoffor an active tail with unsolicited notifications forp2mpP2MP MPLSLSP.LSP is defined below. </t> <t>Upon detecting the failure of thep2mpP2MP MPLS LSP, an egress LSR sends a BFD Control packet with the following settings: </t> <ul spacing="normal"><li>the<li>The Poll (P) bit isset;</li> <li>theset.</li> <li>The Status (Sta) field is set to the Downvalue;</li> <li>thevalue.</li> <li>The Diagnostic (Diag) field is set to the Control Detection Time Expiredvalue;</li> <li>thevalue.</li> <li>The value of the Your Discriminator field is set to the value the egress LSR has been using to demultiplex that BFD multipointsession;</li>session.</li> <li> The BFD Control packetMAY<bcp14>MAY</bcp14> be encapsulated in IP/UDP with the destination IP address of the ingress LSR and the UDP destination port number set to 4784 per <xref target="RFC5883" format="default"/>. If non-IP encapsulation is used, then a BFD Control packet is encapsulated using PW-ACH encapsulation (without IP/UDP Headers) with Channel Type 0x0007 <xref target="RFC5885"format="default"/>;format="default"/>. </li><li><!-- [rfced] The second bulleted list in Section 5 is prefaced with the following text. However, it looks like only the first four bullets detail settings. Should the last two bullets be regular paragraphs rather than part of the list? Or should this introductory text be updated? Original: Upon detecting the failure of the p2mp MPLS LSP, an egress LSR sends BFD Control packet with the following settings: --> <!-- [rfced] What does "it" refer to here? Original: * these BFD Control packets are transmitted at the rate of one per second until either it receives a control packet valid for this BFD session with the Final (F) bit set from the ingress LSR or the defect condition clears. Perhaps: * These BFD Control packets are transmitted at the rate of one per second until either 1) the egress LSA receives a control packet from the ingress LSR that is valid for this BFD session and has the Final (F) bit set or 2) the defect condition clears. --> <!-- [rfced] Please clarify "defined above" here. Is the intent "as defined above" (with "as"), "with the settings described above", or something else? Original: However, to improve the likelihood of notifying the ingress LSR of the failure of the p2mp MPLS LSP, the egress LSR SHOULD initially transmit three BFD Control packets defined above in short succession. Perhaps: However, to improve the likelihood of notifying the ingress LSR of the failure of the p2mp MPLS LSP, the egress LSR SHOULD initially transmit three BFD Control packets (as defined above) in short succession. --> <li> The BFD Control packets are transmitted at the rate of one per second until either 1) it receives a control packet valid for this BFD session with the Final (F) bit set from the ingress LSR or 2) the defect condition clears. However, to improve the likelihood of notifying the ingress LSR of the failure of the P2MP MPLS LSP, the egress LSR <bcp14>SHOULD</bcp14> initially transmit three BFD Control packets defined above in short succession. The actual transmission of the periodic BFD Control messageMUST<bcp14>MUST</bcp14> be jittered by up to 25% within one-second intervals. Thus, the intervalMUST<bcp14>MUST</bcp14> be reduced by a random value of 0 to 25%, to reduce the possibility of congestion on the ingress LSR's data and control planes. </li> </ul> <t> As described above, an ingress LSR that has received the BFD Control packet sends the unicast IP/UDP encapsulated BFD Control packet with the Final (F) bit set to the egress LSR. In somescenarios, e.g.,scenarios (e.g., when ap2mpP2MP LSP is broken close to itsroot,root and the number of egress LSRs is significantlylarge,large), the root might receive a large number of notifications. The notifications from leaves to the root will not use resources allocated for the monitored multicast flow and, as a result, will not congest that particular flow, although they may negatively affect other flows. However, the control plane of the ingress LSR might be congested by the BFD Control packets transmitted by egress LSRs and the process of generating unicast BFD Control packets, as noted above. To mitigate that, a BFD implementation that supports this specification isRECOMMENDED<bcp14>RECOMMENDED</bcp14> to use a rate limiter of received BFD Control packets passed to the ingressLSR’sLSR's control plane for processing. </t> </section> <section anchor="Security" numbered="true" toc="default"> <name>Security Considerations</name> <t> This document does not introduce new security considerations but inherits all security considerations from <xref target="RFC5880" format="default"/>, <xref target="RFC5884" format="default"/>, <xref target="RFC7726" format="default"/>, <xref target="RFC8562" format="default"/>, <xref target="RFC8029" format="default"/>, and <xref target="RFC6425" format="default"/>. </t> <t> Also, BFD forp2mpP2MP MPLSLSP MUSTLSPs <bcp14>MUST</bcp14> follow the requirements listed insection 4.1<xref target="RFC4687"format="default"/>sectionFormat="of" section="4.1"/> to avoid congestion in the control plane or the data plane caused by the rate of generating BFD Control packets. An operatorSHOULD<bcp14>SHOULD</bcp14> consider the amount of extra traffic generated byp2mpP2MP BFD when selecting the interval at which the MultipointHead will transmit BFD Control packets. The operatorMAY<bcp14>MAY</bcp14> consider the size of the packet the MultipointHead transmits periodically as using IP/UDP encapsulation, which adds up to 28octets, moreoctets (more than 50% of the BFD Control packetlength, comparinglength) compared to G-ACh encapsulation. </t> </section> <section anchor="iana-sec" numbered="true" toc="default"> <name>IANA Considerations</name><!--<sectionanchor="iana-ipv4-addr-alloc-sec"anchor="iana-ipv6-addr-alloc-sec" numbered="true" toc="default"><name>IPv4 Address Allocation</name><name>IPv6 Special-Purpose Address</name> <t> IANAis requested to allocate an IPv4 TBA3/24 prefix as Associated Channel IPv4/UDP Prefixhas allocated the following in the"Internet Protocol Version 4"IANA IPv6 Special-Purpose AddressSpace" and add the prefixRegistry" <xref target="IANA-IPv6-REG"/>: </t> <!-- [rfced] FYI - We updated Table 2 to <dl> as the table was too wide for the txt output. Note that <dl> was used in other RFCs that have made allocations in the "IANAIPv4 Special PurposeIPv6 Special-Purpose AddressRegistry". </t> </section>Registry" (e.g., RFCs 9637, 9602, and 9374). --><section anchor="iana-ipv6-addr-alloc-sec" numbered="true" toc="default"> <name>IPv6 Address Allocation</name> <t> IANA<!-- [rfced] An informative reference isrequested to allocate an IPv6 TBA2/64 prefix as Dummy IPv6 Prefix inlisted for the "IANA IPv6 Special Purpose Address Registry"<xref target="IANA-IPv6-Special-Purpose-Address-Registry"/> asin<xref target="dummy-ipv6-range-table"/>. </t> <table anchor="dummy-ipv6-range-table" align="center"> <name>Dummy IPv6 Address Prefix</name> <thead> <tr> <th align="left">Address Block</th> <th align="left">Name</th> <th align="left">RFC</th> <th align="left">Allocation Date</th> <th align="left">Termination Date</th> <th align="left">Source</th> <th align="left">Destination</th> <th align="left">Forwardable</th> <th align="left">Globally Reachable</th> <th align="left">Reserved-by-Protocol</th> </tr> </thead> <tbody> <tr> <td align="left">TBA2</td> <td align="left">DummySection 7.1. Would you like to also add an informative reference for the "MPLS Generalized Associated Channel (G-ACh) Types" registry in Section 7.2? --> <dl spacing="compact"> <dt>Address Block:</dt><dd>100:0:0:1::/64</dd> <dt>Name:</dt><dd>Dummy IPv6Prefix</td> <td align="left">This document</td> <td align="left">The date of allocation</td> <td align="left">N/A</td> <td align="left">True</td> <td align="left">False</td> <td align="left">False</td> <td align="left">False</td> <td align="left">False</td> </tr> </tbody> </table>Prefix</dd> <dt>RFC:</dt><dd>RFC 9780</dd> <dt>Allocation Date:</dt><dd>2025-04</dd> <dt>Termination Date:</dt><dd>N/A</dd> <dt>Source:</dt><dd>True</dd> <dt>Destination:</dt><dd>False</dd> <dt>Forwardable:</dt><dd>False</dd> <dt>Globally Reachable:</dt><dd>False</dd> <dt>Reserved-by-Protocol:</dt><dd>False</dd> </dl> </section> <section anchor="iana-ach-sec" numbered="true" toc="default"><name>Multipoint BFD over MPLS LSP<name>MPLS Generalized Associated Channel (G-ACh) Type</name> <t> IANAis requested to allocatehas allocated the following value(TBA1) from its MPLSin the "MPLS Generalized Associated Channel (G-ACh)TypesTypes" registry. </t> <table anchor="p2mp-ach-table" align="center"> <name>Multipoint BFD Session G-ACh Type</name> <thead> <tr> <th align="left">Value</th> <th align="center">Description</th> <th align="left">Reference</th> </tr> </thead> <tbody> <tr> <tdalign="left">TBA1</td>align="left">0x0013</td> <td align="center">Multipoint BFD Session</td> <tdalign="left">This document</td>align="left">RFC 9780</td> </tr> </tbody> </table> </section> </section><section anchor="Acknowledgements" numbered="true" toc="default"> <name>Acknowledgements</name> <t> The authors sincerely appreciate the comments received from Andrew Malis, Italo Busi, Shraddha Hegde, and thought stimulating questions from Carlos Pignataro. </t> </section></middle> <back> <references> <name>References</name> <references> <name>Normative References</name> <xi:includehref="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/> <xi:includehref="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/> <xi:includehref="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5880.xml"/>href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5880.xml"/> <xi:includehref="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5884.xml"/>href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5884.xml"/> <xi:includehref="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8029.xml"/>href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8029.xml"/> <xi:includehref="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8287.xml"/>href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8287.xml"/> <xi:includehref="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6790.xml"/>href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6790.xml"/> <xi:includehref="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5586.xml"/>href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5586.xml"/> <xi:includehref="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7212.xml"/>href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7212.xml"/> <xi:includehref="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6425.xml"/>href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6425.xml"/> <xi:includehref="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7726.xml"/>href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7726.xml"/> <xi:includehref="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8562.xml"/>href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8562.xml"/> <xi:includehref="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8563.xml"/>href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8563.xml"/> <xi:includehref="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5883.xml"/>href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5883.xml"/> <xi:includehref="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5885.xml"/>href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5885.xml"/> <xi:includehref="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9026.xml"/>href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9026.xml"/> </references> <references> <name>Informative References</name> <xi:includehref="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4687.xml"/>href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4687.xml"/> <xi:includehref="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4291.xml"/> <!-- <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5952.xml"/> -->href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4291.xml"/> <referenceanchor="IANA-IPv6-Special-Purpose-Address-Registry" target="https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xhtml">anchor="IANA-IPv6-REG" target="https://www.iana.org/assignments/iana-ipv6-special-registry"> <front> <title>IANA IPv6 Special-Purpose Address Registry</title> <author> <organization>IANA</organization> </author> </front> </reference> </references> </references> <section anchor="Acknowledgements" numbered="false" toc="default"> <name>Acknowledgements</name> <t>The authors sincerely appreciate the comments received from <contact fullname="Andrew Malis"/>, <contact fullname="Italo Busi"/>, and <contact fullname="Shraddha Hegde"/>. The authors also appreciate the thought-stimulating questions from <contact fullname="Carlos Pignataro"/>.</t> </section> </back> <!-- [rfced] Terminology a) We see the following forms used in this document. Should "P2MP" or "MPLS" come first in this phrase? p2mp MPLS LSP MPLS p2mp LSP Point-to-Multipoint MPLS Label Switched Path (LSP) MPLS point-to-multipoint Label Switched Paths (LSPs) b) Please review the instances of "echo" in the document and let us know if they should be capitalized or lowercased. MPLS echo reply MPLS echo request LSP Ping Echo request message c) We have updated "out-band" to "out-of-band" (two instances). Let us know any objections. d) Would either of the following read more clearly? Or is the current okay? Current: the Dummy IPv6 Prefix range 100:0:0:1::/64 Perhaps ("address block" instead of "range"): the Dummy IPv6 Prefix address block 100:0:0:1::/64 Or ("address block" and parentheses): the Dummy IPv6 Prefix address block (100:0:0:1::/64) --> <!-- [rfced] Abbreviations a) We updated "p2mp" (lowercase) to "P2MP" (caps). The capitalized form is much more common in published RFCs, including in RFCs 9026 and 6425, which are normatively referenced by this document. b) FYI - We have added expansions for the following abbreviations per Section 3.6 of RFC 7322 ("RFC Style Guide"). Please review each expansion in the document carefully to ensure correctness. Operations, Administration, and Maintenance (OAM) Pseudowire (PW) --> <!-- [rfced] Please review the "Inclusive Language" portion of the online Style Guide <https://www.rfc-editor.org/styleguide/part2/#inclusive_language> and let us know if any changes are needed. Updates of this nature typically result in more precise language, which is helpful for readers. For example, please consider whether the following should be updated: Dummy --> </rfc>