From 0c2319fe2b520776a5d947def4be30b8517896b2 Mon Sep 17 00:00:00 2001 From: Vijayabhaskar Katamreddy Date: Thu, 25 Oct 2018 13:28:12 -0700 Subject: [PATCH] Fixing Exclusive dpo path issues added when via rpath Change-Id: I7531a64d7072d85514ca579827b6ea0e9cef6f08 Signed-off-by: Vijayabhaskar Katamreddy --- src/vnet/fib/fib_entry_src.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/vnet/fib/fib_entry_src.c b/src/vnet/fib/fib_entry_src.c index b3b40bf2229..bc1ff2e068c 100644 --- a/src/vnet/fib/fib_entry_src.c +++ b/src/vnet/fib/fib_entry_src.c @@ -1547,12 +1547,19 @@ fib_entry_src_action_path_add (fib_entry_t *fib_entry, esrc = fib_entry_src_find(fib_entry, source); if (NULL == esrc) { + const dpo_id_t *dpo; + + if (flags == FIB_ENTRY_FLAG_EXCLUSIVE) { + dpo = &rpath->dpo; + } else { + dpo = drop_dpo_get(fib_entry_get_dpo_proto(fib_entry)); + } + fib_entry = fib_entry_src_action_add(fib_entry, source, flags, - drop_dpo_get( - fib_entry_get_dpo_proto(fib_entry))); + dpo); esrc = fib_entry_src_find(fib_entry, source); } @@ -1608,11 +1615,18 @@ fib_entry_src_action_path_swap (fib_entry_t *fib_entry, if (NULL == esrc) { + const dpo_id_t *dpo; + + if (flags == FIB_ENTRY_FLAG_EXCLUSIVE) { + dpo = &rpaths->dpo; + } else { + dpo = drop_dpo_get(fib_entry_get_dpo_proto(fib_entry)); + } + fib_entry = fib_entry_src_action_add(fib_entry, source, flags, - drop_dpo_get( - fib_entry_get_dpo_proto(fib_entry))); + dpo); esrc = fib_entry_src_find(fib_entry, source); } else -- 2.16.6