FIB path dump: fix next-hop-table ID for recursive routes
[vpp.git] / src / vnet / fib / fib_api.c
index a2f7e79..eca5e61 100644 (file)
@@ -217,7 +217,7 @@ fib_api_path_encode (const fib_route_path_encode_t * api_rpath,
         out->is_drop = true;
         break;
     case DPO_IP_NULL:
-        switch (api_rpath->dpo.dpoi_index)
+        switch (ip_null_dpo_get_action(api_rpath->dpo.dpoi_index))
         {
         case IP_NULL_ACTION_NONE:
             out->is_drop = true;
@@ -241,11 +241,10 @@ fib_api_path_encode (const fib_route_path_encode_t * api_rpath,
     out->afi = api_rpath->rpath.frp_proto;
     fib_api_path_copy_next_hop (api_rpath, out);
 
-    if (~0 == api_rpath->rpath.frp_sw_if_index &&
-        !ip46_address_is_zero(&api_rpath->rpath.frp_addr))
+    if (0 != api_rpath->rpath.frp_fib_index)
     {
         if ((DPO_PROTO_IP6 == api_rpath->rpath.frp_proto) ||
-            (DPO_PROTO_IP6 == api_rpath->rpath.frp_proto))
+            (DPO_PROTO_IP4 == api_rpath->rpath.frp_proto))
         {
             fib_table_t *fib;
 
@@ -266,3 +265,4 @@ fib_api_path_encode (const fib_route_path_encode_t * api_rpath,
         out->next_hop_id = api_rpath->rpath.frp_udp_encap_id;
     }
 }
+