mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-02 00:48:41 +00:00
bgpd: vrf route leaking, fix vrf redistribute
Description: After FRR restart, routes are not getting redistributed; when routes added first and then 'redistribute static' cmd is issued. During the frr restart, vrf_id will be unknown, so irrespective of redistribution, we set the redistribute vrf bitmap. Later, when we add a route and then issue 'redistribute' cmd, we check the redistribute vrf bitmap and return CMD_WARNING; zebra_redistribute_add also checks the redistribute vrf bitmap and returns. Instead of checking the redistribute vrf bitmap, always set it anyways. Co-authored-by: Santosh P K <sapk@vmware.com> Co-authored-by: Kantesh Mundaragi <kmundaragi@vmware.com> Signed-off-by: Abhinay Ramesh <rabhinay@vmware.com>
This commit is contained in:
parent
b19c4f0829
commit
6b2433c63f
@ -1700,9 +1700,6 @@ int bgp_redistribute_set(struct bgp *bgp, afi_t afi, int type,
|
||||
|
||||
redist_add_instance(&zclient->mi_redist[afi][type], instance);
|
||||
} else {
|
||||
if (vrf_bitmap_check(zclient->redist[afi][type], bgp->vrf_id))
|
||||
return CMD_WARNING;
|
||||
|
||||
#ifdef ENABLE_BGP_VNC
|
||||
if (EVPN_ENABLED(bgp) && type == ZEBRA_ROUTE_VNC_DIRECT) {
|
||||
vnc_export_bgp_enable(
|
||||
|
@ -347,17 +347,12 @@ void zebra_redistribute_add(ZAPI_HANDLER_ARGS)
|
||||
zvrf_id(zvrf), afi);
|
||||
}
|
||||
} else {
|
||||
if (!vrf_bitmap_check(client->redist[afi][type],
|
||||
zvrf_id(zvrf))) {
|
||||
if (IS_ZEBRA_DEBUG_EVENT)
|
||||
zlog_debug(
|
||||
"%s: setting vrf %s(%u) redist bitmap",
|
||||
__func__, VRF_LOGNAME(zvrf->vrf),
|
||||
zvrf_id(zvrf));
|
||||
vrf_bitmap_set(client->redist[afi][type],
|
||||
zvrf_id(zvrf));
|
||||
zebra_redistribute(client, type, 0, zvrf_id(zvrf), afi);
|
||||
}
|
||||
if (IS_ZEBRA_DEBUG_EVENT)
|
||||
zlog_debug("%s: setting vrf %s(%u) redist bitmap",
|
||||
__func__, VRF_LOGNAME(zvrf->vrf),
|
||||
zvrf_id(zvrf));
|
||||
vrf_bitmap_set(client->redist[afi][type], zvrf_id(zvrf));
|
||||
zebra_redistribute(client, type, 0, zvrf_id(zvrf), afi);
|
||||
}
|
||||
|
||||
stream_failure:
|
||||
|
Loading…
Reference in New Issue
Block a user