rfc-9780

Bidirectional Forwarding Detection (BFD) for Multipoint Networks over Point-to-Multipoint MPLS Label Switched Paths (LSPs)

G. Mirsky, G. Mishra, D. Eastlake 3rd
date2025-05 streamIETF areartg wgmpls statusPROPOSED STANDARD pages12 canonicalhttps://www.rfc-editor.org/rfc/rfc9780 doi10.17487/RFC9780
This document describes procedures for using Bidirectional Forwarding Detection (BFD) for multipoint networks to detect data plane failures in point-to-multipoint MPLS Label Switched Paths (LSPs) and Segment Routing (SR) point-to-multipoint policies with an SR over MPLS (SR-MPLS) data plane. Furthermore, this document updates RFC 8562 by recommending the use of an IPv6 address from the Dummy IPv6 Prefix address block 100:0:0:1::/64 and discouraging the use of an IPv4 loopback address mapped to IPv6. In addition, this document 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. The document also describes the behavior of the active tail for head notification.

updates

Extracted elements (28)

design-rationale §3.2

A new G-ACh channel type (0x0013) is required for non-IP multipoint BFD because PW-ACH encapsulation without IP/UDP headers prevents an implementation from verifying the identity of the MultipointHead, making proper BFD session demultiplexing impossible.

mpls

design-rationale §3.2

G-ACh non-IP encapsulation is preferred in some environments because IP/UDP adds overhead, and IP/UDP validation failures may be caused by factors unrelated to the MPLS label stack or BFD, reducing the accuracy of failure correlation.

mpls

design-rationale §4.1

Reply Mode 'Do not reply' is recommended for LSP Ping bootstrap of MultipointTail because BFD over a multipoint network operates in Demand mode, meaning the MPLS echo reply from a tail conveys no useful information to the head (unlike BFD over P2P MPLS LSP).

mpls

design-rationale §1

The IPv6-mapped IPv4 loopback address ::ffff:127.0.0.1/128 is discouraged as the BFD destination because using a loopback address as a tunneled packet's inner destination violates RFC 4291 Section 2.5.3, and the mapped address is not functionally analogous to its IPv4 counterpart. IANA allocated 100:0:0:1::/64 as a proper Dummy IPv6 Prefix for this use case.

mpls, ip

interoperability-note §5

For active tail head notification over P2MP MPLS LSP, BFD Control packets MAY be IP/UDP encapsulated with the ingress LSR's destination address and UDP port 4784 (per RFC 5883), or non-IP encapsulated using PW-ACH with Channel Type 0x0007 (per RFC 5885).

mpls

interoperability-note §3.1

While 100:0:0:1::/64 is now recommended for the IPv6 destination in IP/UDP encapsulation of multipoint BFD, existing implementations may still use an address from the ::ffff:127.0.0.1/128 block; this document acknowledges that for backward compatibility.

mpls, ip

normative-requirement §5 RECOMMENDED

A BFD implementation supporting active tail is RECOMMENDED to use a rate limiter on received BFD Control packets passed to the ingress LSR's control plane, to mitigate potential congestion when many egress LSRs send failure notifications simultaneously.

mpls, congestion

normative-requirement §4.1 MUST

A MultipointTail that receives an LSP Ping containing the BFD Discriminator TLV MUST validate the LSP Ping, associate the BFD Discriminator with the P2MP LSP, create a P2MP BFD session with bfd.SessionType = MultipointTail, and use the source IP, BFD Discriminator value, and P2MP LSP identity to demultiplex BFD sessions.

mpls

normative-requirement §3.2 MUST

A Source Address TLV, as defined in Section 4.1 of RFC 7212, MUST immediately follow the BFD Control packet in non-IP G-ACh encapsulation to provide the identity of the MultipointHead.

mpls

normative-requirement §6 MUST

BFD for P2MP MPLS LSPs MUST follow the requirements in Section 4.1 of RFC 4687 to avoid congestion in the control or data plane caused by the rate of generating BFD Control packets.

mpls, security, congestion

normative-requirement §5 MUST

For active tail mode, on the ingress LSR bfd.RequiredMinRxInterval MUST be nonzero (allowing egress LSRs to send BFD Control packets), and on the egress LSR bfd.SilentTail MUST be set to zero.

mpls

normative-requirement §4.1 MUST

If LSP Ping is used to bootstrap MultipointTail, it MUST include the Target FEC Stack TLV (RFC 8029) and the BFD Discriminator TLV (RFC 5884). For P2MP SR policy with SR-MPLS, the implementation MUST follow RFC 8287.

mpls

