summaryrefslogtreecommitdiff
path: root/pimd/pim_mroute.c
diff options
context:
space:
mode:
Diffstat (limited to 'pimd/pim_mroute.c')
-rw-r--r--pimd/pim_mroute.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/pimd/pim_mroute.c b/pimd/pim_mroute.c
index 2e08ae28be..9060b6a95a 100644
--- a/pimd/pim_mroute.c
+++ b/pimd/pim_mroute.c
@@ -232,6 +232,8 @@ static int pim_mroute_msg_nocache(int fd, struct interface *ifp,
pim_upstream_mroute_iif_update(up->channel_oil, __func__);
}
pim_register_join(up);
+ /* if we have receiver, inherit from parent */
+ pim_upstream_inherited_olist_decide(pim_ifp->pim, up);
return 0;
}
@@ -484,7 +486,10 @@ static int pim_mroute_msg_wrvifwhole(int fd, struct interface *ifp,
struct pim_upstream *parent;
struct pim_nexthop source;
struct pim_rpf *rpf = RP(pim_ifp->pim, sg.grp);
- if (!rpf || !rpf->source_nexthop.interface)
+
+ /* No RPF or No RPF interface or No mcast on RPF interface */
+ if (!rpf || !rpf->source_nexthop.interface
+ || !rpf->source_nexthop.interface->info)
return 0;
/*