Subject: RE: (S,G) join message direction

From: "Matthew Koivisto" <[email-masked]>
Date: Wed, 11 Apr 2001 08:50:12 -0400

>(S,G) joins are always towards S only. There is no point in going to RP.
>As the receiver wants to join SP tree, Join will go towards S from DR of
>the Receiver R2, that you are mentioning.

Okay, so if that is the case (which i hope it is) what is the differnce
between an node(via MLDv2) requesting to join a group in the non-SSM address
space from only a specific source (I.E., the node's DR sends an (S,G) join
towards S) and a node (via MLDv2) requesting to join a group in the SSM
address space? Both should set an (S,G) state in all the routers till it
reaches S, right? So why do we need this SSM address range, if it's exacly
the same as joining a non-SSM range group with a source filter?

>Till the PIM -Router (at which  the RP tree and SP Tree diverge), sends
>(S,G) RP bit Prune message towards RP, multicast packets will travel
>on both RP ( Shared ) tree, as well as SP Tree. So there is no question 
>of loosing packets. Once the redundant (duplicate) packets statrs arriving,
>then that (S,G) Rp bit prune message will be sent towards RP.

Okay, i didn't read the specs detail enough, I though an (*,G) prune was
sent. My bad. This is great, it solves my problems (well one at least : )
).

Thanks,
Matt

---

From: "Matthew Koivisto" <[email-masked]>
Date: Wed, 11 Apr 2001 09:05:53 -0400

>I think original question is a little ambiguous, though.
>I thought "topologically close to R1" didn't mean R1 and R2 were on a
>same LAN. If my assumption is correct, when the group range is *not in
>a SSM range*, R2's DR which is not R1's DR would try to send (*,G)
>join toward the RP, even if R1 sends (S,G) join (i.e., IGMPv3's
>source-specific join). This is because other nodes on an R2's LAN may
>want to join the group sent by another sender. R1's (S,G) join effects
>"source address filtering" in this case. But the DR would send (*,G)
>join.

sorry, by topologically close I ment within one or two hops in the same
domain, so if a domain looked like  R1
					     / \
                                  R2  R3
                                  |   |
                                  N1  N2
and say N1 is recieving data from an SPT and N2 want's to join that SPT, his
DR (R3 in this diagram) should send a (S,G) join towards S. This would
simply set R1 to have two interfaces to forward on. Now if another node on
N2's subnet wanted to listen to all sources on G, then it would send an MLD
message to R3 and the state would be updated to an (*,G) state, and then a
(*,G) join would be propigated till it hits another (*,G) router.

>Of course, if the group range is in a SSM range, then each DR sends
>(S,G) join.

Right, but i'm talking about in the non-SSM range.

Thanks,
Matt

---

From: "Jyotheeswara Rao Kurma" <[email-masked]>
Date: Wed, 11 Apr 2001 19:04:37 +0500

> Okay, so if that is the case (which i hope it is) what is the 
> differncebetween an node(via MLDv2) requesting to join a group in 
> the non-SSM address

Yes !! I guess functionality wise both are same. But the protocol 
complexity decreases (optionally) if we have only PIM-SSM routers.
i.e multicast traffic will always be to a SSM address. 
section 4.8.2 gives more details of what parts of spec one can 
skip/exclude.

Thanks,
Jyotheesh

---

From: "Jyotheeswara Rao Kurma" <[email-masked]>
Date: Wed, 11 Apr 2001 19:22:59 +0500

sorry, by topologically close I ment within one or two hops in the same 
domain, so if a domain looked like  R1 
                                             / \ 
                                  R2  R3 
                                  |   | 
                                  N1  N2 
and say N1 is recieving data from an SPT and N2 want's to join that 
SPT, his DR (R3 in this diagram) should send a (S,G) join towards S. 
This would simply set R1 to have two interfaces to forward on. Now if 
another node on N2's subnet wanted to listen to all sources on G, then 
it would send an MLD message to R3 and the state would be updated to an 
(*,G) state, and then a (*,G) join would be propigated till it hits 
another (*,G) router.
-----------------------------------------------------------------------

(S,G ) won't be updated to (*,G) . (*,G) will also be created. this 
(*,G) join travel towards RP. Now two states exists. both (*,G) and 
(S,G). packets will get forwarded ,
based on (S,G) oif-list(inherited_olist(S,G) from source S. 
and oif-list(*,G) from all other sources expect from S. In any case all 
packets will be sentout on R3's inetrface towards  N2. N2 will receive 
only S packets, whereas other hosts on that subnet receive all packets 
from any source.

In any case I don't think that (S,G) state is removed. Because we 
joined SP Tree for some purpose( to avoid a long path). So another host 
interested in receiving all packets to G, cannot disturb our SPT tree
for that Source. Moreover, packets, from from all other sources wil be 
travelling down the RP tree. ( may traveres a long path).

Hope I am clear.
----------------------------------------------------------------------
Thanks,
Jyotheesh