/* Update packet buffer attributes/set output interface. */
rw_len0 = adj0[0].rewrite_header.data_bytes;
rw_len1 = adj1[0].rewrite_header.data_bytes;
+ vnet_buffer (p0)->mpls.save_rewrite_length = rw_len0;
+ vnet_buffer (p1)->mpls.save_rewrite_length = rw_len1;
/* Bump the adj counters for packet and bytes */
vlib_increment_combined_counter
/* Update packet buffer attributes/set output interface. */
rw_len0 = adj0[0].rewrite_header.data_bytes;
-
+ vnet_buffer (p0)->mpls.save_rewrite_length = rw_len0;
+
vlib_increment_combined_counter
(&adjacency_counters,
thread_index,
#undef mpls_error
};
-static inline uword
-mpls_output (vlib_main_t * vm,
+VLIB_NODE_FN (mpls_output_node) (vlib_main_t * vm,
vlib_node_runtime_t * node,
vlib_frame_t * from_frame)
{
}
VLIB_REGISTER_NODE (mpls_output_node) = {
- .function = mpls_output,
.name = "mpls-output",
/* Takes a vector of packets. */
.vector_size = sizeof (u32),
.format_trace = format_mpls_output_trace,
};
-VLIB_NODE_FUNCTION_MULTIARCH (mpls_output_node, mpls_output)
-
-static inline uword
-mpls_midchain (vlib_main_t * vm,
+VLIB_NODE_FN (mpls_midchain_node) (vlib_main_t * vm,
vlib_node_runtime_t * node,
vlib_frame_t * from_frame)
{
}
VLIB_REGISTER_NODE (mpls_midchain_node) = {
- .function = mpls_midchain,
.name = "mpls-midchain",
.vector_size = sizeof (u32),
.sibling_of = "mpls-output",
};
-VLIB_NODE_FUNCTION_MULTIARCH (mpls_midchain_node, mpls_midchain)
-
/**
* @brief Next index values from the MPLS incomplete adj node
*/
* We pay a cost for this 'routing' node, but an incomplete adj is the
* exception case.
*/
-static inline uword
-mpls_adj_incomplete (vlib_main_t * vm,
+VLIB_NODE_FN (mpls_adj_incomplete_node) (vlib_main_t * vm,
vlib_node_runtime_t * node,
vlib_frame_t * from_frame)
{
}
VLIB_REGISTER_NODE (mpls_adj_incomplete_node) = {
- .function = mpls_adj_incomplete,
.name = "mpls-adj-incomplete",
.format_trace = format_mpls_adj_incomplete_trace,
/* Takes a vector of packets. */
},
};
-VLIB_NODE_FUNCTION_MULTIARCH (mpls_adj_incomplete_node,
- mpls_adj_incomplete)