diff options
author | Mohammed Hawari <mohammed@hawari.fr> | 2023-12-08 11:16:54 +0100 |
---|---|---|
committer | Damjan Marion <dmarion@0xa5.net> | 2023-12-14 16:29:53 +0000 |
commit | bc67e9fd206ef3d6234960a61a7f9ab56a938ef2 (patch) | |
tree | e98ab163c36985f200dd2ac30b570e32c60e81c2 | |
parent | a474bc8a3b4307869e97e6d76a8b06cfcebea49a (diff) |
bpf_trace_filter: allow use whithout classifier
Change-Id: I7ac5693ca547fe7249e7b6297bade70a6052b169
Type: improvement
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
-rw-r--r-- | src/plugins/bpf_trace_filter/bpf_trace_filter.c | 4 | ||||
-rw-r--r-- | src/vlib/trace.c | 7 | ||||
-rw-r--r-- | src/vnet/classify/trace_classify.h | 3 |
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; |