X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Fnsh%2Fnsh_pop.c;h=46b3521ab327a9cd6bfa5761d8212d2cffacea70;hb=f2984bbb0;hp=cd25bb9e3f7b124754bd45c3df8a531846129cb0;hpb=d313f9e6f7c6d50aac189668a67bf13b86dd791c;p=vpp.git diff --git a/src/plugins/nsh/nsh_pop.c b/src/plugins/nsh/nsh_pop.c index cd25bb9e3f7..46b3521ab32 100644 --- a/src/plugins/nsh/nsh_pop.c +++ b/src/plugins/nsh/nsh_pop.c @@ -18,7 +18,7 @@ #include #include #include -#include +#include #include #include #include @@ -30,20 +30,8 @@ extern nsh_option_map_t * nsh_md2_lookup_option (u16 class, u8 type); extern u8 * format_nsh_header (u8 * s, va_list * args); extern u8 * format_nsh_node_map_trace (u8 * s, va_list * args); - -/* format from network order */ -u8 * format_nsh_pop_header (u8 * s, va_list * args) -{ - return format_nsh_header(s, args); -} - - - -u8 * format_nsh_pop_node_map_trace (u8 * s, va_list * args) -{ - return format_nsh_node_map_trace(s, args); -} - +extern u8 * format_nsh_pop_header (u8 * s, va_list * args); +extern u8 * format_nsh_pop_node_map_trace (u8 * s, va_list * args); static uword nsh_pop_inline (vlib_main_t * vm, @@ -162,7 +150,7 @@ nsh_pop_inline (vlib_main_t * vm, if (PREDICT_FALSE(b0->flags & VLIB_BUFFER_IS_TRACED)) { nsh_input_trace_t *tr = vlib_add_trace(vm, node, b0, sizeof(*tr)); - clib_memcpy ( &(tr->trace_data), hdr0, (hdr0->length*4) ); + clib_memcpy_fast ( &(tr->trace_data), hdr0, (hdr0->length*4) ); } /* Process packet 1 */ @@ -216,7 +204,7 @@ nsh_pop_inline (vlib_main_t * vm, if (PREDICT_FALSE(b1->flags & VLIB_BUFFER_IS_TRACED)) { nsh_input_trace_t *tr = vlib_add_trace(vm, node, b1, sizeof(*tr)); - clib_memcpy ( &(tr->trace_data), hdr1, (hdr1->length*4) ); + clib_memcpy_fast ( &(tr->trace_data), hdr1, (hdr1->length*4) ); } vlib_validate_buffer_enqueue_x2(vm, node, next_index, to_next, @@ -301,7 +289,7 @@ nsh_pop_inline (vlib_main_t * vm, if (PREDICT_FALSE(b0->flags & VLIB_BUFFER_IS_TRACED)) { nsh_input_trace_t *tr = vlib_add_trace(vm, node, b0, sizeof(*tr)); - clib_memcpy ( &(tr->trace_data[0]), hdr0, (hdr0->length*4) ); + clib_memcpy_fast ( &(tr->trace_data[0]), hdr0, (hdr0->length*4) ); } vlib_validate_buffer_enqueue_x1(vm, node, next_index, to_next, @@ -326,8 +314,7 @@ nsh_pop_inline (vlib_main_t * vm, * @return from_frame->n_vectors * */ -static uword -nsh_pop (vlib_main_t * vm, vlib_node_runtime_t * node, +VLIB_NODE_FN (nsh_pop_node) (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_frame_t * from_frame) { return nsh_pop_inline (vm, node, from_frame); @@ -341,7 +328,6 @@ static char * nsh_pop_node_error_strings[] = { /* register nsh-input node */ VLIB_REGISTER_NODE (nsh_pop_node) = { - .function = nsh_pop, .name = "nsh-pop", .vector_size = sizeof (u32), .format_trace = format_nsh_pop_node_map_trace, @@ -360,6 +346,3 @@ VLIB_REGISTER_NODE (nsh_pop_node) = { }, }; -VLIB_NODE_FUNCTION_MULTIARCH (nsh_pop_node, nsh_pop); - -