misc: classifier-based packet trace filter 59/22059/9
authorDave Barach <dave@barachs.net>
Fri, 13 Sep 2019 21:47:50 +0000 (17:47 -0400)
committerFlorin Coras <florin.coras@gmail.com>
Fri, 20 Sep 2019 15:55:25 +0000 (15:55 +0000)
commit9137e5400699bed9f7c0095187839a8b38273100
treeb4f0b34583c8e4add09b34e8a4c52a5606b2dc55
parent864d857c6c223be8ec11c588d65e8c5c2e211814
misc: classifier-based packet trace filter

See .../src/vnet/classify/trace_classify.h for the business end
of the scheme.

It would be best to hash pkts, prefetch buckets, and do the primary
table lookups two at a time. The inline as given works, but perf
tuning will be required. "At least it works..."

Add "classify filter" debug cli, for example:
classify filter mask l3 ip4 src dst \
  match l3 ip4 dst 192.168.2.10 src 192.168.1.10

Add "pcap rx | tx trace ... filter" to use the current classify filter chain

Patch includes sphinx documentation and doxygen tags.

Next step: device-driver integration

Type: feature

Signed-off-by: Dave Barach <dave@barachs.net>
Change-Id: I05b1358a769f61e6d32470e0c87058f640486b26
docs/gettingstarted/developers/vnet.md
src/vlib/main.h
src/vnet/CMakeLists.txt
src/vnet/classify/trace_classify.h [new file with mode: 0644]
src/vnet/classify/vnet_classify.c
src/vnet/ethernet/node.c
src/vnet/interface.h
src/vnet/interface_cli.c
src/vnet/interface_output.c
src/vnet/vnet.h