diff options
author | Chirag Shah <chirag@nvidia.com> | 2023-04-14 21:57:23 +0200 |
---|---|---|
committer | Chirag Shah <chirag@nvidia.com> | 2023-04-14 23:50:24 +0200 |
commit | 4a1f91a366bacc8178afcc3d2712e08a3ba3e1ba (patch) | |
tree | e82918df80641225d8fd59046a323060f3ab388d /zebra/zebra_evpn_mac.c | |
parent | Merge pull request #13303 from pguibert6WIND/srv6_seg6local_defaultvrf (diff) | |
download | frr-4a1f91a366bacc8178afcc3d2712e08a3ba3e1ba.tar.xz frr-4a1f91a366bacc8178afcc3d2712e08a3ba3e1ba.zip |
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>
Diffstat (limited to 'zebra/zebra_evpn_mac.c')
-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 ccc1b61e0..5ba075e29 100644 --- a/zebra/zebra_evpn_mac.c +++ b/zebra/zebra_evpn_mac.c @@ -1685,6 +1685,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; @@ -1701,6 +1702,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); @@ -1812,6 +1814,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 @@ -1867,9 +1870,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; |