diff --git a/pimd/pim_upstream.c b/pimd/pim_upstream.c index 406f772ffe..a8d087bf49 100644 --- a/pimd/pim_upstream.c +++ b/pimd/pim_upstream.c @@ -1965,6 +1965,7 @@ static bool pim_upstream_kat_start_ok(struct pim_upstream *up) struct channel_oil *c_oil = up->channel_oil; struct interface *ifp = up->rpf.source_nexthop.interface; struct pim_interface *pim_ifp; + struct pim_instance *pim = up->channel_oil->pim; /* "iif == RPF_interface(S)" check is not easy to do as the info * we get from the kernel/ASIC is really a "lookup/key hit". @@ -1984,8 +1985,9 @@ static bool pim_upstream_kat_start_ok(struct pim_upstream *up) } if ((up->join_state == PIM_UPSTREAM_JOINED) - && !pim_upstream_empty_inherited_olist(up)) { - return true; + && !pim_upstream_empty_inherited_olist(up)) { + if (I_am_RP(pim, up->sg.grp)) + return true; } return false;