summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pimd/pim_upstream.c6
1 files changed, 4 insertions, 2 deletions
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;