Re: [PATCH v25 00/24] net/pcap: bug fixes and new features

Stephen Hemminger
2026-04-30T17:10:24Z

On Sun, 19 Apr 2026 09:09:33 -0700
Stephen Hemminger <stephen@networkplumber.org> wrote:

> This series contains improvements to the PCAP PMD including new
> features, bug fixes, code cleanup, and a comprehensive test suite.
>
> New features:
> - Nanosecond precision timestamps (when libpcap supports it)
> - VLAN tag support
> - Link state reporting in interface mode
> - Link status change (LSC) interrupt support in interface mode
> - EOF notification via link status change for rx_pcap mode
> - Advertise RTE_ETH_TX_OFFLOAD_MULTI_SEGS capability
> - Configurable snapshot length via snaplen devarg
> - Rx scatter offload support with mbuf pool validation
>
> Bug fixes:
> - Fix build on Windows from RTE_LOG_LINE changes.
> - Fix multi-segment transmit to dynamically allocate instead of
> silently truncating packets larger than 9K stack buffer
> - Fix Tx burst error handling: distinguish malformed mbufs (counted
> as errors) from pcap_sendpacket backpressure (break and retry)
> - Reject non-Ethernet interfaces to prevent malformed packets
> and kernel warnings on FreeBSD/macOS loopback
>
> Code cleanup:
> - Convert internal flags from int to bool
> - Remove unnecessary casts of void* from rte_zmalloc
> - Replace rte_malloc/rte_memcpy with libc equivalents in osdep code
> - Include headers explicitly rather than relying on indirect includes
> - Reduce scope of file-level variables
>
> Testing:
> - Add comprehensive unit test suite
> - Make test suite packet generator handle larger packets
>
> v25 - fix build on one intermediate step for bisectability
>
> v24 - fix format string warning in test code.
>
> Stephen Hemminger (24):
> maintainers: update for pcap driver
> net/pcap: fix build on Windows
> doc: update features for PCAP PMD
> net/pcap: include used headers
> net/pcap: remove unnecessary casts
> net/pcap: avoid using rte_malloc and rte_memcpy
> net/pcap: advertise Tx multi segment
> net/pcap: replace stack bounce buffer
> net/pcap: fix error accounting and backpressure on transmit
> net/pcap: clean up TX dumper return value and types
> net/pcap: add datapath debug logging
> net/pcap: consolidate boolean flag handling
> net/pcap: support VLAN strip and insert offloads
> net/pcap: add link status for interface mode
> net/pcap: support nanosecond timestamp precision
> net/pcap: reject non-Ethernet interfaces
> net/pcap: reduce scope of file-level variables
> net/pcap: clarify maximum received packet
> eal/windows: add wrapper for access function
> net/pcap: add snapshot length devarg
> net/pcap: add Rx scatter offload
> net/pcap: add link status change support for iface mode
> net/pcap: add EOF notification via link status change
> test: add comprehensive test suite for pcap PMD
>
> MAINTAINERS | 1 +
> app/test/meson.build | 2 +
> app/test/test_pmd_pcap.c | 3452 ++++++++++++++++++++++++
> doc/guides/nics/features/pcap.ini | 9 +
> doc/guides/nics/pcap.rst | 47 +
> doc/guides/rel_notes/release_26_07.rst | 12 +
> drivers/net/pcap/pcap_ethdev.c | 859 ++++--
> drivers/net/pcap/pcap_osdep.h | 27 +
> drivers/net/pcap/pcap_osdep_freebsd.c | 43 +-
> drivers/net/pcap/pcap_osdep_linux.c | 33 +-
> drivers/net/pcap/pcap_osdep_windows.c | 76 +-
> lib/eal/windows/include/rte_os_shim.h | 1 +
> lib/eal/windows/include/unistd.h | 7 +
> 13 files changed, 4354 insertions(+), 215 deletions(-)
> create mode 100644 app/test/test_pmd_pcap.c
>

Applied to next-net with one addition to MAINTAINERS to catch the new test.