aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/fib
diff options
context:
space:
mode:
authorNeale Ranns <neale.ranns@cisco.com>2018-03-13 07:51:50 -0700
committerNeale Ranns <nranns@cisco.com>2018-03-13 16:23:20 +0000
commiteca834ed514ddb8a7b7f18dbbef2c637d7482bd3 (patch)
tree7dffec26f6dea028a352e2e9eaf7157f34023681 /src/vnet/fib
parent1941871e2622a17e84062c69c234414c4dc2bf4a (diff)
FIB: DVR paths are not considered L3 attached
Change-Id: Ie473dca3264b480b007d2eb500aaa557b889c7c1 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
Diffstat (limited to 'src/vnet/fib')
-rw-r--r--src/vnet/fib/fib_entry_src.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/vnet/fib/fib_entry_src.c b/src/vnet/fib/fib_entry_src.c
index ec8c7393030..0497672b268 100644
--- a/src/vnet/fib/fib_entry_src.c
+++ b/src/vnet/fib/fib_entry_src.c
@@ -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)))
@@ -1360,6 +1361,15 @@ 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
*/