On Sun, 19 Apr 2026 09:09:33 -0700 Stephen Hemminger <[email protected]> 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.

