+ return;
+
+replace_route:
+ route = calloc(1, sizeof(*route));
+ route->iface = iface;
+ route->flags = a_new->flags | DEVADDR_KERNEL;
+ route->mask = a_new->mask;
+ memcpy(&route->addr, &a_new->addr, sizeof(route->addr));
+ clear_if_addr(&route->addr, route->mask);
+
+ system_del_route(dev, route);
+
+ route->flags &= ~DEVADDR_KERNEL;
+ route->metric = iface->metric;
+ vlist_add(&ip->route, &route->node, &route->flags);