[PATCH v3 0/4] Wireshark external capture
Stephen Hemminger
stephen at networkplumber.org
Thu Jul 30 20:22:53 CEST 2026
This series adds live packet capture from a running DPDK primary over the
telemetry socket. A new capture library installs Rx/Tx callbacks on an
ethdev port and writes pcapng to a caller-supplied path or FIFO, with an
optional libpcap filter and per-queue selection.
Advantages of this:
- no primary/secondary needed; works on Linux and FreeBSD.
can also work on Windows with pcap support.
- installation is just putting script in Wireshark directory.
- script has no dependency on DPDK libraries; can be packaged with Wireshark.
- allows for live capture
- supports BPF (with JIT) for filtering
How it works:
- The capture library registers telemetry commands (/ethdev/capture/*)
- Callbacks are installed on the specified port/queues to copy packets
- Packets are formatted as pcapng and written to the specified output
- No packet data passes through the telemetry socket itself
The pcapng statistics interface has been extended to include the
filter-accepted packet count, which was previously missing.
Testing:
- Run: dpdk-wireshark-extcap.py --extcap-interfaces to list available ports
- The script should be installed in Wireshark's extcap directory for GUI integration
- Comprehensive unit tests are included in app/test/test_capture.c
- Tested on Linux and FreeBSD
v3 - fixed AI review feedback
Stephen Hemminger (4):
pcapng: extend interface statistics
capture: infrastructure wireshark packet capture
test: add test for capture hooks
usertools: add script for wireshark capture
MAINTAINERS | 4 +
app/dumpcap/main.c | 16 +-
app/test/meson.build | 1 +
app/test/test_capture.c | 660 +++++++++++++
app/test/test_pcapng.c | 10 +-
doc/guides/prog_guide/capture_lib.rst | 168 ++++
doc/guides/prog_guide/index.rst | 1 +
doc/guides/rel_notes/release_26_11.rst | 14 +
doc/guides/tools/index.rst | 1 +
doc/guides/tools/wireshark_extcap.rst | 144 +++
lib/capture/capture.c | 1202 ++++++++++++++++++++++++
lib/capture/capture_impl.h | 56 ++
lib/capture/filter.c | 110 +++
lib/capture/meson.build | 19 +
lib/meson.build | 1 +
lib/pcapng/rte_pcapng.c | 50 +-
lib/pcapng/rte_pcapng.h | 33 +-
usertools/dpdk-wireshark-extcap.py | 416 ++++++++
usertools/meson.build | 1 +
19 files changed, 2874 insertions(+), 33 deletions(-)
create mode 100644 app/test/test_capture.c
create mode 100644 doc/guides/prog_guide/capture_lib.rst
create mode 100644 doc/guides/tools/wireshark_extcap.rst
create mode 100644 lib/capture/capture.c
create mode 100644 lib/capture/capture_impl.h
create mode 100644 lib/capture/filter.c
create mode 100644 lib/capture/meson.build
create mode 100755 usertools/dpdk-wireshark-extcap.py
--
2.53.0
More information about the dev
mailing list