FIB: DVR paths are not considered L3 attached 22/11122/2
authorNeale Ranns <neale.ranns@cisco.com>
Tue, 13 Mar 2018 14:51:50 +0000 (07:51 -0700)
committerNeale Ranns <nranns@cisco.com>
Tue, 13 Mar 2018 16:23:20 +0000 (16:23 +0000)
Change-Id: Ie473dca3264b480b007d2eb500aaa557b889c7c1
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
src/vnet/fib/fib_entry_src.c

index ec8c739..0497672 100644 (file)
@@ -1344,6 +1344,7 @@ fib_route_attached_cross_table (const fib_entry_t *fib_entry,
      */
     if (ip46_address_is_zero(&rpath->frp_addr) &&
        (~0 != rpath->frp_sw_if_index) &&
+        !(rpath->frp_flags & FIB_ROUTE_PATH_DVR) &&
        (fib_entry->fe_fib_index != 
         fib_table_get_index_for_sw_if_index(fib_entry_get_proto(fib_entry),
                                             rpath->frp_sw_if_index)))
@@ -1359,6 +1360,15 @@ fib_route_attached_cross_table (const fib_entry_t *fib_entry,
 static inline int
 fib_path_is_attached (const fib_route_path_t *rpath)
 {
+    /*
+     * DVR paths are not attached, since we are not playing the
+     * L3 game with these
+     */
+    if (rpath->frp_flags & FIB_ROUTE_PATH_DVR)
+    {
+        return (0);
+    }
+
     /*
      * - All zeros next-hop
      * - a valid interface