Subject: Re: Re: [Pim] (*,G) Upstream state machine

From: "Bakar" <[email-masked]>
Date: 15 Feb 2002 09:45:46 -0000

exactly, it first looked strange to me, when a prune is sent to B, and immediately when JT timer expires, send a Join to it again. Now i understand the reason much better.

thanx Mark,
and C need not wait till data arrives via its tree, since it has the CouldAssert(*,G,I) TRUE when it recieves data forwarded by B on I. It then sends assert (*,G) after assuming itself as Winner and eventually a winner would be decided.

thanx & regards,
Bakar

On Thu, 14 Feb 2002 Mark Handley wrote :
> 
> >in draft-4, sec 4.4.6 Sending (*,G) Join/Prune Messages
> >
> >when MRIB.next_hop(RP(G)) changes
> >the text form says,
> >
> >"The upstream (*,G) state machine remains in Joined 
> state. Send Prune(*,G) to 
> >the old upstream neighbor, which is the old value of 
> RPF`(*,G). Send Join(*,G)
> > to the new upstream neighbor which is the new value 
> of MRIB.next_hop(RP(G))."
> >
> >Lets say 
> >A is old MRIB.next_hop(RP(G))
> >B is AssertWinner(*,G,I)
> >C is new MRIB.next_hop(RP(G))
> >and A, B, C are all on the same interface.
> >
> >as i understand, we should send Prune to B, and Join 
> to C. 
> >after this when the upsream JT expires, should we send 
> Join to RPF`(*,G) or MR
> >IB.next_hop(RP(G))
> 
> If C is on a different interface from A and B, then the 
> Assert state
> machine causes the assert state to be dropped when
> MRIB.next_hop(RP(G)) changes interface.  
> 
> The question is only meaningful when C is on the same 
> interface as A
> and B.  In this case, from a high level point of view, 
> it doesn't
> really matter whether B or C now does the forwarding.  
> We know the
> path to the RP through B works.  But C might have a 
> lower cost path.
> So we send a single Join to C, but we maintain the 
> Assert state.  In
> the normal case, traffic will start arriving via C, and 
> an Assert will
> happen causing the best path to win, and all our future 
> periodic Joins
> go to the winner.  If (for whatever reason) the path 
> through C doesn't
> work, the path through B will continue forwarding, and 
> so we want 
periodic Join to go to B to maintain that state.
> 
> The only issue with this would be in the case where B's 
> next hop to
> RP(G) becomes the LAN containing C.  In this case the 
> Assert state
> machine will cause B to send an AssertCancel, and so 
> you'll then send
> periodic joins to C in the normal way.
> 
> So, your summary is correct, even though it may seem a 
> little strange
> at first glance.
> 
> BTW, if you dropped the Assert state, then most likely 
> the same thing
> would happen, but you'd be fractionally less robust.
> 
> I hope this clarifies the thinking behind this.
> 
> Cheers,
> 	Mark

_______________________________________________
Pim mailing list
[email-masked]
http://catarina.usc.edu/mailman/listinfo/pim