diff options
Diffstat (limited to 'src/vnet/fib/fib_entry_src_rr.c')
-rwxr-xr-x[-rw-r--r--] | src/vnet/fib/fib_entry_src_rr.c | 9 |
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); |