summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/bpf_trace_filter/bpf_trace_filter.c4
-rw-r--r--src/vlib/trace.c7
-rw-r--r--src/vnet/classify/trace_classify.h3
3 files changed, 5 insertions, 9 deletions
diff --git a/src/plugins/bpf_trace_filter/bpf_trace_filter.c b/src/plugins/bpf_trace_filter/bpf_trace_filter.c
index ff08d2cdb80..01d5b1e96a7 100644
--- a/src/plugins/bpf_trace_filter/bpf_trace_filter.c
+++ b/src/plugins/bpf_trace_filter/bpf_trace_filter.c
@@ -64,9 +64,9 @@ bpf_is_packed_traced (vlib_buffer_t *b, u32 classify_table_index, int func)
struct pcap_pkthdr phdr = { 0 };
int res;
int res1;
- res1 = vnet_is_packet_traced (b, classify_table_index, 0);
- if (res1 != 1)
+ if (classify_table_index != ~0 &&
+ (res1 = vnet_is_packet_traced (b, classify_table_index, 0)) != 1)
return res1;
if (!bfm->prog_set)
diff --git a/src/vlib/trace.c b/src/vlib/trace.c
index 96da4975bc2..15355572cb9 100644
--- a/src/vlib/trace.c
+++ b/src/vlib/trace.c
@@ -463,13 +463,6 @@ cli_add_trace_buffer (vlib_main_t * vm,
goto done;
}
- u32 filter_table = classify_get_trace_chain ();
- if (filter && filter_table == ~0)
- {
- error = clib_error_create ("No packet trace filter configured...");
- goto done;
- }
-
trace_update_capture_options (add, node_index, filter, verbose);
done:
diff --git a/src/vnet/classify/trace_classify.h b/src/vnet/classify/trace_classify.h
index fea4ddee7e7..03421210d03 100644
--- a/src/vnet/classify/trace_classify.h
+++ b/src/vnet/classify/trace_classify.h
@@ -45,6 +45,9 @@ vnet_is_packet_traced_inline (vlib_buffer_t * b,
if (func != 0)
return -1;
+ if (classify_table_index == ~0)
+ return -1;
+
/* This will happen... */
if (pool_is_free_index (vcm->tables, classify_table_index))
return -1;