mbox series

[v3,0/8] Packet capture framework enhancements

Message ID 20210908045052.123849-1-stephen@networkplumber.org (mailing list archive)
Headers show
Series Packet capture framework enhancements | expand

Message

Stephen Hemminger Sept. 8, 2021, 4:50 a.m. UTC
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

It preserves the old pdump command as is for those people
who never want to change.

v3 changes:
  - 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

Stephen Hemminger (8):
  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
  doc: changes for new pcapng and dumpcap
  MAINTAINERS: add entry for new pcapng and dumper

 MAINTAINERS                                   |   6 +
 app/dumpcap/main.c                            | 832 ++++++++++++++++++
 app/dumpcap/meson.build                       |  16 +
 app/meson.build                               |   1 +
 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                         | 580 ++++++++++++
 lib/bpf/bpf_dump.c                            | 118 +++
 lib/bpf/bpf_validate.c                        |   8 +-
 lib/bpf/meson.build                           |   6 +
 lib/bpf/rte_bpf.h                             |  39 +
 lib/bpf/version.map                           |   7 +
 lib/meson.build                               |   5 +-
 lib/pcapng/meson.build                        |   8 +
 lib/pcapng/pcapng_proto.h                     | 129 +++
 lib/pcapng/rte_pcapng.c                       | 574 ++++++++++++
 lib/pcapng/rte_pcapng.h                       | 194 ++++
 lib/pcapng/version.map                        |  12 +
 lib/pdump/meson.build                         |   2 +-
 lib/pdump/rte_pdump.c                         | 437 ++++++---
 lib/pdump/rte_pdump.h                         | 110 ++-
 lib/pdump/version.map                         |   8 +
 30 files changed, 3192 insertions(+), 215 deletions(-)
 create mode 100644 app/dumpcap/main.c
 create mode 100644 app/dumpcap/meson.build
 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