diff options
Diffstat (limited to 'pimd/pim_vxlan.c')
| -rw-r--r-- | pimd/pim_vxlan.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/pimd/pim_vxlan.c b/pimd/pim_vxlan.c index 5e55b9f9c8..120293dbfd 100644 --- a/pimd/pim_vxlan.c +++ b/pimd/pim_vxlan.c @@ -880,6 +880,12 @@ void pim_vxlan_mlag_update(bool enable, bool peer_state, uint32_t role, */ pim = pim_get_pim_instance(VRF_DEFAULT); + if (!pim) { + if (PIM_DEBUG_VXLAN) + zlog_debug("%s: Unable to find pim instance", __func__); + return; + } + if (enable) vxlan_mlag.flags |= PIM_VXLAN_MLAGF_ENABLED; else @@ -1137,7 +1143,7 @@ void pim_vxlan_add_term_dev(struct pim_instance *pim, /* enable pim on the term ifp */ pim_ifp = (struct pim_interface *)ifp->info; if (pim_ifp) { - PIM_IF_DO_PIM(pim_ifp->options); + pim_ifp->pim_enable = true; /* ifp is already oper up; activate it as a term dev */ if (pim_ifp->mroute_vif_index >= 0) pim_vxlan_term_oif_update(pim, ifp); @@ -1165,8 +1171,8 @@ void pim_vxlan_del_term_dev(struct pim_instance *pim) pim_ifp = (struct pim_interface *)ifp->info; if (pim_ifp) { - PIM_IF_DONT_PIM(pim_ifp->options); - if (!PIM_IF_TEST_IGMP(pim_ifp->options)) + pim_ifp->pim_enable = false; + if (!pim_ifp->igmp_enable) pim_if_delete(ifp); } } |
