aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/fib/fib_entry_src_rr.c
diff options
context:
space:
mode:
authormu.duojiao <mu.duojiao@zte.com.cn>2019-02-14 16:57:54 +0800
committerNeale Ranns <nranns@cisco.com>2019-02-19 13:32:32 +0000
commit11232e5d1798e7cba30aade3d5d14024bff2b67d (patch)
tree4e9842185aad2154fa6bb0799bf30a0112fca907 /src/vnet/fib/fib_entry_src_rr.c
parent6a7cff7ec234af8529ff72a530076e191cc8d759 (diff)
VPP-1568:when entry src cover change, recursive-loop fib still can not work.
Change-Id: I90762b59f94175f278380c95776471a30bc94d34 Signed-off-by: mu.duojiao <mu.duojiao@zte.com.cn>
Diffstat (limited to 'src/vnet/fib/fib_entry_src_rr.c')
-rwxr-xr-x[-rw-r--r--]src/vnet/fib/fib_entry_src_rr.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/vnet/fib/fib_entry_src_rr.c b/src/vnet/fib/fib_entry_src_rr.c
index 8e477362374..63896c39c0f 100644..100755
--- a/src/vnet/fib/fib_entry_src_rr.c
+++ b/src/vnet/fib/fib_entry_src_rr.c
@@ -179,9 +179,18 @@ fib_entry_src_rr_deactivate (fib_entry_src_t *src,
*/
if (FIB_NODE_INDEX_INVALID != src->u.rr.fesr_cover)
{
+ fib_node_index_t *entries = NULL;
+
cover = fib_entry_get(src->u.rr.fesr_cover);
fib_entry_cover_untrack(cover, src->u.rr.fesr_sibling);
src->u.rr.fesr_cover = FIB_NODE_INDEX_INVALID;
+
+ if (FIB_NODE_INDEX_INVALID != cover->fe_parent)
+ {
+ fib_path_list_recursive_loop_detect(cover->fe_parent, &entries);
+
+ vec_free(entries);
+ }
}
fib_path_list_unlock(src->fes_pl);