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

Reply via email to