FIB reset leaves residual routes. Wrong API used to remove the routes meant the lock... 38/5438/2
authorNeale Ranns <nranns@cisco.com>
Mon, 20 Feb 2017 17:17:02 +0000 (09:17 -0800)
committerFlorin Coras <florin.coras@gmail.com>
Mon, 20 Feb 2017 18:43:45 +0000 (18:43 +0000)
Change-Id: I6e2dff8c3c7976fd1c2e4c5258f5dc73123aa9b7
Signed-off-by: Neale Ranns <nranns@cisco.com>
src/vnet/fib/fib_entry.c
src/vnet/fib/fib_table.c

index 3aa3632..8ef4ea8 100644 (file)
@@ -1426,7 +1426,10 @@ fib_entry_encode (fib_node_index_t fib_entry_index,
     fib_entry_t *fib_entry;
 
     fib_entry = fib_entry_get(fib_entry_index);
-    fib_path_list_walk(fib_entry->fe_parent, fib_path_encode, api_rpaths);
+    if (FIB_NODE_INDEX_INVALID != fib_entry->fe_parent)
+    {
+        fib_path_list_walk(fib_entry->fe_parent, fib_path_encode, api_rpaths);
+    }
 }
 
 void
index f997335..a0ce0bb 100644 (file)
@@ -1162,7 +1162,7 @@ fib_table_flush (u32 fib_index,
 
     vec_foreach(fib_entry_index, ctx.ftf_entries)
     {
-        fib_entry_delete(*fib_entry_index, source);
+        fib_table_entry_delete_index(*fib_entry_index, source);
     }
 
     vec_free(ctx.ftf_entries);