diff options
| author | Russ White <russ@riw.us> | 2021-05-11 07:28:42 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-05-11 07:28:42 -0400 |
| commit | 6099bb989dc97a199cb0c9ee95813a72a5550b1e (patch) | |
| tree | c44da021633218d3b9e2b3cb724cbffafbbab85c /bgpd/bgp_zebra.c | |
| parent | 41e4b0c0eeac29f947d3af71a8ac7a1479a7087c (diff) | |
| parent | 6cc0114b6e070855022baa731f74ef78ee0a9c0f (diff) | |
Merge pull request #8650 from idryzhov/bgp-fix-redist
bgpd: fix redistribution in vrf
Diffstat (limited to 'bgpd/bgp_zebra.c')
| -rw-r--r-- | bgpd/bgp_zebra.c | 19 |
1 files changed, 3 insertions, 16 deletions
diff --git a/bgpd/bgp_zebra.c b/bgpd/bgp_zebra.c index 288c2851b3..45b60b4903 100644 --- a/bgpd/bgp_zebra.c +++ b/bgpd/bgp_zebra.c @@ -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); } 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( @@ -1909,22 +1912,6 @@ void bgp_redistribute_redo(struct bgp *bgp) } } -/* Unset redistribute vrf bitmap during triggers like - restart networking or delete VRFs */ -void bgp_unset_redist_vrf_bitmaps(struct bgp *bgp, vrf_id_t old_vrf_id) -{ - int i; - afi_t afi; - - for (afi = AFI_IP; afi < AFI_MAX; afi++) - for (i = 0; i < ZEBRA_ROUTE_MAX; i++) - if (vrf_bitmap_check(zclient->redist[afi][i], - old_vrf_id)) - vrf_bitmap_unset(zclient->redist[afi][i], - old_vrf_id); - return; -} - void bgp_zclient_reset(void) { zclient_reset(zclient); |
