X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fadj%2Fadj.c;h=a603925e9057e3495e9ddca53d7ad9dcde6e5cdb;hb=9534696b4637185c9f296375e63c50d8976d153d;hp=9d18dbf2727b17849ecb3ce94cb41bf17985eb1e;hpb=4c3ba81709bab8f9fcdef650e7f742fe9ddbae32;p=vpp.git diff --git a/src/vnet/adj/adj.c b/src/vnet/adj/adj.c index 9d18dbf2727..a603925e905 100644 --- a/src/vnet/adj/adj.c +++ b/src/vnet/adj/adj.c @@ -139,6 +139,10 @@ format_ip_adjacency (u8 * s, va_list * args) adj_index = va_arg (*args, u32); fiaf = va_arg (*args, format_ip_adjacency_flags_t); + + if (!adj_is_valid(adj_index)) + return format(s, ""); + adj = adj_get(adj_index); switch (adj->lookup_next_index) @@ -179,7 +183,7 @@ format_ip_adjacency (u8 * s, va_list * args) s = format (s, "\n counts:[%Ld:%Ld]", counts.packets, counts.bytes); s = format (s, "\n locks:%d", adj->ia_node.fn_locks); s = format(s, "\n delegates:\n "); - adj_delegate_format(s, adj); + s = adj_delegate_format(s, adj); s = format(s, "\n children:"); if (fib_node_list_get_size(adj->ia_node.fn_children)) @@ -213,7 +217,7 @@ adj_recursive_loop_detect (adj_index_t ai, case IP_LOOKUP_NEXT_ICMP_ERROR: case IP_LOOKUP_N_NEXT: /* - * these adjcencey types are terminal graph nodes, so there's no + * these adjacency types are terminal graph nodes, so there's no * possibility of a loop down here. */ break; @@ -365,7 +369,7 @@ adj_child_remove (adj_index_t adj_index, } /* - * Context for the walk to update the cached feture flags. + * Context for the walk to update the cached feature flags. */ typedef struct adj_feature_update_t_ { @@ -401,10 +405,11 @@ adj_feature_update_walk_cb (adj_index_t ai, return (ADJ_WALK_RC_CONTINUE); } -void +static void adj_feature_update (u32 sw_if_index, u8 arc_index, - u8 is_enable) + u8 is_enable, + void *data) { /* * Walk all the adjacencies on the interface to update the cached @@ -586,6 +591,8 @@ adj_module_init (vlib_main_t * vm) adj_midchain_module_init(); adj_mcast_module_init(); + vnet_feature_register(adj_feature_update, NULL); + return (NULL); } @@ -715,8 +722,8 @@ adj_cli_counters_set (vlib_main_t * vm, } /*? - * Enabe/disble per-adjacency counters. This is optional because it comes with - * a non-negligible performance cost. + * Enable/disable per-adjacency counters. This is optional because it comes + * with a non-negligible performance cost. ?*/ VLIB_CLI_COMMAND (adj_cli_counters_set_command, static) = { .path = "adjacency counters",