From eca834ed514ddb8a7b7f18dbbef2c637d7482bd3 Mon Sep 17 00:00:00 2001 From: Neale Ranns Date: Tue, 13 Mar 2018 07:51:50 -0700 Subject: FIB: DVR paths are not considered L3 attached Change-Id: Ie473dca3264b480b007d2eb500aaa557b889c7c1 Signed-off-by: Neale Ranns --- src/vnet/fib/fib_entry_src.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src') 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))) @@ -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 -- cgit 1.2.3-korg