bgp_vrf_link(bgp, vrf);
bgp_handle_socket(bgp, vrf, old_vrf_id, true);
- /* Update any redistribute vrf bitmaps if the vrf_id changed */
+ /* Update any redistribution if vrf_id changed */
if (old_vrf_id != bgp->vrf_id)
- bgp_update_redist_vrf_bitmaps(bgp, old_vrf_id);
+ bgp_redistribute_redo(bgp);
bgp_instance_up(bgp);
vpn_leak_zebra_vrf_label_update(bgp, AFI_IP);
vpn_leak_zebra_vrf_label_update(bgp, AFI_IP6);
/* We have instance configured, unlink from VRF and make it
* "down". */
bgp_vrf_unlink(bgp, vrf);
- /* Update any redistribute vrf bitmaps if the vrf_id changed */
+ /* Delete any redistribute vrf bitmaps if the vrf_id changed */
if (old_vrf_id != bgp->vrf_id)
- bgp_update_redist_vrf_bitmaps(bgp, old_vrf_id);
+ bgp_unset_redist_vrf_bitmaps(bgp, old_vrf_id);
bgp_instance_down(bgp);
}
}
}
-/* Update redistribute vrf bitmap during triggers like
- restart networking or delete/add VRFs */
-void bgp_update_redist_vrf_bitmaps(struct bgp *bgp, vrf_id_t old_vrf_id)
+/* 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)) {
+ old_vrf_id))
vrf_bitmap_unset(zclient->redist[afi][i],
old_vrf_id);
- vrf_bitmap_set(zclient->redist[afi][i],
- bgp->vrf_id);
- }
return;
}
bgp->vrf_id = VRF_UNKNOWN;
}
-extern void bgp_update_redist_vrf_bitmaps(struct bgp *, vrf_id_t);
+extern void bgp_unset_redist_vrf_bitmaps(struct bgp *, vrf_id_t);
/* For benefit of rfapi */
extern struct peer *peer_new(struct bgp *bgp);