X-Git-Url: https://gerrit.fd.io/r/gitweb?p=vpp.git;a=blobdiff_plain;f=src%2Fvnet%2Fdpo%2Fmpls_disposition.c;h=7bc2cb65f87d475de22536799f04ac760818952e;hp=cf0b5fcf1ef3df85a1791cc13c450a4b113d6671;hb=097fa66b9;hpb=39baa32186fd3e4b20d9f58afbbfe7b8daebed62 diff --git a/src/vnet/dpo/mpls_disposition.c b/src/vnet/dpo/mpls_disposition.c index cf0b5fcf1ef..7bc2cb65f87 100644 --- a/src/vnet/dpo/mpls_disposition.c +++ b/src/vnet/dpo/mpls_disposition.c @@ -88,8 +88,12 @@ format_mpls_disp_dpo (u8 *s, va_list *args) 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); @@ -132,7 +136,9 @@ mpls_disp_dpo_unlock (dpo_id_t *dpo) */ 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; @@ -293,13 +299,17 @@ mpls_label_disposition_inline (vlib_main_t * vm, 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, @@ -383,7 +393,9 @@ mpls_label_disposition_inline (vlib_main_t * vm, { 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, @@ -403,7 +415,11 @@ format_mpls_label_disposition_trace (u8 * s, va_list * args) 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); }