vhost: show vhost may display garbage after the interface name
[vpp.git] / src / vnet / fib / fib_path.c
index e974e31..226de2a 100644 (file)
@@ -874,13 +874,10 @@ fib_path_unresolve (fib_path_t *path)
     case FIB_PATH_TYPE_RECURSIVE:
        if (FIB_NODE_INDEX_INVALID != path->fp_via_fib)
        {
-           fib_prefix_t pfx;
-
-           fib_entry_get_prefix(path->fp_via_fib, &pfx);
            fib_entry_child_remove(path->fp_via_fib,
                                   path->fp_sibling);
            fib_table_entry_special_remove(path->recursive.fp_tbl_id,
-                                          &pfx,
+                                          fib_entry_get_prefix(path->fp_via_fib),
                                           FIB_SOURCE_RR);
            path->fp_via_fib = FIB_NODE_INDEX_INVALID;
        }
@@ -906,7 +903,7 @@ fib_path_unresolve (fib_path_t *path)
         adj_unlock(path->fp_dpo.dpoi_index);
         break;
     case FIB_PATH_TYPE_UDP_ENCAP:
-       udp_encap_unlock_w_index(path->fp_dpo.dpoi_index);
+       udp_encap_unlock(path->fp_dpo.dpoi_index);
         break;
     case FIB_PATH_TYPE_EXCLUSIVE:
        dpo_reset(&path->exclusive.fp_ex_dpo);
@@ -2072,7 +2069,7 @@ fib_path_get_resolving_interface (fib_node_index_t path_index)
     case FIB_PATH_TYPE_BIER_IMP:
        break;
     }
-    return (~0);
+    return (dpo_get_urpf(&path->fp_dpo));
 }
 
 index_t
@@ -2593,6 +2590,7 @@ fib_path_encode (fib_node_index_t path_list_index,
     api_rpath->rpath.frp_preference = path->fp_preference;
     api_rpath->rpath.frp_proto = path->fp_nh_proto;
     api_rpath->rpath.frp_sw_if_index = ~0;
+    api_rpath->rpath.frp_fib_index = 0;
     api_rpath->dpo = path->fp_dpo;
 
     switch (path->fp_type)
@@ -2618,6 +2616,7 @@ fib_path_encode (fib_node_index_t path_list_index,
         break;
       case FIB_PATH_TYPE_RECURSIVE:
         api_rpath->rpath.frp_addr = path->recursive.fp_nh.fp_ip;
+        api_rpath->rpath.frp_fib_index = path->recursive.fp_tbl_id;
         break;
       case FIB_PATH_TYPE_DVR:
           api_rpath->rpath.frp_sw_if_index = path->dvr.fp_interface;