{
struct zebra_vrf *zvrf = vrf->info;
struct other_route_table *otable;
- struct route_table *table;
- afi_t afi;
- safi_t safi;
unsigned i;
assert(zvrf);
zebra_vxlan_close_tables(zvrf);
zebra_mpls_close_tables(zvrf);
- /* release allocated memory */
- for (afi = AFI_IP; afi <= AFI_IP6; afi++) {
- for (safi = SAFI_UNICAST; safi <= SAFI_MULTICAST; safi++) {
- table = zvrf->table[afi][safi];
- if (table) {
- zebra_router_release_table(zvrf, zvrf->table_id,
- afi, safi);
- zvrf->table[afi][safi] = NULL;
- }
- }
-
- if (zvrf->rnh_table[afi])
- route_table_finish(zvrf->rnh_table[afi]);
- if (zvrf->rnh_table_multicast[afi])
- route_table_finish(zvrf->rnh_table[afi]);
- }
-
otable = otable_pop(&zvrf->other_tables);
while (otable) {
zebra_router_release_table(zvrf, otable->table_id,