diff options
Diffstat (limited to 'pimd/pim_upstream.c')
| -rw-r--r-- | pimd/pim_upstream.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/pimd/pim_upstream.c b/pimd/pim_upstream.c index 2b76cb9172..14508ad184 100644 --- a/pimd/pim_upstream.c +++ b/pimd/pim_upstream.c @@ -519,12 +519,14 @@ pim_upstream_compare (void *arg1, void *arg2) return 0; } -static struct pim_upstream *pim_upstream_new(struct prefix_sg *sg, - struct interface *incoming, - int flags) +static struct pim_upstream * +pim_upstream_new (struct prefix_sg *sg, + struct interface *incoming, + int flags) { - struct pim_upstream *up; enum pim_rpf_result rpf_result; + struct pim_interface *pim_ifp; + struct pim_upstream *up; up = XCALLOC(MTYPE_PIM_UPSTREAM, sizeof(*up)); if (!up) { @@ -602,6 +604,10 @@ static struct pim_upstream *pim_upstream_new(struct prefix_sg *sg, return NULL; } + pim_ifp = up->rpf.source_nexthop.interface->info; + if (pim_ifp) + up->channel_oil = pim_channel_oil_add(&up->sg, pim_ifp->mroute_vif_index); + listnode_add_sort(pim_upstream_list, up); if (PIM_DEBUG_TRACE) |
