X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Ffib%2Ffib_path_list.c;h=81751695f47ba2539ab5eea8c1f7ee45e58a85f4;hb=397228d8be382e800235b7501ab378b2292d18eb;hp=df08bb2b0d05bb536b36f63b646251174879651b;hpb=8e2b1b129815d3e631aa425ed37899c78ea24e65;p=vpp.git diff --git a/src/vnet/fib/fib_path_list.c b/src/vnet/fib/fib_path_list.c index df08bb2b0d0..81751695f47 100644 --- a/src/vnet/fib/fib_path_list.c +++ b/src/vnet/fib/fib_path_list.c @@ -1297,22 +1297,15 @@ fib_path_list_child_add (fib_node_index_t path_list_index, fib_node_type_t child_type, fib_node_index_t child_index) { - u32 sibling; - - sibling = fib_node_child_add(FIB_NODE_TYPE_PATH_LIST, - path_list_index, - child_type, - child_index); - - if (FIB_PATH_LIST_POPULAR == fib_node_get_n_children(FIB_NODE_TYPE_PATH_LIST, - path_list_index)) + if (FIB_PATH_LIST_POPULAR - 1 == fib_node_get_n_children(FIB_NODE_TYPE_PATH_LIST, + path_list_index)) { /* * Set the popular flag on the path-list once we pass the magic * threshold. then walk children to update. * We don't undo this action. The rational being that the number * of entries using this prefix is large enough such that it is a - * non-trivial amount of effort to converge them. If we get into the + * non-trival amount of effort to converge them. If we get into the * situation where we are adding and removing entries such that we * flip-flop over the threshold, then this non-trivial work is added * to each of those routes adds/deletes - not a situation we want. @@ -1328,7 +1321,10 @@ fib_path_list_child_add (fib_node_index_t path_list_index, fib_walk_sync(FIB_NODE_TYPE_PATH_LIST, path_list_index, &ctx); } - return (sibling); + return (fib_node_child_add(FIB_NODE_TYPE_PATH_LIST, + path_list_index, + child_type, + child_index)); } void