Subject: Re: join(s,g) on shared tree

From: Arup Acharya <[email-masked]>
Date: Mon, 18 Jan 99 13:31:51 EST

rusty,
thanks for your response. 

the semantics of join(S,G, dest=RP)  that i had in  mind:

a.  merge(join(S, G, dest=RP), join(S, *)) = join(*, G)   
b.  merge(join(S, G, dest=RP), join(S,G, dest=S)) = join (S, G, dest=S)
c.  merge(join(S,G, dest=RP), null) = create (S, G) state with iif=RPF to RP

then, if i understand your message correctly, such a join(S, G, dest=RP)
is not currently supported in PIM-SM ? 

arup

- >                   RP
- >                   |join(*,G)
- >                   R 
- >      join(*,G) /    \  join(S,G) : join_list={S}, RPT=1, WC=0
- > 	      R1     R2            (sent towards RP)
- > 
- > 
- 
- the SPT must be created, even if it does merge with a shared 
- tree, since the intention of joining an SPT is to form an SPT.
- (your suggesting a protocol that perfers a shared tree over
- a shortest path, such as BGMP :)
- 
- - rusty
-

---

From: [email-masked]
Date: Mon, 18 Jan 1999 17:23:25 -0800 (PST)

> is not currently supported in PIM-SM ? 

i don't follow your notation, but the answer is probably no.  the only 
time an s,g join is sent _toward_ the RP is when rpf(s) == rpf(rp),
however, it is still sent to S.

- rusty

---

From: Dino Farinacci <[email-masked]>
Date: Tue, 19 Jan 1999 09:32:00 -0800 (PST)

>> however, it is still sent to S.

    Rusty, one might argue that an (S,G,RP-bit) join is sent up the RP tree
    when it wants to undo previous sent (S,G,RP-bit) prunes. Even though
    this can be undone (via the spec) by sending a (*,G) join without S
    in the prune-list.

Dino

---

From: [email-masked]
Date: Tue, 19 Jan 1999 11:29:43 -0800 (PST)

>     this can be undone (via the spec) by sending a (*,G) join without S

yes, i thought of that, as matter of fact it took me a while to respond
because i was looking through the rfc to find a mention of an
(s, g)rpt=1 join either being recieved or sent, but could not find a
reference, (i could have easily overlooked it).  i assumed it was
missing since a (*, g) would accomplish this :).  on the other hand i
just looked at my code and i do indeed accept an (s, g)rpt join :).

so i think the conclusion is (correct me if i'm wrong), since the spec
doesn't forbid (s, g)rpt=1 join to the RP, it's ok to graft previously
pruned data from the RP. 

wrt the original message, this still does not allow a shared tree to
over ride shortest path joins. 

- rusty