pimd: Ensure channel_oil_add is created through all paths

If we create a channel_oil ensure that all paths that
we can go down will create one.  Future commits
can remove the (up->channel_oil) tests.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
Donald Sharp 2019-06-13 20:03:08 -04:00
parent 11884868d4
commit 9e132a491a
2 changed files with 16 additions and 0 deletions

View File

@ -201,6 +201,10 @@ static int pim_mroute_msg_nocache(int fd, struct interface *ifp,
* Let's blackhole those packets for the moment
* As that they will be coming up to the cpu
* and causing us to consider them.
*
* This *will* create a dangling channel_oil
* that I see no way to get rid of. Just noting
* this for future reference.
*/
c_oil = pim_channel_oil_add(pim_ifp->pim, &sg,
pim_ifp->mroute_vif_index,

View File

@ -770,6 +770,18 @@ static struct pim_upstream *pim_upstream_new(struct pim_instance *pim,
up->channel_oil = pim_channel_oil_add(
pim, &up->sg, pim_ifp->mroute_vif_index,
__PRETTY_FUNCTION__);
else {
/*
* Yeah this should not happen
* but let's be sure that we are not
* doing something stupid, all paths
* through upstream creation will
* create a channel oil
*/
up->channel_oil = pim_channel_oil_add(
pim, &up->sg, MAXVIFS,
__PRETTY_FUNCTION__);
}
}
}