MFIB: changes to improve route add/delete performance
[vpp.git] / src / vnet / fib / fib_path_list.c
index db9d1af..b9a391b 100644 (file)
@@ -538,7 +538,7 @@ static const fib_node_vft_t fib_path_list_vft = {
     .fnv_mem_show = fib_path_list_memory_show,
 };
 
-static fib_path_list_t *
+static inline fib_path_list_t *
 fib_path_list_alloc (fib_node_index_t *path_list_index)
 {
     fib_path_list_t *path_list;
@@ -549,11 +549,9 @@ fib_path_list_alloc (fib_node_index_t *path_list_index)
     fib_node_init(&path_list->fpl_node,
                  FIB_NODE_TYPE_PATH_LIST);
     path_list->fpl_urpf = INDEX_INVALID;
+    path_list->fpl_paths = NULL;
 
-    if (NULL != path_list_index)
-    {
-       *path_list_index = fib_path_list_get_index(path_list);
-    }
+    *path_list_index = fib_path_list_get_index(path_list);
 
     FIB_PATH_LIST_DBG(path_list, "alloc");
 
@@ -585,8 +583,11 @@ fib_path_list_resolve (fib_path_list_t *path_list)
     path_list = fib_path_list_get(path_list_index);
 
     FIB_PATH_LIST_DBG(path_list, "resovled");
-    fib_path_list_mk_urpf(path_list);
 
+    if (!(path_list->fpl_flags & FIB_PATH_LIST_FLAG_NO_URPF))
+    {
+        fib_path_list_mk_urpf(path_list);
+    }
     return (path_list);
 }
 
@@ -1025,14 +1026,14 @@ fib_path_list_copy_and_path_remove (fib_node_index_t orig_path_list_index,
  */
 void
 fib_path_list_contribute_forwarding (fib_node_index_t path_list_index,
-                                    fib_forward_chain_type_t type,
+                                    fib_forward_chain_type_t fct,
                                     dpo_id_t *dpo)
 {
     fib_path_list_t *path_list;
 
     path_list = fib_path_list_get(path_list_index);
 
-    fib_path_list_mk_lb(path_list, type, dpo);
+    fib_path_list_mk_lb(path_list, fct, dpo);
 }
 
 /*