int pipe_busy; /* Pipe loop detection */
int use_count; /* Number of protocols using this table */
u32 rt_count; /* Number of routes in the table */
+
+ byte internal; /* Internal table of a protocol */
+
struct hmap id_map;
struct hostcache *hostcache;
struct rtable_config *config; /* Configuration of this table */
DBG("Deleting routing table %s\n", r->name);
ASSERT_DIE(r->use_count == 0);
+ if (r->internal)
+ return;
+
r->config->table = NULL;
rem_node(&r->n);
fib_init(&t->fib, p, t->addr_type, sizeof(net), OFFSETOF(net, n), 0, NULL);
- if (!cf->internal)
+ if (!(t->internal = cf->internal))
{
init_list(&t->channels);
hmap_init(&t->id_map, p, 1024);