diff options
Diffstat (limited to 'src/vlib/trace.c')
-rw-r--r-- | src/vlib/trace.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/vlib/trace.c b/src/vlib/trace.c index 70621135c68..530598d349d 100644 --- a/src/vlib/trace.c +++ b/src/vlib/trace.c @@ -357,6 +357,7 @@ cli_add_trace_buffer (vlib_main_t * vm, { unformat_input_t _line_input, *line_input = &_line_input; vlib_trace_main_t *tm; + vlib_node_t *node; vlib_trace_node_t *tn; u32 node_index, add; u8 verbose = 0; @@ -383,6 +384,17 @@ cli_add_trace_buffer (vlib_main_t * vm, } } + node = vlib_get_node (vm, node_index); + + if ((node->flags & VLIB_NODE_FLAG_TRACE_SUPPORTED) == 0) + { + error = clib_error_create ("node '%U' doesn't support per-node " + "tracing. There may be another way to " + "initiate trace on this node.", + format_vlib_node_name, vm, node_index); + goto done; + } + /* *INDENT-OFF* */ foreach_vlib_main (( { |