Subject: [pim] pim-sm DR, assertion and optimum traffic flow

From: "Ilya Varlashkin" <[email-masked]>
Date: Mon, 10 Jul 2006 18:49:38 +0200

Hello,

I'm new to this list and couldn't find this issue in the archives, sorry
if it was already discussed.

Just went through draft-ietf-pim-sm-v2-new-12.txt and found that there
seems to be same old problem as in current RFC2362: on multi-access
network elected DR may have inferior metric towards RP or towards a
source (depending whether shared- or source-tree is being currently
used), yet a router with better metric will never send 'Assert' as long
as DR's path towards RP or the source stays stable. I've reproduced this
in the lab and actual router behaviour confirms this. To make
explaination a bit more clear, have a look at the test network setup
here: http://citadel.nobulus.com/~ilya/mcast-dr-study.pdf

In that setup router CE2 is elected DR on VLAN501 only due to its
address, priority is the same as of CE11. When receiver XH0 joins a
group (I've used 239.0.1.1), CE11 sits quietly and only CE2 sends
PIM-Join towards router XR2 (RP). So far so good. Now host XH3 starts
sending to the group, traffic naturally goes via RP and then via CE2 to
VLAN501 where it's finally received by XH0. Obviously traffic is
delivered via suboptimum path, however CE11 doesn't do anything to
improve situation (since interface towards VLAN501 is not in o_list for
the group). This is all expected.

Now, CE2's uplink towards RP fails (assume routers are configured not to
switch to SPT, but similar behaviour can also be observed in that case
too). CE2 sends new PIM-Join, this time it goes via VLAN501 and via
CE11. Traffic starts flowing via CE11. Now CE2's uplink towards RP
recovers, CE2 sends new PIM-Join and traffic starts flowing via CE2. For
some while however CE11 still has (*, 239.0.1.1) entry in MRIB, so it
keeps forwarding traffic to VLAN501, packet duplication is in place. Now
both CE2 and CE11 see each other traffic, and both have interface
towards VLAN501 in o_list for (*,239.0.1.1). Condition
CouldAssert(S,G,I) becomes true, so assert process begins and CE11 comes
as the winner. Traffic now flows over optimum path, even while all links
are up.

It's clear that this behaviour is per specification, but wouldn't it be
better if CE2 and CE11 could agree on who's forwarding on VLAN501
without having CE2 uplink to fail? One possible solution for this could
be to change assert condition so that it checks not traffic present on
an interface in o_list, but instead it kicks assert process as soon as
traffic is heard on any interface with active PIM-neighbor as long as
this interface is not incoming interface. In terms of described test
setup, assert would kick in as soon as CE2 detects traffic on any
interface other than FE0 (in case we switch from shared-tree to SPT,
this will be 'anything but FE1'). Is there some reason of not doing so?

Kind regards,
iLya (IV21-RIPE)

_______________________________________________
pim mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/pim

---

From: Prashant Jhingran <[email-masked]>
Date: Tue, 11 Jul 2006 18:30:06 +0800

Hi,

This would cause chaos in the network since it will make pim-sm behavior
quite unpredictable. You may visualise this by considering CE11-FE2
disconnected to vlan-501 and thus assert happening on Vlan-400 between
CE11 and XR2 when CE2 requests packets from RP.

If there exists a back door link (like in your topology) then I feel
that admin should configure a higher DR priority on the router connected
via backdoor link (viz. CE11) so that probability of having sub-optimal
path is minimized.

Regards,
Prashant

-----Original Message-----
From: Ilya Varlashkin [mailto:[email-masked]] 
Sent: Tuesday, July 11, 2006 12:50 AM
To: [email-masked]
Subject: [pim] pim-sm DR, assertion and optimum traffic flow

Hello,

Kind regards,
iLya (IV21-RIPE)

---

From: John Zwiebel <[email-masked]>
Date: Tue, 11 Jul 2006 08:04:49 -0400

On Jul 10, 2006, at 12:49 PM, Ilya Varlashkin wrote:

>  Is there some reason of not doing so?
>

In the initial case when traffic is flowing via CE2
is there duplicate traffic?  Is traffic flowing to the
receivers who want it?

Yes, it could be "fixed", but there's no benefit and
a significant cost because you are proposing interrupting
the data flow or causing duplicate packets to XH0.

In "most" cases like this when the upstream metric
gets too high, the DR would end up RPFing through
vlan 501.  So CE2 would have sent the join through
CE11 and your problem would be solved.

I'm curious how you got CE2 to still think vlan400
was the RPF interface when you put such a high cost
on it.  You must have put some high OSPF costs on
that interface too.

> Routers must never do assert
> on the incoming interface (RPF interface), else they'll cut themselves
> from the traffic (since traffic is allowed to arrive only RPF  
> interface,
> all other must be dropped).

FWIW, -if- a router were to assert on its RPF interface
(remember you only assert on the olist, but some
implementations put the RPF interface into the olist
to solve the 'turnaround' problem') it should be rather
difficult for it to win that assert because that would
indicate it has a better metric to the source/RP than
the other routers its asserting with.

That would mean you have something really nuts going on
in your network.