{
/* Do nothing if we already have this route-target */
if (is_import) {
- if (!bgp_evpn_vrf_rt_matches_existing(bgp->vrf_import_rtl,
- ecom))
- bgp_evpn_configure_import_rt_for_vrf(bgp, ecom,
- is_wildcard);
- else
+ if (CHECK_FLAG(bgp->vrf_flags, BGP_VRF_IMPORT_RT_CFGD) &&
+ bgp_evpn_vrf_rt_matches_existing(bgp->vrf_import_rtl, ecom))
return -1;
+
+ bgp_evpn_configure_import_rt_for_vrf(bgp, ecom, is_wildcard);
} else {
- if (!bgp_evpn_vrf_rt_matches_existing(bgp->vrf_export_rtl,
- ecom))
- bgp_evpn_configure_export_rt_for_vrf(bgp, ecom);
- else
+ if (CHECK_FLAG(bgp->vrf_flags, BGP_VRF_EXPORT_RT_CFGD) &&
+ bgp_evpn_vrf_rt_matches_existing(bgp->vrf_export_rtl, ecom))
return -1;
+
+ bgp_evpn_configure_export_rt_for_vrf(bgp, ecom);
}
return 0;
ecommunity_str(ecomadd);
/* Do nothing if we already have this import route-target */
- if (!bgp_evpn_rt_matches_existing(vpn->import_rtl, ecomadd))
- evpn_configure_import_rt(bgp, vpn, ecomadd);
- else
+ if (CHECK_FLAG(vpn->flags, VNI_FLAG_IMPRT_CFGD) &&
+ bgp_evpn_rt_matches_existing(vpn->import_rtl, ecomadd))
ecommunity_free(&ecomadd);
+ else
+ evpn_configure_import_rt(bgp, vpn, ecomadd);
}
/* Add/update the export route-target */
ecommunity_str(ecomadd);
/* Do nothing if we already have this export route-target */
- if (!bgp_evpn_rt_matches_existing(vpn->export_rtl, ecomadd))
- evpn_configure_export_rt(bgp, vpn, ecomadd);
- else
+ if (CHECK_FLAG(vpn->flags, VNI_FLAG_EXPRT_CFGD) &&
+ bgp_evpn_rt_matches_existing(vpn->export_rtl, ecomadd))
ecommunity_free(&ecomadd);
+ else
+ evpn_configure_export_rt(bgp, vpn, ecomadd);
}
return CMD_SUCCESS;