zebra: on local mac add from the dplane a re-install maybe need as static

As a part of extended MM handing a MAC can be updated from local
to remote while being referenced by SYNC neighs (this is really a
temporary/small window). During this window if the MAC transitions
back to local again we need to re-inforce the previous SYNC flags
(based on the sync-neigh count) as subsequent SYNC updates to the
MAC will be de-duped and ignored.

Ticket: CM-29636

Signed-off-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
This commit is contained in:
Anuradha Karuppiah 2020-06-07 19:33:48 -07:00 committed by Anuradha Karuppiah
parent 1a4f9efd54
commit 69711b3f83

View File

@ -2097,13 +2097,12 @@ int zebra_evpn_add_update_local_mac(struct zebra_vrf *zvrf, zebra_evpn_t *zevpn,
}
/* if the dataplane thinks the entry is sync but it is
* not sync in zebra we need to re-install to fixup
* not sync in zebra (or vice-versa) we need to re-install
* to fixup
*/
if (dp_static) {
new_static = zebra_evpn_mac_is_static(mac);
if (!new_static)
inform_dataplane = true;
}
new_static = zebra_evpn_mac_is_static(mac);
if (dp_static != new_static)
inform_dataplane = true;
if (local_inactive)
SET_FLAG(mac->flags, ZEBRA_MAC_LOCAL_INACTIVE);