summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--zebra/zebra_vxlan.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/zebra/zebra_vxlan.c b/zebra/zebra_vxlan.c
index 568ebf2961..c6ff5089ca 100644
--- a/zebra/zebra_vxlan.c
+++ b/zebra/zebra_vxlan.c
@@ -5554,6 +5554,7 @@ void zebra_vxlan_advertise_svi_macip(ZAPI_HANDLER_ARGS)
struct zebra_if *zif = NULL;
struct zebra_l2info_vxlan zl2_info;
struct interface *vlan_if = NULL;
+ int old_advertise;
zevpn = zebra_evpn_lookup(vni);
if (!zevpn)
@@ -5567,13 +5568,14 @@ void zebra_vxlan_advertise_svi_macip(ZAPI_HANDLER_ARGS)
? "enabled"
: "disabled");
- if (zevpn->advertise_svi_macip == advertise)
- return;
+ old_advertise = advertise_svi_macip_enabled(zevpn);
/* Store flag even though SVI is not present.
* Once SVI comes up triggers self MAC-IP route add.
*/
zevpn->advertise_svi_macip = advertise;
+ if (advertise_svi_macip_enabled(zevpn) == old_advertise)
+ return;
ifp = zevpn->vxlan_if;
if (!ifp)
@@ -5719,6 +5721,7 @@ void zebra_vxlan_advertise_gw_macip(ZAPI_HANDLER_ARGS)
struct zebra_l2info_vxlan zl2_info;
struct interface *vlan_if = NULL;
struct interface *vrr_if = NULL;
+ int old_advertise;
zevpn = zebra_evpn_lookup(vni);
if (!zevpn)
@@ -5731,10 +5734,11 @@ void zebra_vxlan_advertise_gw_macip(ZAPI_HANDLER_ARGS)
advertise_gw_macip_enabled(zevpn) ? "enabled"
: "disabled");
- if (zevpn->advertise_gw_macip == advertise)
- return;
+ old_advertise = advertise_gw_macip_enabled(zevpn);
zevpn->advertise_gw_macip = advertise;
+ if (advertise_gw_macip_enabled(zevpn) == old_advertise)
+ return;
ifp = zevpn->vxlan_if;
if (!ifp)