diff options
| author | Donatas Abraitis <donatas@opensourcerouting.org> | 2025-01-03 09:34:54 +0200 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-03 09:34:54 +0200 | 
| commit | 73fad72213f7b62ed7210c172e8c3dac604b5621 (patch) | |
| tree | ef0d5e2cba678f443f112876ed790d78ec3ae8ff /zebra | |
| parent | 352b97ff00c6aad2b19ceba8f631ea5adba3a2d8 (diff) | |
| parent | 5aa9c8652e87e92dea14c29fe999099e49919451 (diff) | |
Merge pull request #17737 from chiragshah6/fdev7
zebra:check DAD freeze action before notifying bgp
Diffstat (limited to 'zebra')
| -rw-r--r-- | zebra/zebra_evpn_mac.c | 13 | 
1 files changed, 8 insertions, 5 deletions
diff --git a/zebra/zebra_evpn_mac.c b/zebra/zebra_evpn_mac.c index f9009dabb7..3fd84b5257 100644 --- a/zebra/zebra_evpn_mac.c +++ b/zebra/zebra_evpn_mac.c @@ -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;  	}  | 
