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

Stephen Hemminger stephen at networkplumber.org
Thu Apr 30 19:10:18 CEST 2026


On Sun, 19 Apr 2026 09:09:33 -0700
Stephen Hemminger <stephen at 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.


More information about the dev mailing list