for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++)
{
- bgp_zebra_announce_table(bgp, afi, safi);
+ if (bgp_fibupd_safi(safi))
+ bgp_zebra_announce_table(bgp, afi, safi);
}
bgp->main_peers_update_hold = 0;
&& (ri->sub_type == BGP_ROUTE_NORMAL ||
ri->sub_type == BGP_ROUTE_AGGREGATE))
{
- bgp_zebra_withdraw (&rn->p, ri, safi);
+ if (bgp_fibupd_safi(safi))
+ bgp_zebra_withdraw (&rn->p, ri, safi);
bgp_info_reap (rn, ri);
}
}
rmap->map = NULL;
}
- bgp_zebra_announce_table(bgp, afi, safi);
+ if (bgp_fibupd_safi(safi))
+ bgp_zebra_announce_table(bgp, afi, safi);
return CMD_SUCCESS;
}
rmap->name = NULL;
rmap->map = NULL;
- bgp_zebra_announce_table(bgp, afi, safi);
+ if (bgp_fibupd_safi(safi))
+ bgp_zebra_announce_table(bgp, afi, safi);
return CMD_SUCCESS;
}
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++)
{
/* For table route-map updates. */
+ if (!bgp_fibupd_safi(safi))
+ continue;
+
if (bgp->table_map[afi][safi].name &&
(strcmp(rmap_name, bgp->table_map[afi][safi].name) == 0))
{