normative-requirement §3 MUST

If the BFD Control packet is encapsulated in IP/UDP, the source IP address MUST be used to demultiplex the received BFD Control packet as described in Section 5.7 of RFC 8562.

mpls, security

normative-requirement §4.1 SHOULD

LSP Ping SHOULD be used periodically to verify the control plane against the data plane; its rate SHOULD be significantly less than the BFD Control packet generation rate because LSP Ping requires more processing.

mpls

normative-requirement §3.2 MUST

Non-IP encapsulation for multipoint BFD over P2MP MPLS LSP MUST use the G-ACh Label (GAL) at the bottom of the label stack followed by an Associated Channel Header (ACH), and the Channel Type field MUST be set to Multipoint BFD Session (0x0013).

mpls

normative-requirement §4.1 RECOMMENDED

Setting the Reply Mode field to 'Do not reply' for the LSP Ping used to bootstrap a MultipointTail is RECOMMENDED, because BFD Demand mode means the MPLS echo reply from a tail has no useful information to convey to the head.

mpls

normative-requirement §5 SHOULD

The active tail SHOULD initially transmit three BFD Control packets in short succession upon detecting a P2MP MPLS LSP failure, to improve the likelihood of notifying the ingress LSR.

mpls

normative-requirement §3.1 SHOULD

The MultipointHead SHOULD use the Entropy Label (RFC 6790) used for LSP Ping to exercise alternative paths for the given P2MP LSP FEC, or MAY use the UDP port number to exercise alternate paths.

mpls

normative-requirement §5 MUST

The periodic BFD Control packet transmission by the active tail MUST be jittered by up to 25% within one-second intervals (i.e., the interval MUST be reduced by a random value of 0–25%) to reduce the possibility of congestion on the ingress LSR's control plane.

mpls, congestion

normative-requirement §3.1 SHOULD

The sender of an MPLS echo request SHOULD use an IPv6 destination address from the Dummy IPv6 Prefix address block 100:0:0:1::/64; it MAY instead select an address from ::ffff:7f00/104.

mpls, ip

protocol-element §1

MultipointHead and MultipointTail are the two BFD session types defined in RFC 8562 and used in this document. The head transmits all BFD Control packets with Your Discriminator set to zero; tails demultiplex using source IP, My Discriminator, and the multipoint tree identity.

mpls

protocol-element §5

The active tail head notification procedure (Head Notification without Polling, RFC 8563 Section 5.2.1): upon detecting P2MP LSP failure, the egress LSR sends unsolicited BFD Control packets with Poll (P) bit set, Sta=Down, Diag=Control Detection Time Expired, and Your Discriminator set to the session's demultiplexing value, at one-per-second until the ingress LSR acknowledges with the Final (F) bit set.

mpls

protocol-element §4.2

The BFD Discriminator attribute MAY be used as an out-of-band control plane method to bootstrap a multipoint BFD session on a tail, following the format and procedures in Section 3.1.6 of RFC 9026.

mpls

registry §7.1

IANA has allocated 100:0:0:1::/64 as the 'Dummy IPv6 Prefix' in the IANA IPv6 Special-Purpose Address Registry. It is Source=True, Destination=False, Forwardable=False, Globally Reachable=False, Allocation Date 2025-04.

registry, ip, mpls

registry §7.2

IANA has allocated value 0x0013 in the 'MPLS Generalized Associated Channel (G-ACh) Types' registry with the description 'Multipoint BFD Session', referencing RFC 9780.

registry, mpls

security-consideration §6

Operators SHOULD consider the amount of extra traffic generated by P2MP BFD when selecting the MultipointHead transmission interval. IP/UDP encapsulation adds up to 28 octets per BFD Control packet compared to G-ACh encapsulation, representing more than 50% overhead.

security, mpls

security-consideration §6

RFC 9780 inherits all security considerations from RFC 5880, RFC 5884, RFC 7726, RFC 8562, RFC 8029, and RFC 6425 without introducing new threats. BFD for P2MP MPLS LSPs MUST follow RFC 4687 requirements to avoid control/data plane congestion from high BFD Control packet rates.

security, mpls

wire-format §3.2

Non-IP G-ACh encapsulation (Figure 1) consists of: LSP Label (20 bits) + TC (3) + S (1) + TTL (8); GAL (20) + TC (3) + S=1 (1) + TTL (8); ACH: 0001 (4) + Version (4) + Flags (8) + Channel Type=0x0013 (16); BFD Control Packet (variable); Source Address TLV with Type=0 (8), Reserved (8), Length (16), Reserved (16), Address Family (16), Address (variable).

mpls