X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fadj%2Fadj_nsh.c;h=19851b13b24e548845bea02d5095a77400b67aa7;hb=7dbf9a1a4fff5c3b20ad972289e49e3f88e82f2d;hp=9a0f9d8b9d65c122ce9acd9815efd9d7d3101061;hpb=ce1b4c7f05ce28d7b73eb7ed0a8ea4bd483f09e9;p=vpp.git diff --git a/src/vnet/adj/adj_nsh.c b/src/vnet/adj/adj_nsh.c index 9a0f9d8b9d6..19851b13b24 100644 --- a/src/vnet/adj/adj_nsh.c +++ b/src/vnet/adj/adj_nsh.c @@ -17,7 +17,9 @@ #include #include +#ifndef CLIB_MARCH_VARIANT nsh_main_dummy_t nsh_main_dummy; +#endif /* CLIB_MARCH_VARIANT */ /** * @brief Trace data for a NSH Midchain @@ -53,7 +55,7 @@ adj_nsh_rewrite_inline (vlib_main_t * vm, { u32 * from = vlib_frame_vector_args (frame); u32 n_left_from, n_left_to_next, * to_next, next_index; - u32 cpu_index = os_get_cpu_number(); + u32 thread_index = vlib_get_thread_index(); n_left_from = frame->n_vectors; next_index = node->cached_next_index; @@ -94,7 +96,7 @@ adj_nsh_rewrite_inline (vlib_main_t * vm, vnet_buffer(p0)->ip.save_rewrite_length = rw_len0; vlib_increment_combined_counter(&adjacency_counters, - cpu_index, + thread_index, adj_index0, /* packet increment */ 0, /* byte increment */ rw_len0); @@ -104,14 +106,16 @@ adj_nsh_rewrite_inline (vlib_main_t * vm, adj0[0].rewrite_header.max_l3_packet_bytes))) { /* Don't adjust the buffer for ttl issue; icmp-error node wants - * to see the IP headerr */ + * to see the IP header */ p0->current_data -= rw_len0; p0->current_length += rw_len0; tx_sw_if_index0 = adj0[0].rewrite_header.sw_if_index; if (is_midchain) { - adj0->sub_type.midchain.fixup_func(vm, adj0, p0); + adj0->sub_type.midchain.fixup_func( + vm, adj0, p0, + adj0->sub_type.midchain.fixup_data); } vnet_buffer (p0)->sw_if_index[VLIB_TX] = tx_sw_if_index0; @@ -147,16 +151,14 @@ adj_nsh_rewrite_inline (vlib_main_t * vm, return frame->n_vectors; } -static uword -adj_nsh_rewrite (vlib_main_t * vm, +VLIB_NODE_FN (adj_nsh_rewrite_node) (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_frame_t * frame) { return adj_nsh_rewrite_inline (vm, node, frame, 0); } -static uword -adj_nsh_midchain (vlib_main_t * vm, +VLIB_NODE_FN (adj_nsh_midchain_node) (vlib_main_t * vm, vlib_node_runtime_t * node, vlib_frame_t * frame) { @@ -164,7 +166,6 @@ adj_nsh_midchain (vlib_main_t * vm, } VLIB_REGISTER_NODE (adj_nsh_rewrite_node) = { - .function = adj_nsh_rewrite, .name = "adj-nsh-rewrite", .vector_size = sizeof (u32), @@ -176,10 +177,7 @@ VLIB_REGISTER_NODE (adj_nsh_rewrite_node) = { }, }; -VLIB_NODE_FUNCTION_MULTIARCH (adj_nsh_rewrite_node, adj_nsh_rewrite) - VLIB_REGISTER_NODE (adj_nsh_midchain_node) = { - .function = adj_nsh_midchain, .name = "adj-nsh-midchain", .vector_size = sizeof (u32), @@ -191,8 +189,6 @@ VLIB_REGISTER_NODE (adj_nsh_midchain_node) = { }, }; -VLIB_NODE_FUNCTION_MULTIARCH (adj_nsh_midchain_node, adj_nsh_midchain) - /* Built-in ip4 tx feature path definition */ /* *INDENT-OFF* */ VNET_FEATURE_ARC_INIT (nsh_output, static) =