summaryrefslogtreecommitdiffstats
path: root/src/vnet/fib/fib_entry_src_rr.c
diff options
context:
space:
mode:
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);