fib: Add some path-list flags to its key
Type: fix Ticket: 1729 The flags that are permanently set on a path-list should form part of its key in the path-list DB. Otherwise, if shared, they will not behave as expected. Change-Id: I0aa7c7c5d270c97b08014e4a47ddbdcee2358706 Signed-off-by: Neale Ranns <nranns@cisco.com>
This commit is contained in:
@ -181,7 +181,10 @@ fib_path_list_hash (fib_path_list_t *path_list)
|
||||
|
||||
ASSERT(path_list);
|
||||
|
||||
new_path_list_hash = old_path_list_hash = vec_len(path_list->fpl_paths);
|
||||
new_path_list_hash =
|
||||
old_path_list_hash =
|
||||
(vec_len(path_list->fpl_paths) << 16 |
|
||||
(path_list->fpl_flags & FIB_PATH_LIST_KEY_FLAGS));
|
||||
|
||||
vec_foreach (path_index, path_list->fpl_paths)
|
||||
{
|
||||
|
@ -104,6 +104,13 @@ typedef enum fib_path_list_flags_t_ {
|
||||
_item <= FIB_PATH_LIST_ATTRIBUTE_LAST; \
|
||||
_item++)
|
||||
|
||||
/**
|
||||
* The flags on a path-list that contribute to its key in the DB.
|
||||
* So path-lists with these flags different are not conisdered the
|
||||
* same.
|
||||
*/
|
||||
#define FIB_PATH_LIST_KEY_FLAGS (FIB_PATH_LIST_FLAG_NO_URPF)
|
||||
|
||||
extern fib_node_index_t fib_path_list_create(fib_path_list_flags_t flags,
|
||||
const fib_route_path_t *paths);
|
||||
extern fib_node_index_t fib_path_list_create_special(dpo_proto_t nh_proto,
|
||||
|
Reference in New Issue
Block a user