On Sun, 22 Feb 2026 09:30:35 -0800
Stephen Hemminger <[email protected]> wrote:

> Patches 1-2 are documentation and bug fixes that stand alone: update
> the features matrix to match current driver capabilities, and fix
> queue statistics to count all queues regardless of the queue stat
> counter limit.
> 
> Patch 3 fixes interface name buffers to use IFNAMSIZ instead of
> RTE_ETH_NAME_MAX_LEN, since these are Linux kernel interface names
> not DPDK device names.
> 
> Patches 4-6 are minor cleanups: replace the runtime speed capability
> function with a compile-time constant (TAP is always 10G), clarify
> TUN/TAP flag operator precedence with parentheses, and extend the
> fixed MAC index to 16 bits to avoid duplicates after 256 hot-plug
> cycles.
> 
> Patches 7-12 fix bugs tagged for stable: a bounds check to prevent
> an out-of-bounds read on truncated L4 headers; resource leaks in
> the primary and secondary process probe error paths; a missing free
> of the IPC reply buffer on queue count mismatch; a use-after-free
> with an orphaned kernel TC rule when remote flow creation fails; and
> a leaked remote_flow allocation on EEXIST from an implicit rule.
> 
> Patches 13-18 restructure the driver internals: dynamically allocate
> queue structures instead of embedding fixed-size arrays in
> pmd_internals; replace the pointer-to-VLA iovec with a flexible
> array member sized from MTU and mbuf geometry; replace the Tx
> per-packet VLA with a fixed-size stack array capped at 128 segments;
> remove the VLA in flow item validation; consolidate per-queue
> statistics into a common structure; and enable -Wvla warnings.
> 
> Patch 19 adds a unit test suite for the TAP PMD covering
> configuration, link, stats, MTU, MAC, promisc, allmulti, queue
> start/stop, link up/down, stop/start, and multi-queue.
> 
> v5 - use IFNAMSIZ for interface name buffers
>    - dynamically allocate queue structures
>    - compute Rx scatter segments from MTU instead of nb_rx_desc
>    - use flex array for Rx iovecs, fixed stack array for Tx
>    - consolidate queue statistics
> 
> 
> Stephen Hemminger (19):
>   net/tap: fix handling of queue stats
>   doc: update tap features
>   net/tap: use correct length for interface names
>   net/tap: replace runtime speed capability with constant
>   net/tap: clarify TUN/TAP flag assignment
>   net/tap: extend fixed MAC range to 16 bits
>   net/tap: skip checksum on truncated L4 headers
>   net/tap: fix resource leaks in tap create error path
>   net/tap: fix resource leaks in secondary process probe
>   net/tap: free IPC reply buffer on queue count mismatch
>   net/tap: fix use-after-free on remote flow creation failure
>   net/tap: free remote flow when implicit rule already exists
>   net/tap: dynamically allocate queue structures
>   net/tap: remove VLA in flow item validation
>   net/tap: fix Rx descriptor vs scatter segment confusion
>   net/tap: replace use of VLA in transmit burst
>   net/tap: consolidate queue statistics
>   net/tap: enable VLA warnings
>   test: add unit tests for TAP PMD
> 
>  app/test/meson.build             |    1 +
>  app/test/test_pmd_tap.c          | 1143 ++++++++++++++++++++++++++++++
>  doc/guides/nics/features/tap.ini |   14 +-
>  drivers/net/tap/meson.build      |    1 -
>  drivers/net/tap/rte_eth_tap.c    |  411 ++++++-----
>  drivers/net/tap/rte_eth_tap.h    |   28 +-
>  drivers/net/tap/tap_flow.c       |   36 +-
>  7 files changed, 1424 insertions(+), 210 deletions(-)
>  create mode 100644 app/test/test_pmd_tap.c
> 

Applied to next-net.

Reply via email to