Subject: Re: Dr !!!

From: Bill Fenner <[email-masked]>
Date: Tue, 17 Apr 2001 12:19:00 -0700

>[on a non-DR]
>pim_include() macro will be NULL, so oif-list() will be NULL, so it 
>won't join the RP tree ( It(non-DR) won't send (*,G) joins towards RP)
>Am I correct ?????

Yes.

>DR functionality is some thing like encapsulating initail multicast 
>packets, and forward multicast as long as it is assert winner.
>Am I correct ???

Yes, the DR is responsible for encapsulating initial packets from
sources to the RP using Registers, and the DR or the (*,G) Assert
winner is responsible for ensuring that traffic flows to the LAN.

>What happens if downstram router Router-1 sends a (*,G) join towards 
>RP. Now non-dr also joins RP tree I guess pim_include() macro will be 
>not-null. And now I think Assert mechanism will come into picture.
>because multiple RP tree paths to the same LAN.

The Assert mechanism will be triggered and one or the other of
the upstream routers will be elected to be the forwarder for the LAN.
The downstream router will notice the Assert (this is the "assert on
upstream interface") and start sending its Joins to the Assert winner,
in order to avoid periodic forwarding by the Assert loser.  In addition,
the Assert winner takes over responsibility for the group member
(pim_include() becomes true on the Assert winner and false on the DR
if it loses the Assert).

>One more thing is sneding Assert will not come, when there are only 
>Directly connected members ( when no downstram PIM-Routers wish to join 
>RP tree). 

Correct, since the non-DR never has a reason to forward.  Note
that if the DR's shortest path towards the RP is through the
non-DR that the DR will send Joins to the non-DR instead of through
its longer path, e.g.

                         RP
                        /  \
                       /   R1
                      /     |
                      |    R2
                      |     |
                    non-DR  DR
                      |     |
                 -----------------
                              |
                           G member

The DR will send Joins to non-DR, not to R2, assuming that its
route is simply shortest-path.

  Bill