diff --git a/src/vnet/fib/fib_entry.c b/src/vnet/fib/fib_entry.c
index edbfdf6..6ff692d 100644
--- a/src/vnet/fib/fib_entry.c
+++ b/src/vnet/fib/fib_entry.c
@@ -906,21 +906,19 @@
 fib_entry_path_add (fib_node_index_t fib_entry_index,
 		    fib_source_t source,
 		    fib_entry_flag_t flags,
-		    const fib_route_path_t *rpath)
+		    const fib_route_path_t *rpaths)
 {
     fib_source_t best_source;
     fib_entry_t *fib_entry;
     fib_entry_src_t *bsrc;
 
-    ASSERT(1 == vec_len(rpath));
-
     fib_entry = fib_entry_get(fib_entry_index);
     ASSERT(NULL != fib_entry);
 
     bsrc = fib_entry_get_best_src_i(fib_entry);
     best_source = fib_entry_src_get_source(bsrc);
     
-    fib_entry = fib_entry_src_action_path_add(fib_entry, source, flags, rpath);
+    fib_entry = fib_entry_src_action_path_add(fib_entry, source, flags, rpaths);
 
     fib_entry_source_change(fib_entry, best_source, source);
 
@@ -1003,7 +1001,7 @@
 fib_entry_src_flag_t
 fib_entry_path_remove (fib_node_index_t fib_entry_index,
 		       fib_source_t source,
-		       const fib_route_path_t *rpath)
+		       const fib_route_path_t *rpaths)
 {
     fib_entry_src_flag_t sflag;
     fib_source_t best_source;
@@ -1011,8 +1009,6 @@
     fib_entry_t *fib_entry;
     fib_entry_src_t *bsrc;
 
-    ASSERT(1 == vec_len(rpath));
-
     fib_entry = fib_entry_get(fib_entry_index);
     ASSERT(NULL != fib_entry);
 
@@ -1020,7 +1016,7 @@
     best_source = fib_entry_src_get_source(bsrc);
     bflags = fib_entry_src_get_flags(bsrc);
 
-    sflag = fib_entry_src_action_path_remove(fib_entry, source, rpath);
+    sflag = fib_entry_src_action_path_remove(fib_entry, source, rpaths);
 
     FIB_ENTRY_DBG(fib_entry, "path remove:%U", format_fib_source, source);
 
@@ -1648,11 +1644,13 @@
     fib_entry_logger = vlib_log_register_class("fib", "entry");
 }
 
-void
-fib_entry_encode (fib_node_index_t fib_entry_index,
-		  fib_route_path_encode_t **api_rpaths)
+fib_route_path_t *
+fib_entry_encode (fib_node_index_t fib_entry_index)
 {
     fib_path_ext_list_t *ext_list;
+    fib_path_encode_ctx_t ctx = {
+        .rpaths = NULL,
+    };
     fib_entry_t *fib_entry;
     fib_entry_src_t *bsrc;
 
@@ -1670,8 +1668,10 @@
         fib_path_list_walk_w_ext(fib_entry->fe_parent,
                                  ext_list,
                                  fib_path_encode,
-                                 api_rpaths);
+                                 &ctx);
     }
+
+    return (ctx.rpaths);
 }
 
 const fib_prefix_t *
