[dpdk-dev] [PATCH v12 00/12] Packet capture framework update
Stephen Hemminger
stephen at networkplumber.org
Fri Oct 1 18:26:53 CEST 2021
This patch set is a more complete version of the the enhanced
packet capture support described last year.
The new capture library and utility are:
- faster avoids lots of extra I/O, does bursting, etc.
- gives more information (multiple ports, queues, etc)
- has a better user interface (same as Wireshark dumpcap)
- fixes structural problems with VLAN's and timestamps
There are no blocker items.
The following are worth noting:
* bogus checkpatch warnings
- the correct flag to open is O_CREAT
- intentionally keeping macro with goto since that
was in original code and is clearer
- the tempfile name can not be const since it is
overwritten by tmpfile() call
* enabling BPF tests causes CI to see a pre-existing bug
https://bugs.dpdk.org/show_bug.cgi?id=811
* future filtering for stripped VLAN tags needs collabration
with libpcap project to fix pcap_compile_filter().
v12
- fixes for capture offloaded VLAN tags.
look at direction flag and handle QinQ offload.
v11
- address review comments for pdump (patch 6)
v10:
- fix to rte_bpf_dump to handle more instructions
make sure all bpf_test cases are decoded
v9:
- incorporate suggested change to BPF XOR
- make autotest for pcapng more complete by reading the
resulting file with libpcap
v8:
- enable BPF tests in autotest
- add more BPF test strings
- use rte_strscpy to satisfy checkpatch
- merge MAINTAINERS (put this in with existing pdump)
v7:
- add functional tests for pcapng lib
- bug fix for error returns in pcapng lib
- handle long osname on FreeBSD
- resolve almost all checkpatch issues
v5:
- minor build and checkpatch fixes for RHEL/FreeBSD
- disable lib/pdump on Windows. It was not useful before
and now pdump depends on bpf.
v4:
- minor checkpatch fixes.
Note: some of the checkpatch warnings are bogus and won't be fixed.
- fix build of dumpcap on FreeBSD
v3:
- introduce packet filters using classic BPF to eBPF converter
required small fix to DPDK BPF interpreter
- introduce function to decode eBPF instructions
- add option to dumpcap to show both classic BPF and eBPF result
- drop some un-useful stubs
- minor checkpatch warning cleanup
v2:
fix formatting of packet blocks
fix the new packet capture statistics
fix crash when primary process exits
record start/end time
various whitespace/checkpatch warnings
Stephen Hemminger (12):
lib: pdump is not supported on Windows
librte_pcapng: add new library for writing pcapng files
bpf: allow self-xor operation
bpf: add function to convert classic BPF to DPDK BPF
bpf: add function to dump eBPF instructions
pdump: support pcapng and filtering
app/dumpcap: add new packet capture application
test: add test for bpf_convert
test: add a test for pcapng library
test: enable bpf autotest
doc: changes for new pcapng and dumpcap
MAINTAINERS: add entry for new packet capture features
MAINTAINERS | 11 +-
app/dumpcap/main.c | 844 ++++++++++++++++++
app/dumpcap/meson.build | 16 +
app/meson.build | 1 +
app/test/meson.build | 6 +
app/test/test_bpf.c | 200 +++++
app/test/test_pcapng.c | 272 ++++++
doc/api/doxy-api-index.md | 1 +
doc/api/doxy-api.conf.in | 1 +
.../howto/img/packet_capture_framework.svg | 96 +-
doc/guides/howto/packet_capture_framework.rst | 67 +-
doc/guides/prog_guide/index.rst | 1 +
doc/guides/prog_guide/pcapng_lib.rst | 24 +
doc/guides/prog_guide/pdump_lib.rst | 28 +-
doc/guides/rel_notes/release_21_11.rst | 10 +
doc/guides/tools/dumpcap.rst | 86 ++
doc/guides/tools/index.rst | 1 +
lib/bpf/bpf_convert.c | 575 ++++++++++++
lib/bpf/bpf_dump.c | 139 +++
lib/bpf/bpf_validate.c | 9 +-
lib/bpf/meson.build | 6 +
lib/bpf/rte_bpf.h | 39 +
lib/bpf/version.map | 7 +
lib/meson.build | 6 +-
lib/pcapng/meson.build | 8 +
lib/pcapng/pcapng_proto.h | 129 +++
lib/pcapng/rte_pcapng.c | 613 +++++++++++++
lib/pcapng/rte_pcapng.h | 194 ++++
lib/pcapng/version.map | 12 +
lib/pdump/meson.build | 2 +-
lib/pdump/rte_pdump.c | 427 ++++++---
lib/pdump/rte_pdump.h | 113 ++-
lib/pdump/version.map | 8 +
33 files changed, 3733 insertions(+), 219 deletions(-)
create mode 100644 app/dumpcap/main.c
create mode 100644 app/dumpcap/meson.build
create mode 100644 app/test/test_pcapng.c
create mode 100644 doc/guides/prog_guide/pcapng_lib.rst
create mode 100644 doc/guides/tools/dumpcap.rst
create mode 100644 lib/bpf/bpf_convert.c
create mode 100644 lib/bpf/bpf_dump.c
create mode 100644 lib/pcapng/meson.build
create mode 100644 lib/pcapng/pcapng_proto.h
create mode 100644 lib/pcapng/rte_pcapng.c
create mode 100644 lib/pcapng/rte_pcapng.h
create mode 100644 lib/pcapng/version.map
--
2.30.2
More information about the dev
mailing list