X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fadj%2Fadj_nbr.c;h=ddacb030f1d9ba882e95600d287a2cd3aff668cd;hb=fa5d19829759cef45cc34efe844d9471f5a1fc61;hp=61b5c83053b851ce63fd26e0474fd5aa9279f80d;hpb=17f5f6097a1a613aceaa27912d6afb7f9249eaa2;p=vpp.git diff --git a/src/vnet/adj/adj_nbr.c b/src/vnet/adj/adj_nbr.c index 61b5c83053b..ddacb030f1d 100644 --- a/src/vnet/adj/adj_nbr.c +++ b/src/vnet/adj/adj_nbr.c @@ -162,13 +162,12 @@ adj_nbr_evaluate_feature (adj_index_t ai) } sw_if_index = adj->rewrite_header.sw_if_index; - vec_validate (fm->feature_count_by_sw_if_index[arc_index], sw_if_index); - feature_count = fm->feature_count_by_sw_if_index[arc_index][sw_if_index]; - - if (feature_count > 0) - adj->rewrite_header.flags |= VNET_REWRITE_HAS_FEATURES; - else - adj->rewrite_header.flags &= ~VNET_REWRITE_HAS_FEATURES; + if (vec_len(fm->feature_count_by_sw_if_index[arc_index]) > sw_if_index) + { + feature_count = fm->feature_count_by_sw_if_index[arc_index][sw_if_index]; + if (feature_count > 0) + adj->rewrite_header.flags |= VNET_REWRITE_HAS_FEATURES; + } return; } @@ -334,7 +333,7 @@ adj_nbr_update_rewrite (adj_index_t adj_index, */ void adj_nbr_update_rewrite_internal (ip_adjacency_t *adj, - u32 adj_next_index, + ip_lookup_next_t adj_next_index, u32 this_node, u32 next_node, u8 *rewrite) @@ -368,7 +367,7 @@ adj_nbr_update_rewrite_internal (ip_adjacency_t *adj, if (ADJ_INDEX_INVALID != walk_ai) { walk_adj = adj_get(walk_ai); - if (IP_ADJ_SYNC_WALK_ACTIVE & walk_adj->ia_flags) + if (ADJ_FLAG_SYNC_WALK_ACTIVE & walk_adj->ia_flags) { do_walk = 0; } @@ -377,7 +376,7 @@ adj_nbr_update_rewrite_internal (ip_adjacency_t *adj, /* * Prevent re-entrant walk of the same adj */ - walk_adj->ia_flags |= IP_ADJ_SYNC_WALK_ACTIVE; + walk_adj->ia_flags |= ADJ_FLAG_SYNC_WALK_ACTIVE; do_walk = 1; } } @@ -503,7 +502,7 @@ adj_nbr_update_rewrite_internal (ip_adjacency_t *adj, */ if (do_walk) { - walk_adj->ia_flags &= ~IP_ADJ_SYNC_WALK_ACTIVE; + walk_adj->ia_flags &= ~ADJ_FLAG_SYNC_WALK_ACTIVE; } adj_unlock(adj_get_index(adj));