IP route local and connected
[vpp.git] / src / vnet / ip / ip_api.c
index f58ca07..25d0b8b 100644 (file)
@@ -813,7 +813,13 @@ add_del_route_t_handler (u8 is_multipath,
       path.frp_eos = MPLS_NON_EOS;
     }
   if (is_local)
-    path_flags |= FIB_ROUTE_PATH_LOCAL;
+    {
+      path_flags |= FIB_ROUTE_PATH_LOCAL;
+      if (~0 != next_hop_sw_if_index)
+       {
+         entry_flags |= (FIB_ENTRY_FLAG_CONNECTED | FIB_ENTRY_FLAG_LOCAL);
+       }
+    }
   if (is_dvr)
     path_flags |= FIB_ROUTE_PATH_DVR;
   if (is_resolve_host)
@@ -843,7 +849,8 @@ add_del_route_t_handler (u8 is_multipath,
 
   stats_dslock_with_hint (1 /* release hint */ , 2 /* tag */ );
 
-  if (is_drop || is_local || is_classify || is_unreach || is_prohibit)
+  if (is_drop || (is_local && (~0 == next_hop_sw_if_index)) ||
+      is_classify || is_unreach || is_prohibit)
     {
       /*
        * special route types that link directly to the adj