]> git.puffer.fish Git - matthieu/frr.git/commit
pimd: Intelligently drop wrvifwhole packets in some cases
authorDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 15 Feb 2017 01:03:18 +0000 (20:03 -0500)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Fri, 24 Feb 2017 15:03:41 +0000 (10:03 -0500)
commitb7ddd2ec481969bdfcd576c52a6e99c4489ece58
treef23e25fa222f2821a29dd2d990ebc953968c8c62
parentb5e2377cca8d2e7339927389e6f05a2f4a1e209d
pimd: Intelligently drop wrvifwhole packets in some cases

Suppose we have this

(*,G) IIF = swp1  OIL: swp3
(S,G) IIF = swp2  OIL: swp3 swp4

There exists situations where we can receive the mcast
packet for (S,G) on both swp1 and swp2.  In this case
the packet received on swp1 will be sent from the kernel
to us as a WRVIF and WRVIFWHOLE.

As per normal, WRVIF packet processing handles the assert
case so we know we have not received the packet on a downstream
interface, so no assert.

The WRVIFWHOLE packet processing can then check to see if
it received the packet as a result of the (*,G) mroute
from upstream.  If we have then we can safely drop
the packet.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd/pim_mroute.c