forked from Mirror/frr
zebra:check DAD freeze action before notifying bgp
If Duplicate Address Detection action is freeze (permanent or definite time means not warn only mode) then locally duplicate detected MAC delete notification is not require to inform, instead ask BGP to sync previous remote MAC entry. In freeze case local MAC event is not known to BGP, instead BGP is pointing to remote VTEP for the MAC. Ticket: #3652383 Issue: 3652383 Signed-off-by: Chirag Shah <chirag@nvidia.com>
This commit is contained in:
parent
8d8f73eed0
commit
5aa9c8652e
|
@ -1323,6 +1323,7 @@ int zebra_evpn_mac_send_del_to_client(vni_t vni, const struct ethaddr *macaddr,
|
|||
uint32_t flags, bool force)
|
||||
{
|
||||
int state = ZEBRA_NEIGH_ACTIVE;
|
||||
struct zebra_vrf *zvrf;
|
||||
|
||||
if (!force) {
|
||||
if (CHECK_FLAG(flags, ZEBRA_MAC_LOCAL_INACTIVE) &&
|
||||
|
@ -1330,12 +1331,14 @@ int zebra_evpn_mac_send_del_to_client(vni_t vni, const struct ethaddr *macaddr,
|
|||
/* the host was not advertised - nothing to delete */
|
||||
return 0;
|
||||
|
||||
/* MAC is LOCAL and DUP_DETECTED, this local mobility event
|
||||
* is not known to bgpd. Upon receiving local delete
|
||||
* ask bgp to reinstall the best route (remote entry).
|
||||
/* Duplicate detect action is freeze enabled and
|
||||
* Local MAC is duplicate deteced, this local
|
||||
* mobility event is not known to bgpd.
|
||||
* Upon receiving local delete ask bgp to reinstall
|
||||
* the best route (remote entry).
|
||||
*/
|
||||
if (CHECK_FLAG(flags, ZEBRA_MAC_LOCAL) &&
|
||||
CHECK_FLAG(flags, ZEBRA_MAC_DUPLICATE))
|
||||
zvrf = zebra_vrf_get_evpn();
|
||||
if (zvrf && zvrf->dad_freeze && CHECK_FLAG(flags, ZEBRA_MAC_DUPLICATE))
|
||||
state = ZEBRA_NEIGH_INACTIVE;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue