Revert "bgpd: vrf route leaking, fix vrf redistribute"

This reverts commit 6b2433c63f.
This commit is contained in:
Igor Ryzhov 2021-05-09 22:28:36 +03:00
parent 03d39784e7
commit d9083050c8
2 changed files with 14 additions and 6 deletions

View File

@ -1700,6 +1700,9 @@ int bgp_redistribute_set(struct bgp *bgp, afi_t afi, int type,
redist_add_instance(&zclient->mi_redist[afi][type], instance); redist_add_instance(&zclient->mi_redist[afi][type], instance);
} else { } else {
if (vrf_bitmap_check(zclient->redist[afi][type], bgp->vrf_id))
return CMD_WARNING;
#ifdef ENABLE_BGP_VNC #ifdef ENABLE_BGP_VNC
if (EVPN_ENABLED(bgp) && type == ZEBRA_ROUTE_VNC_DIRECT) { if (EVPN_ENABLED(bgp) && type == ZEBRA_ROUTE_VNC_DIRECT) {
vnc_export_bgp_enable( vnc_export_bgp_enable(

View File

@ -337,13 +337,18 @@ void zebra_redistribute_add(ZAPI_HANDLER_ARGS)
zvrf_id(zvrf), afi); zvrf_id(zvrf), afi);
} }
} else { } else {
if (!vrf_bitmap_check(client->redist[afi][type],
zvrf_id(zvrf))) {
if (IS_ZEBRA_DEBUG_EVENT) if (IS_ZEBRA_DEBUG_EVENT)
zlog_debug("%s: setting vrf %s(%u) redist bitmap", zlog_debug(
"%s: setting vrf %s(%u) redist bitmap",
__func__, VRF_LOGNAME(zvrf->vrf), __func__, VRF_LOGNAME(zvrf->vrf),
zvrf_id(zvrf)); zvrf_id(zvrf));
vrf_bitmap_set(client->redist[afi][type], zvrf_id(zvrf)); vrf_bitmap_set(client->redist[afi][type],
zvrf_id(zvrf));
zebra_redistribute(client, type, 0, zvrf_id(zvrf), afi); zebra_redistribute(client, type, 0, zvrf_id(zvrf), afi);
} }
}
stream_failure: stream_failure:
return; return;