]> git.puffer.fish Git - mirror/frr.git/commitdiff
zebra: evpn mh sync mac install as inactive 13317/head
authorChirag Shah <chirag@nvidia.com>
Fri, 14 Apr 2023 19:57:23 +0000 (12:57 -0700)
committerMergify <37929162+mergify[bot]@users.noreply.github.com>
Sun, 16 Apr 2023 08:28:33 +0000 (08:28 +0000)
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)

zebra/zebra_evpn_mac.c

index 2c953eef15db361ce46091d91eee9a0008123e9a..a2fe9fd00ba9fedd7c130ebb087e0e1db88ddbef 100644 (file)
@@ -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;