zebra: Store actual safi in info pointer and don't free then remalloc

When we call zebra_vrf_table_create, we've already created the info
pointer in zebra_router_get_table, so properly set the info->safi
and just store the zvrf->table[afi][safi] value.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
Donald Sharp 2019-01-04 08:36:02 -05:00
parent c05f659a58
commit ea66cec488
2 changed files with 3 additions and 15 deletions

View File

@ -105,7 +105,7 @@ struct route_table *zebra_router_get_table(struct zebra_vrf *zvrf,
info = XCALLOC(MTYPE_RIB_TABLE_INFO, sizeof(*info));
info->zvrf = zvrf;
info->afi = afi;
info->safi = SAFI_UNICAST;
info->safi = safi;
route_table_set_info(zrt->table, info);
zrt->table->cleanup = zebra_rtable_node_cleanup;

View File

@ -370,22 +370,10 @@ static void zebra_rnhtable_node_cleanup(struct route_table *table,
static void zebra_vrf_table_create(struct zebra_vrf *zvrf, afi_t afi,
safi_t safi)
{
rib_table_info_t *info;
struct route_table *table;
assert(!zvrf->table[afi][safi]);
table = zebra_router_get_table(zvrf, zvrf->table_id, afi, safi);
table->cleanup = zebra_rtable_node_cleanup;
zvrf->table[afi][safi] = table;
XFREE(MTYPE_RIB_TABLE_INFO, table->info);
info = XCALLOC(MTYPE_RIB_TABLE_INFO, sizeof(*info));
info->zvrf = zvrf;
info->afi = afi;
info->safi = safi;
route_table_set_info(table, info);
zvrf->table[afi][safi] =
zebra_router_get_table(zvrf, zvrf->table_id, afi, safi);
}
/* Allocate new zebra VRF. */