diff options
| author | Chirag Shah <chirag@nvidia.com> | 2023-04-14 12:57:23 -0700 | 
|---|---|---|
| committer | Mergify <37929162+mergify[bot]@users.noreply.github.com> | 2023-04-16 08:28:33 +0000 | 
| commit | 58ad9b3976d5d65b705f041a22f32856664a6068 (patch) | |
| tree | a8b4384965ba2e514f720d54b3b2d6050fcb5c42 | |
| parent | c323653fc9bd4b2428449877e3bb91ac93a8fe29 (diff) | |
zebra: evpn mh sync mac install as inactive
EVPN MH ES reduendant VTEPs need to install
sync MAC as notify inactive and generate
ND:Proxy stamped extended community on Type-2
route.
Ticket:#3436621
Issue:3436621
Testing Done:
tor-11 originates type-2 MAC route:
tor-11# bridge -d fdb show | grep 00:65:00:00:00:01
00:65:00:00:00:01 dev hostbond1 vlan 1000 notify master bridge static
tor-12 receives sync MAC route:
Before fix:
----------
tor-12:/# bridge -d fdb show | grep 00:65:00:00:00:01
00:65:00:00:00:01 dev hostbond1 vlan 1000 notify master bridge static
After fix: inactive is set to MAC entry
----------
tor-12:/#bridge -d fdb show | grep 00:65:00:00:00:01
00:65:00:00:00:01 dev hostbond1 vlan 1000 notify inactive master bridge
static
Notice the difference in `inactive` post notify on tor-12
with the fix.
Signed-off-by: Trey Aspelund <taspelund@nvidia.com>
Signed-off-by: Chirag Shah <chirag@nvidia.com>
(cherry picked from commit 4a1f91a366bacc8178afcc3d2712e08a3ba3e1ba)
| -rw-r--r-- | zebra/zebra_evpn_mac.c | 9 | 
1 files changed, 6 insertions, 3 deletions
diff --git a/zebra/zebra_evpn_mac.c b/zebra/zebra_evpn_mac.c index 2c953eef15..a2fe9fd00b 100644 --- a/zebra/zebra_evpn_mac.c +++ b/zebra/zebra_evpn_mac.c @@ -1691,6 +1691,7 @@ struct zebra_mac *zebra_evpn_proc_sync_mac_update(struct zebra_evpn *zevpn,  	struct zebra_mac *mac;  	bool inform_bgp = false;  	bool inform_dataplane = false; +	bool mac_inactive = false;  	bool seq_change = false;  	bool es_change = false;  	uint32_t tmp_seq; @@ -1707,6 +1708,7 @@ struct zebra_mac *zebra_evpn_proc_sync_mac_update(struct zebra_evpn *zevpn,  		 */  		inform_bgp = true;  		inform_dataplane = true; +		mac_inactive = true;  		/* create the MAC and associate it with the dest ES */  		mac = zebra_evpn_mac_add(zevpn, macaddr); @@ -1818,6 +1820,7 @@ struct zebra_mac *zebra_evpn_proc_sync_mac_update(struct zebra_evpn *zevpn,  		if (es_change) {  			inform_bgp = true;  			inform_dataplane = true; +			mac_inactive = true;  		}  		/* if peer-flag is being set notify dataplane that the @@ -1873,9 +1876,9 @@ struct zebra_mac *zebra_evpn_proc_sync_mac_update(struct zebra_evpn *zevpn,  		 * the activity as we are yet to establish activity  		 * locally  		 */ -		zebra_evpn_sync_mac_dp_install(mac, false /* set_inactive */, -					       false /* force_clear_static */, -					       __func__); +		zebra_evpn_sync_mac_dp_install( +			mac, mac_inactive /* set_inactive */, +			false /* force_clear_static */, __func__);  	}  	return mac;  | 
