Figure 1 displays the new optional BFD Discriminator PIM Hello Option to bootstrap a tail of the P2MP BFD session:
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
where new fields are interpreted as:
-
OptionType:
-
39
-
OptionLength:
-
MUST be set to 4.
-
HeadDiscriminator:
-
the 4-octet field MUST be included in the BFD Discriminator PIM-SM Hello Option.The value MUST NOT be zero. It equals the value of My Discriminator [RFC 5880] allocated by the head.
If the value of the OptionLength field is not equal to 4, the BFD Discriminator PIM Hello Option is considered malformed, and the receiver
MUST stop processing PIM Hello Options. If the value of the HeadDiscriminator field equals zero, then the BFD Discriminator PIM Hello Option
MUST be considered invalid, and the receiver
MUST ignore it. The receiver
SHOULD log a notification regarding the malformed or invalid BFD Discriminator Hello Option under the control of a throttling logging mechanism.
If the head is no longer serving the function that prompted it to be monitored, then it
MUST cease including the BFD Discriminator PIM Hello Option in its PIM Hello message, and it
SHOULD shut down the BFD session following the procedures described in
RFC 8562,
Section 5.9.
The head
MUST create a BFD session of type MultipointHead [
RFC 8562]. Note that any PIM-SM router, regardless of its role,
MAY 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
MUST include the BFD Discriminator PIM Hello Option in its PIM Hello messages.
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
MAY create a P2MP BFD session of type MultipointTail, as defined in [
RFC 8562].
The node that includes the BFD Discriminator PIM Hello Option transmits BFD Control packets periodically. For the tail to correctly demultiplex BFD [
RFC 8562], the source address and My Discriminator of the BFD packets
MUST 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.
If the tail detects a MultipointHead failure [
RFC 8562], it
MUST delete the corresponding neighbor state and follow procedures defined in [
RFC 7761] for the DR and additional neighbor state deletion after the neighbor timeout expires.
If the head ceases to include the BFD Discriminator PIM Hello Option in its PIM Hello message, the tail
SHOULD 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 [
RFC 7761].
[
RFC 8775] 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
Section 2.1. The head router administratively sets the bfd.SessionState to Up in the MultipointHead session [
RFC 8562] only if it is a Group Designated Router (GDR) Candidate, as specified in Sections
5.5 and
5.6 of [
RFC 8775]. If the router is no longer the GDR, then it
MUST shut down following the procedures described in
RFC 8562,
Section 5.9. For each GDR Candidate that includes the BFD Discriminator Option in its PIM Hello, the PIM DR
MUST create a MultipointTail session [
RFC 8562]. 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
MUST remove that router from the GDR Candidate list and immediately transmit a new DRLB-List option.
The MultipointHead of a P2MP BFD session when transmitting BFD Control packets:
-
MUST set the TTL or Hop Limit value to 255 (RFC 5881, Section 5). Similarly, all received BFD Control packets that are demultiplexed to the session MUST be discarded if the received TTL or Hop Limit is not equal to 255, and
-
MUST use the group address ALL-PIM-ROUTERS ("224.0.0.13" for IPv4 and "ff02::d" for IPv6) as the destination IP address.