diff options
Diffstat (limited to 'pimd/pim_upstream.c')
| -rw-r--r-- | pimd/pim_upstream.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/pimd/pim_upstream.c b/pimd/pim_upstream.c index b28af54a30..53da58e8fe 100644 --- a/pimd/pim_upstream.c +++ b/pimd/pim_upstream.c @@ -1772,7 +1772,9 @@ void pim_upstream_find_new_rpf(struct pim_instance *pim) __PRETTY_FUNCTION__, up->sg_str); old.source_nexthop.interface = up->rpf.source_nexthop.interface; rpf_result = pim_rpf_update(pim, up, &old, __func__); - if (rpf_result == PIM_RPF_CHANGED) + if (rpf_result == PIM_RPF_CHANGED || + (rpf_result == PIM_RPF_FAILURE && + old.source_nexthop.interface)) pim_zebra_upstream_rpf_changed(pim, up, &old); /* update kernel multicast forwarding cache (MFC) */ pim_upstream_mroute_iif_update(up->channel_oil, __func__); |
