last_next_node_index = next_node_index;
f = vlib_get_frame_to_node (vm, next_node_index);
+
+ /* frame->frame_flags, copy it from node */
+ /* Copy trace flag from next_frame and from runtime. */
+ f->frame_flags |= node->flags & VLIB_NODE_FLAG_TRACE;
+
to_next = vlib_frame_vector_args (f);
}
return from_frame->n_vectors;
}
-static uword
-ipsec4_output_node_fn (vlib_main_t * vm, vlib_node_runtime_t * node,
- vlib_frame_t * frame)
+VLIB_NODE_FN (ipsec4_output_node) (vlib_main_t * vm,
+ vlib_node_runtime_t * node,
+ vlib_frame_t * frame)
{
return ipsec_output_inline (vm, node, frame, 0);
}
/* *INDENT-OFF* */
-VLIB_REGISTER_NODE (ipsec4_output_node,static) = {
- .function = ipsec4_output_node_fn,
+VLIB_REGISTER_NODE (ipsec4_output_node) = {
.name = "ipsec4-output",
.vector_size = sizeof (u32),
.format_trace = format_ipsec_output_trace,
};
/* *INDENT-ON* */
-VLIB_NODE_FUNCTION_MULTIARCH (ipsec4_output_node, ipsec4_output_node_fn);
-
-static uword
-ipsec6_output_node_fn (vlib_main_t * vm, vlib_node_runtime_t * node,
- vlib_frame_t * frame)
+VLIB_NODE_FN (ipsec6_output_node) (vlib_main_t * vm,
+ vlib_node_runtime_t * node,
+ vlib_frame_t * frame)
{
return ipsec_output_inline (vm, node, frame, 1);
}
/* *INDENT-OFF* */
-VLIB_REGISTER_NODE (ipsec6_output_node,static) = {
- .function = ipsec6_output_node_fn,
+VLIB_REGISTER_NODE (ipsec6_output_node) = {
.name = "ipsec6-output",
.vector_size = sizeof (u32),
.format_trace = format_ipsec_output_trace,
};
/* *INDENT-ON* */
-VLIB_NODE_FUNCTION_MULTIARCH (ipsec6_output_node, ipsec6_output_node_fn);
#else /* IPSEC > 1 */
/* Dummy ipsec output node, in case when IPSec is disabled */