Subject: Pimsm and Multipath routes RPF.

From: Lakhinder Walia <[email-masked]>
Date: Fri, 09 Apr 1999 10:21:17 -0700

Greetings!

How does a PIM router resolve RPF with multiple equal cost routes. 

Thanks.

---

From: Pavlin Ivanov Radoslavov <[email-masked]>
Date: Fri, 09 Apr 1999 13:20:01 -0700

> How does a PIM router resolve RPF with multiple equal cost routes. 

Is the unicast RPF neighbor fixed or there is per-packet load
balancing between the multiple alternative next hop routers?

If the unicast next hop router to the RP or S is fixed, this is the
used one.

In case of unicast per-packet load balancing: during IETF'41 in LA,
Dave Thaler talked about multicast over multi-path unicast
(http://www.ietf.org/proceedings/98mar/index.html; don't know about
slides) What you do is, you don't do load balancing for mcast
traffic per packet, but compute F(S, G, iif), so the load balancing
is per session instead of per packet.
This is not in the spec however; There are other people on the list
who can answer how exactly is performed in their routers.

Pavlin

---

From: Ahmed A-G Helmy <[email-masked]>
Date: Fri, 9 Apr 1999 16:26:00 -0700 (PDT)

> who can answer how exactly is performed in their routers.

Thanks Pavlin,

	In addition I believe the spec addresses equal cost paths per se, 
the mcast messages (joins/prunes) are sent to 0.0.0.0 then the assert 
process takes care of the resolving this situation and breaking the tie 
[check the spec],

Regards,
-Ahmed

---

From: Lakhinder Walia <[email-masked]>
Date: Fri, 09 Apr 1999 17:30:36 -0700

> process takes care of the resolving this situation and breaking the tie 

Assert is good for deciding on a lan. But equal cost multipath paths are not 
on same lan. I agree Assert helps where it can. But not in the following case.

                        A-----> Subnet S.
                       / \
                      /   \
                     B     C
                      \   /
                       \ /
                        D

This diagram shows B and C are best equal cost Next Hops from D to A for some 
subnet S.

From what I saw in the brief description of the IETF at Los Angeles (Thanks 
Pavlin), one could choose based on some heuristic rule how D tries (S,G Join) 
to S: either thru B or Thru D. Assuming S is reachable thru router A.

Router A has to be most lenient to D and basically it should go thru all its
equal cost routes (for RPF check) and accept Join packet from D: either thru B
or thru C.

Router D while its gets data from A should accept it only on the interface it
chose to send the Join packet for this (S,G). Else it could be getting
duplicates from the other interface. Both these packets would normally pass
RPF, but that could cause duplicate packet delivery. (Packets on the other 
interface could be showing up because of some other router sending a join to 
A).

Is this correct?

Thanks.

-Lakhinder

---

From: Ahmed A-G Helmy <[email-masked]>
Date: Fri, 9 Apr 1999 20:15:42 -0700 (PDT)

> on same lan. I agree Assert helps where it can. But not in the following case.

Yes, I was referring to the lan case only.

> RPF, but that could cause duplicate packet delivery. (Packets on the other 

no, a router has only 1 RPF interface per entry, so as not to accept 
duplicates in this case, I agree with you.

Regs,
-A

---

From: Pavlin Ivanov Radoslavov <[email-masked]>
Date: Sun, 11 Apr 1999 07:37:08 -0700

> equal cost routes (for RPF check) and accept Join packet from D: either thru B

A Join packet is always accepted. Apart of that, the Join is
hop-by-hop, and it contains the previous hop router address, not the
Join initiator address.

> interface could be showing up because of some other router sending a join to 

Yes. D will be accepting the data only on the interface it chose to
send the Join toward S (or toward RP if it was (*,G) Join).

Pavlin

---

From: Dave Thaler <[email-masked]>
Date: Mon, 12 Apr 1999 13:20:03 -0700 (PDT)

> How does a PIM router resolve RPF with multiple equal cost routes. 

For each (S,G) or (*,G) or (*,*,RP) entry, you pick one upstream
interface from among the equal cost routes to S or the RP.
Different (S,G) or (*,G) entries for the same S or RP may choose
different interfaces.

See draft-thaler-multipath-02.txt for ways to pick an interface.

-Dave