diff options
author | Dave Barach <dave@barachs.net> | 2020-01-27 09:56:58 -0500 |
---|---|---|
committer | Andrew Yourtchenko <ayourtch@gmail.com> | 2020-08-12 15:59:46 +0000 |
commit | 5c3aab42120cdeaf5513a8344d0af0630342b1bb (patch) | |
tree | f22da31ca0e76262160bf56f03fb1e7ae58e8cf4 | |
parent | b29ebcad592a0835324728e49f329e01904b6900 (diff) |
classify: pcap / packet trace debug CLI bugs
"classify filter trace ... " and "classify filter pcap ..." are
mutually exclusive.
vnet_pcap_dispatch_trace_configure needs to check for
set->table_indices == NULL.
Type: fix
Ticket: VPP-1827
Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I43733364087ffb0a43de92e450955033431d559d
(cherry picked from commit 196fce2b62c0d215722dd233aa8bf70a43aa0a66)
-rw-r--r-- | extras/pcapcli/setup.tracefilter | 4 | ||||
-rwxr-xr-x | src/vnet/classify/vnet_classify.c | 4 | ||||
-rw-r--r-- | src/vnet/interface_cli.c | 2 |
3 files changed, 8 insertions, 2 deletions
diff --git a/extras/pcapcli/setup.tracefilter b/extras/pcapcli/setup.tracefilter index e6c86298c84..db07a0e4224 100644 --- a/extras/pcapcli/setup.tracefilter +++ b/extras/pcapcli/setup.tracefilter @@ -17,4 +17,6 @@ packet-generator new { } } -classify filter trace mask l3 ip4 src match l3 ip4 src 192.168.1.15 +comment { Pick one, uncomment, and "pcap rx ..." or "trace add pg-input ..." } +comment { classify filter trace mask l3 ip4 src match l3 ip4 src 192.168.1.15 } +comment { classify filter pcap mask l3 ip4 src match l3 ip4 src 192.168.1.15 } diff --git a/src/vnet/classify/vnet_classify.c b/src/vnet/classify/vnet_classify.c index e8103a92b72..d97042eda36 100755 --- a/src/vnet/classify/vnet_classify.c +++ b/src/vnet/classify/vnet_classify.c @@ -1744,6 +1744,10 @@ classify_filter_command_fn (vlib_main_t * vm, if (sw_if_index == ~0 && pkt_trace == 0 && pcap == 0) return clib_error_return (0, "Must specify trace, pcap or interface..."); + if (pkt_trace && pcap) + return clib_error_return + (0, "Packet trace and pcap are mutually exclusive..."); + if (pkt_trace && sw_if_index != ~0) return clib_error_return (0, "Packet trace filter is per-system"); diff --git a/src/vnet/interface_cli.c b/src/vnet/interface_cli.c index 65783b6e7d4..6c4df198548 100644 --- a/src/vnet/interface_cli.c +++ b/src/vnet/interface_cli.c @@ -1777,7 +1777,7 @@ vnet_pcap_dispatch_trace_configure (vnet_pcap_dispatch_trace_args_t * a) /* Classify filter specified, but no classify filter configured */ if ((a->rx_enable + a->tx_enable + a->drop_enable) && a->filter && - (set->table_indices[0] == ~0)) + (set->table_indices == 0 || set->table_indices[0] == ~0)) return VNET_API_ERROR_NO_SUCH_LABEL; if (a->rx_enable + a->tx_enable + a->drop_enable) |