static void dump_routes(){
struct vnet_route_info *route;
- int i = 0;
Vnet_Debug("\n========Dump routes starts ============\n");
list_for_each_entry(route, &(vnet_state.routes), node) {
- Vnet_Debug("\nroute %d:\n", i++);
+ Vnet_Debug("\nroute %d:\n", route->idx);
print_route(&(route->route_def));
if (route->route_def.dst_type == LINK_INTERFACE) {
flags = vnet_lock_irqsave(vnet_state.lock);
list_for_each_entry(route, &(vnet_state.routes), node) {
+ V3_Print("v3_vnet_del_route, route idx: %d\n", route->idx);
if(route->idx == route_idx){
list_del(&(route->node));
- list_del(&(route->match_node));
- Vnet_Free(route);
+ Vnet_Free(route);
+ break;
}
}
vnet_unlock_irqrestore(vnet_state.lock, flags);
+ clear_hash_cache();
+
+#ifdef V3_CONFIG_DEBUG_VNET
+ dump_routes();
+#endif
}