mdd = mpls_disp_dpo_get(index);
- s = format(s, "mpls-disposition:[%d]:[%U, %U]",
- index,
+ s = format(s, "mpls-disposition:[%d]:[", index);
+
+ if (0 != mdd->mdd_rpf_id)
+ s = format(s, "rpf-id:%d ", mdd->mdd_rpf_id);
+
+ s = format(s, "%U, %U]",
format_dpo_proto, mdd->mdd_payload_proto,
format_fib_mpls_lsp_mode, mdd->mdd_mode);
*/
typedef struct mpls_label_disposition_trace_t_
{
- index_t mdd;
+ dpo_proto_t mddt_payload_proto;
+ fib_rpf_id_t mddt_rpf_id;
+ fib_mpls_lsp_mode_t mddt_mode;
} mpls_label_disposition_trace_t;
extern vlib_node_registration_t ip4_mpls_label_disposition_pipe_node;
mpls_label_disposition_trace_t *tr =
vlib_add_trace(vm, node, b0, sizeof(*tr));
- tr->mdd = mddi0;
+ tr->mddt_payload_proto = mdd0->mdd_payload_proto;
+ tr->mddt_rpf_id = mdd0->mdd_rpf_id;
+ tr->mddt_mode = mdd0->mdd_mode;
}
if (PREDICT_FALSE(b1->flags & VLIB_BUFFER_IS_TRACED))
{
mpls_label_disposition_trace_t *tr =
vlib_add_trace(vm, node, b1, sizeof(*tr));
- tr->mdd = mddi1;
+ tr->mddt_payload_proto = mdd1->mdd_payload_proto;
+ tr->mddt_rpf_id = mdd1->mdd_rpf_id;
+ tr->mddt_mode = mdd1->mdd_mode;
}
vlib_validate_buffer_enqueue_x2(vm, node, next_index, to_next,
{
mpls_label_disposition_trace_t *tr =
vlib_add_trace(vm, node, b0, sizeof(*tr));
- tr->mdd = mddi0;
+ tr->mddt_payload_proto = mdd0->mdd_payload_proto;
+ tr->mddt_rpf_id = mdd0->mdd_rpf_id;
+ tr->mddt_mode = mdd0->mdd_mode;
}
vlib_validate_buffer_enqueue_x1(vm, node, next_index, to_next,
t = va_arg(*args, mpls_label_disposition_trace_t *);
- s = format(s, "disp:%d", t->mdd);
+ s = format(s, "rpf-id:%d %U, %U",
+ t->mddt_rpf_id,
+ format_dpo_proto, t->mddt_payload_proto,
+ format_fib_mpls_lsp_mode, t->mddt_mode);
+
return (s);
}
FIB_MPLS_LSP_MODE_PIPE));
}
-VLIB_REGISTER_NODE(ip4_mpls_label_disposition_pipe_node) = {
- .name = "ip4-mpls-label-disposition-pipe",
- .vector_size = sizeof(u32),
+VLIB_REGISTER_NODE (ip4_mpls_label_disposition_pipe_node) = {
+ .name = "ip4-mpls-label-disposition-pipe",
+ .vector_size = sizeof (u32),
- .format_trace = format_mpls_label_disposition_trace,
- .sibling_of = "ip4-input",
- .n_errors = IP4_N_ERROR,
- .error_strings = ip4_error_strings,
+ .format_trace = format_mpls_label_disposition_trace,
+ .sibling_of = "ip4-input",
+ .n_errors = IP4_N_ERROR,
+ .error_counters = ip4_error_counters,
};
VLIB_NODE_FN (ip6_mpls_label_disposition_pipe_node) (vlib_main_t * vm,
FIB_MPLS_LSP_MODE_PIPE));
}
-VLIB_REGISTER_NODE(ip6_mpls_label_disposition_pipe_node) = {
- .name = "ip6-mpls-label-disposition-pipe",
- .vector_size = sizeof(u32),
+VLIB_REGISTER_NODE (ip6_mpls_label_disposition_pipe_node) = {
+ .name = "ip6-mpls-label-disposition-pipe",
+ .vector_size = sizeof (u32),
- .format_trace = format_mpls_label_disposition_trace,
- .sibling_of = "ip6-input",
- .n_errors = IP6_N_ERROR,
- .error_strings = ip6_error_strings,
+ .format_trace = format_mpls_label_disposition_trace,
+ .sibling_of = "ip6-input",
+ .n_errors = IP6_N_ERROR,
+ .error_counters = ip6_error_counters,
};
VLIB_NODE_FN (ip4_mpls_label_disposition_uniform_node) (vlib_main_t * vm,
FIB_MPLS_LSP_MODE_UNIFORM));
}
-VLIB_REGISTER_NODE(ip4_mpls_label_disposition_uniform_node) = {
- .name = "ip4-mpls-label-disposition-uniform",
- .vector_size = sizeof(u32),
+VLIB_REGISTER_NODE (ip4_mpls_label_disposition_uniform_node) = {
+ .name = "ip4-mpls-label-disposition-uniform",
+ .vector_size = sizeof (u32),
- .format_trace = format_mpls_label_disposition_trace,
- .sibling_of = "ip4-input",
- .n_errors = IP4_N_ERROR,
- .error_strings = ip4_error_strings,
+ .format_trace = format_mpls_label_disposition_trace,
+ .sibling_of = "ip4-input",
+ .n_errors = IP4_N_ERROR,
+ .error_counters = ip4_error_counters,
};
VLIB_NODE_FN (ip6_mpls_label_disposition_uniform_node) (vlib_main_t * vm,
FIB_MPLS_LSP_MODE_UNIFORM));
}
-VLIB_REGISTER_NODE(ip6_mpls_label_disposition_uniform_node) = {
- .name = "ip6-mpls-label-disposition-uniform",
- .vector_size = sizeof(u32),
+VLIB_REGISTER_NODE (ip6_mpls_label_disposition_uniform_node) = {
+ .name = "ip6-mpls-label-disposition-uniform",
+ .vector_size = sizeof (u32),
- .format_trace = format_mpls_label_disposition_trace,
- .sibling_of = "ip6-input",
- .n_errors = IP6_N_ERROR,
- .error_strings = ip6_error_strings,
+ .format_trace = format_mpls_label_disposition_trace,
+ .sibling_of = "ip6-input",
+ .n_errors = IP6_N_ERROR,
+ .error_counters = ip6_error_counters,
};
#ifndef CLIB_MARCH_VARIANT