Bidirectional PIM allows multicast devices to keep reduced state information, as compared with unidirectional shared trees
in PIM-SM. Bidirectional shared trees convey data from sources to the RPA and distribute them from the RPA to the receivers.
Unlike PIM-SM, bidirectional PIM does not switch over to the source tree, and there is no register encapsulation of data from
the source to the RP.
A single designated forwarder (DF) exists for each RPA on every link within a bidirectional PIM domain (including multiaccess
and point-to-point links). The only exception is the RPL on which no DF exists. The DF is the device on the link with the
best route to the RPA, which is determined by comparing MRIB-provided metrics. A DF for a given RPA forwards downstream traffic
onto its link and forwards upstream traffic from its link toward the rendezvous point link (RPL). The DF performs this function
for all bidirectional groups that map to the RPA. The DF on a link is also responsible for processing Join messages from downstream
devices on the link as well as ensuring that packets are forwarded to local receivers discovered through a local membership
mechanism such as MLD.
Bidirectional PIM offers advantages when there are many moderate or low-rate sources. However, the bidirectional shared trees
may have worse delay characteristics than do the source trees built in PIM-SM (depending on the topology).
Only static configuration of bidirectional RPs is supported in IPv6.