From 87f9a980796fa8287811752fc0b4da55bc77af78 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Wed, 22 Mar 2017 10:09:00 -0400 Subject: [PATCH] pimd: Fix inherited_olist decision for *,G When we had a *,G join but a Prune S,G,rpt we were not taking that into account. Signed-off-by: Donald Sharp --- pimd/pim_upstream.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pimd/pim_upstream.c b/pimd/pim_upstream.c index 327e4f07d7..d95849fce0 100644 --- a/pimd/pim_upstream.c +++ b/pimd/pim_upstream.c @@ -756,6 +756,16 @@ pim_upstream_evaluate_join_desired_interface (struct pim_upstream *up, */ if (parent && ch->upstream == parent) { + struct listnode *ch_node; + struct pim_ifchannel *child; + for (ALL_LIST_ELEMENTS_RO (ch->sources, ch_node, child)) + { + if (child->upstream == up) + { + if (PIM_IF_FLAG_TEST_S_G_RPT(child->flags)) + return 0; + } + } if (!pim_macro_ch_lost_assert (ch) && pim_macro_chisin_joins_or_include (ch)) return 1; } -- 2.39.5