From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Cc: Stephen Hemminger <stephen@networkplumber.org>
Subject: [RFC 0/4] alternative capture mechanism
Date: Tue, 9 Jun 2026 14:02:01 -0700 [thread overview]
Message-ID: <20260609210540.768074-1-stephen@networkplumber.org> (raw)
This is an RFC for an alternative way to capture packets from a DPDK
application. I did brief demo of similar mechanism at DPDK summit but
this is more complete. Capture runs in the primary process and is driven
entirely over telemetry; no secondary process is involved.
A client asks the application to start capturing and passes it a file
descriptor to write to. The application writes pcapng to that descriptor.
A Wireshark extcap script is the intended front end, but the control path
is just telemetry and the output is just a pipe, so other front ends are
possible.
1/4 telemetry: let a command receive file descriptors from the client
2/4 capture: the library
3/4 test: functional test
4/4 app: the Wireshark extcap script and its documentation
Setup and usage are in doc/guides/tools/wireshark_extcap.rst.
Primary process only for now; secondary-process capture is possible as
follow-on. Posting as RFC to get feedback on the approach.
The extcap script is dual licensed (BSD-3-Clause OR GPL-2.0-or-later) as
it may be more useful in the Wireshark tree.
Stephen Hemminger (4):
telemetry: allow commands to receive file descriptors
capture: infrastructure wireshark packet capture
test: add test for capture hooks
usertools/dpdk-wireshark-extcap.py: script for external capture
MAINTAINERS | 4 +
app/test/meson.build | 1 +
app/test/test_capture.c | 365 +++++++++++
doc/guides/rel_notes/release_26_07.rst | 12 +
doc/guides/tools/index.rst | 1 +
doc/guides/tools/wireshark_extcap.rst | 155 +++++
lib/capture/capture.c | 821 +++++++++++++++++++++++++
lib/capture/capture_impl.h | 56 ++
lib/capture/filter.c | 108 ++++
lib/capture/meson.build | 19 +
lib/meson.build | 1 +
lib/telemetry/rte_telemetry.h | 66 ++
lib/telemetry/telemetry.c | 115 +++-
usertools/dpdk-wireshark-extcap.py | 274 +++++++++
14 files changed, 1986 insertions(+), 12 deletions(-)
create mode 100644 app/test/test_capture.c
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
next reply other threads:[~2026-06-09 21:05 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-09 21:02 Stephen Hemminger [this message]
2026-06-09 21:02 ` [RFC 1/4] telemetry: allow commands to receive file descriptors Stephen Hemminger
2026-06-16 12:32 ` Bruce Richardson
2026-06-16 14:26 ` Stephen Hemminger
2026-06-09 21:02 ` [RFC 2/4] capture: infrastructure wireshark packet capture Stephen Hemminger
2026-06-09 21:02 ` [RFC 3/4] test: add test for capture hooks Stephen Hemminger
2026-06-09 21:02 ` [RFC 4/4] usertools/dpdk-wireshark-extcap.py: script for external capture Stephen Hemminger
2026-06-16 12:37 ` [RFC 0/4] alternative capture mechanism Bruce Richardson
2026-06-16 14:28 ` Stephen Hemminger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260609210540.768074-1-stephen@networkplumber.org \
--to=stephen@networkplumber.org \
--cc=dev@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.