diff options
Diffstat (limited to 'pimd/pim_upstream.c')
| -rw-r--r-- | pimd/pim_upstream.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/pimd/pim_upstream.c b/pimd/pim_upstream.c index 2d3a44b646..8f7e1741e7 100644 --- a/pimd/pim_upstream.c +++ b/pimd/pim_upstream.c @@ -194,6 +194,9 @@ struct pim_upstream *pim_upstream_del(struct pim_instance *pim, zlog_debug("pim_upstream free vrf:%s %s flags 0x%x", pim->vrf->name, up->sg_str, up->flags); + if (pim_up_mlag_is_local(up)) + pim_mlag_up_local_del(pim, up); + THREAD_OFF(up->t_ka_timer); THREAD_OFF(up->t_rs_timer); THREAD_OFF(up->t_msdp_reg_timer); @@ -884,6 +887,18 @@ static struct pim_upstream *pim_upstream_new(struct pim_instance *pim, } } + /* If (S, G) inherit the MLAG_VXLAN from the parent + * (*, G) entry. + */ + if ((up->sg.src.s_addr != INADDR_ANY) && + up->parent && + PIM_UPSTREAM_FLAG_TEST_MLAG_VXLAN(up->parent->flags)) { + PIM_UPSTREAM_FLAG_SET_MLAG_VXLAN(up->flags); + if (PIM_DEBUG_VXLAN) + zlog_debug("upstream %s inherited mlag vxlan flag from parent", + up->sg_str); + } + /* send the entry to the MLAG peer */ /* XXX - duplicate send is possible here if pim_rpf_update * successfully resolved the nexthop |
