diff options
Diffstat (limited to 'pimd/pim_zebra.c')
| -rw-r--r-- | pimd/pim_zebra.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/pimd/pim_zebra.c b/pimd/pim_zebra.c index 5b3380c8e2..88b234900e 100644 --- a/pimd/pim_zebra.c +++ b/pimd/pim_zebra.c @@ -611,7 +611,7 @@ void pim_scan_individual_oil(struct channel_oil *c_oil, int in_vif_index) } } -void pim_scan_oil() +void pim_scan_oil(struct pim_instance *pim_matcher) { struct listnode *node; struct listnode *nextnode; @@ -630,6 +630,9 @@ void pim_scan_oil() if (!pim) continue; + if (pim_matcher && pim != pim_matcher) + continue; + for (ALL_LIST_ELEMENTS(pim->channel_oil_list, node, nextnode, c_oil)) { if (c_oil->up @@ -655,7 +658,7 @@ static int on_rpf_cache_refresh(struct thread *t) scan_upstream_rpf_cache(); /* update kernel multicast forwarding cache (MFC) */ - pim_scan_oil(); + pim_scan_oil(NULL); qpim_rpf_cache_refresh_last = pim_time_monotonic_sec(); ++qpim_rpf_cache_refresh_events; |
