Fast Failover in Protocol Independent Multicast - Sparse Mode (PIM-SM) Using Bidirectional Forwarding Detection (BFD) for Multipoint Networks
Extracted elements (20)
P2MP BFD using Demand mode is chosen over Asynchronous mode because it creates less BFD state in point-to-multipoint environments, making it more scalable for shared media segments like Ethernet where PIM-SM is commonly deployed.
The default PIM-SM failure detection interval is 105 seconds, which significantly impacts multicast service quality. P2MP BFD provides sub-second failover, motivating the extension defined in this document.
Any PIM-SM router, regardless of its role, MAY become the head of a P2MP BFD session. Operators should carefully select routers configured as head to control the volume of BFD Control traffic on shared media segments.
For the tail to correctly demultiplex BFD, the source address and My Discriminator of BFD packets MUST be the same as the source address and HeadDiscriminator of the corresponding PIM Hello message.
If the head ceases to include the BFD Discriminator PIM Hello Option, the tail SHOULD close the corresponding MultipointTail BFD session without affecting PIM state, reverting to RFC 7761 procedures.
If the tail detects a MultipointHead failure (per RFC 8562), it MUST delete the corresponding neighbor state and follow RFC 7761 procedures for DR and additional neighbor state deletion after the neighbor timeout expires.
In DR Load Balancing, if a router is no longer the GDR, it MUST shut down following RFC 8562 Section 5.9 procedures. If the PIM DR detects a session failure, it MUST remove that router from the GDR Candidate list and immediately transmit a new DRLB-List option.
The head MUST create a BFD session of type MultipointHead (RFC 8562) and MUST include the BFD Discriminator PIM Hello Option in its PIM Hello messages.
The HeadDiscriminator field MUST be included and its value MUST NOT be zero. If it equals zero, the option MUST be considered invalid and the receiver MUST ignore it.
The MultipointHead MUST set the TTL or Hop Limit to 255 when transmitting BFD Control packets, and received BFD Control packets demultiplexed to the session MUST be discarded if TTL or Hop Limit is not equal to 255.
The MultipointHead MUST use the group address ALL-PIM-ROUTERS (224.0.0.13 for IPv4, ff02::d for IPv6) as the destination IP address when transmitting BFD Control packets.
The OptionLength field of the BFD Discriminator PIM Hello Option MUST be set to 4. If it is not equal to 4, the option is malformed and the receiver MUST stop processing PIM Hello Options.
The receiver SHOULD log a notification regarding a malformed or invalid BFD Discriminator Hello Option under the control of a throttling logging mechanism.
When the head is no longer serving the monitored function, it MUST cease including the BFD Discriminator PIM Hello Option in its PIM Hello messages, and it SHOULD shut down the BFD session following RFC 8562 Section 5.9 procedures.
A PIM-SM router configured to monitor the head via P2MP BFD is a 'tail'. When it receives a PIM Hello with the BFD Discriminator Option, the tail MAY create a P2MP BFD session of type MultipointTail as defined in RFC 8562.
In PIM DR Load Balancing (RFC 8775), the head router administratively sets bfd.SessionState to Up in the MultipointHead session only if it is a GDR Candidate. For each GDR Candidate including the BFD Discriminator Option, the PIM DR MUST create a MultipointTail session.
The BFD Discriminator PIM Hello Option (OptionType 39) is a new optional PIM Hello Option that bootstraps a tail of a P2MP BFD session. It contains a 4-octet HeadDiscriminator field set to the My Discriminator value allocated by the head.
IANA allocated OptionType value 39 with length 4 in the 'PIM-Hello Options' registry for the BFD Discriminator Option, referencing RFC 9186.
This document defines a mechanism to accelerate PIM failure detection using BFD, but does not change the operation of either protocol. The security considerations of RFC 5880, RFC 5881, RFC 7761, RFC 8562, and RFC 8775 all apply.
The BFD Discriminator PIM Hello Option has a 16-bit OptionType field (value 39), a 16-bit OptionLength field (MUST be 4), and a 32-bit HeadDiscriminator field. Total option body is 4 octets.