There are articles explaining the PIM-DM mechanics, and they only confused me. Considering the most common topology, that of three routers, connected to each other like a triangle as such:
R1 -- R2
And assuming that R1 is the upstream router for a multicast stream, both R2 and R3 will initially flood the traffic on the link between them. Both routers R2 and R3 will discard the traffic because it fails the RPF check. My question is, what happens next?
- Both R2 and R3 send Prune messages on that link towards each other, causing both interfaces to go into a Pruned state and no traffic flows through that link. This is the most common explanation I found in articles on the Internet. However, I couldn't find this info in RFC 3973. The only information I could find is in section 4.2
Packets that fail the RPF check MUST NOT be forwarded, and the router will conduct an assert process for the (S,G) pair specified in the packet.
There is no single instance I could find, where the standard specifies that a Prune message should be sent as a result of a failed RPF check only, without an Assert taking place first.
- There is an Assert process and either R2 and R3, whoever the Assert winner is, keeps sending traffic that the other router discards due to failing RPF check.
So, when is a Prune message sent, and when is an Assert message sent? Which of the scenarios above is the correct one?