From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Subject: Re: [PATCH v5 00/19] net/tap: cleanups, bug fixes, and VLA removal
Date: Wed, 25 Feb 2026 15:18:58 -0800 [thread overview]
Message-ID: <20260225151858.4ad951fe@phoenix.local> (raw)
In-Reply-To: <20260222173225.522754-1-stephen@networkplumber.org>
On Sun, 22 Feb 2026 09:30:35 -0800
Stephen Hemminger <stephen@networkplumber.org> 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.
prev parent reply other threads:[~2026-02-25 23:19 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-15 19:52 [PATCH 00/10] net/tap: tests, cleanups, and error path fixes Stephen Hemminger
2026-02-15 19:52 ` [PATCH 01/10] test: add unit tests for TAP PMD Stephen Hemminger
2026-02-16 0:46 ` Stephen Hemminger
2026-02-15 19:52 ` [PATCH 02/10] net/tap: replace runtime speed capability with constant Stephen Hemminger
2026-02-15 19:52 ` [PATCH 03/10] net/tap: clarify TUN/TAP flag assignment Stephen Hemminger
2026-02-15 21:45 ` Morten Brørup
2026-02-16 0:47 ` Stephen Hemminger
2026-02-16 5:56 ` Morten Brørup
2026-02-15 19:52 ` [PATCH 04/10] net/tap: extend fixed MAC range to 16 bits Stephen Hemminger
2026-02-15 19:52 ` [PATCH 05/10] net/tap: skip checksum on truncated L4 headers Stephen Hemminger
2026-02-15 19:52 ` [PATCH 06/10] net/tap: fix resource leaks in tap create error path Stephen Hemminger
2026-02-15 19:52 ` [PATCH 07/10] net/tap: fix resource leaks in secondary process probe Stephen Hemminger
2026-02-15 19:52 ` [PATCH 08/10] net/tap: free IPC reply buffer on queue count mismatch Stephen Hemminger
2026-02-15 19:52 ` [PATCH 09/10] net/tap: fix use-after-free on remote flow creation failure Stephen Hemminger
2026-02-15 19:52 ` [PATCH 10/10] net/tap: free remote flow when implicit rule already exists Stephen Hemminger
2026-02-16 23:02 ` [PATCH v2 00/11] net/tap: test, cleanups and error path fixes Stephen Hemminger
2026-02-16 23:02 ` [PATCH v2 01/11] test: add unit tests for TAP PMD Stephen Hemminger
2026-02-16 23:02 ` [PATCH v2 02/11] net/tap: replace runtime speed capability with constant Stephen Hemminger
2026-02-16 23:02 ` [PATCH v2 03/11] net/tap: clarify TUN/TAP flag assignment Stephen Hemminger
2026-02-16 23:02 ` [PATCH v2 04/11] net/tap: extend fixed MAC range to 16 bits Stephen Hemminger
2026-02-16 23:02 ` [PATCH v2 05/11] net/tap: skip checksum on truncated L4 headers Stephen Hemminger
2026-02-16 23:02 ` [PATCH v2 06/11] net/tap: fix resource leaks in tap create error path Stephen Hemminger
2026-02-16 23:02 ` [PATCH v2 07/11] net/tap: fix resource leaks in secondary process probe Stephen Hemminger
2026-02-16 23:02 ` [PATCH v2 08/11] net/tap: free IPC reply buffer on queue count mismatch Stephen Hemminger
2026-02-16 23:02 ` [PATCH v2 09/11] net/tap: fix use-after-free on remote flow creation failure Stephen Hemminger
2026-02-16 23:02 ` [PATCH v2 10/11] net/tap: free remote flow when implicit rule already exists Stephen Hemminger
2026-02-16 23:02 ` [PATCH v2 11/11] net/tap: track device by ifindex instead of name Stephen Hemminger
2026-02-17 1:28 ` Stephen Hemminger
2026-02-17 15:04 ` [RFT 0/4] net/mlx5: fix several correctness bugs Stephen Hemminger
2026-02-17 15:04 ` [RFT 1/4] net/mlx5: fix NULL dereference in Tx queue start Stephen Hemminger
2026-02-26 9:55 ` Dariusz Sosnowski
2026-02-17 15:05 ` [RFT 2/4] net/mlx5: fix counter leak in hairpin queue setup Stephen Hemminger
2026-02-26 9:57 ` Dariusz Sosnowski
2026-02-17 15:05 ` [RFT 3/4] net/mlx5: fix use-after-free in ASO management init Stephen Hemminger
2026-02-26 9:57 ` Dariusz Sosnowski
2026-02-17 15:05 ` [RFT 4/4] net/mlx5: fix counter truncation in queue counter read Stephen Hemminger
2026-02-26 9:58 ` Dariusz Sosnowski
2026-03-01 10:33 ` [RFT 0/4] net/mlx5: fix several correctness bugs Raslan Darawsheh
2026-02-20 5:02 ` [PATCH v3 00/10] net/tap: bug fixes and add test Stephen Hemminger
2026-02-20 5:02 ` [PATCH v3 01/10] test: add unit tests for TAP PMD Stephen Hemminger
2026-02-20 5:02 ` [PATCH v3 02/10] net/tap: replace runtime speed capability with constant Stephen Hemminger
2026-02-20 5:02 ` [PATCH v3 03/10] net/tap: clarify TUN/TAP flag assignment Stephen Hemminger
2026-02-20 5:02 ` [PATCH v3 04/10] net/tap: extend fixed MAC range to 16 bits Stephen Hemminger
2026-02-20 5:02 ` [PATCH v3 05/10] net/tap: skip checksum on truncated L4 headers Stephen Hemminger
2026-02-20 5:02 ` [PATCH v3 06/10] net/tap: fix resource leaks in tap create error path Stephen Hemminger
2026-02-20 5:02 ` [PATCH v3 07/10] net/tap: fix resource leaks in secondary process probe Stephen Hemminger
2026-02-20 5:02 ` [PATCH v3 08/10] net/tap: free IPC reply buffer on queue count mismatch Stephen Hemminger
2026-02-20 5:02 ` [PATCH v3 09/10] net/tap: fix use-after-free on remote flow creation failure Stephen Hemminger
2026-02-20 5:02 ` [PATCH v3 10/10] net/tap: free remote flow when implicit rule already exists Stephen Hemminger
2026-02-20 17:02 ` [PATCH 00/10] net/tap: cleanups and bug fixes Stephen Hemminger
2026-02-20 17:02 ` [PATCH v4 01/10] net/tap: replace runtime speed capability with constant Stephen Hemminger
2026-02-20 17:02 ` [PATCH v4 02/10] net/tap: clarify TUN/TAP flag assignment Stephen Hemminger
2026-02-20 17:02 ` [PATCH v4 03/10] net/tap: extend fixed MAC range to 16 bits Stephen Hemminger
2026-02-20 17:02 ` [PATCH v4 04/10] net/tap: skip checksum on truncated L4 headers Stephen Hemminger
2026-02-20 17:02 ` [PATCH v4 05/10] net/tap: fix resource leaks in tap create error path Stephen Hemminger
2026-02-20 17:02 ` [PATCH v4 06/10] net/tap: fix resource leaks in secondary process probe Stephen Hemminger
2026-02-20 17:02 ` [PATCH v4 07/10] net/tap: free IPC reply buffer on queue count mismatch Stephen Hemminger
2026-02-20 17:02 ` [PATCH v4 08/10] net/tap: fix use-after-free on remote flow creation failure Stephen Hemminger
2026-02-20 17:02 ` [PATCH v4 09/10] net/tap: free remote flow when implicit rule already exists Stephen Hemminger
2026-02-20 17:02 ` [PATCH v4 10/10] test: add unit tests for TAP PMD Stephen Hemminger
2026-02-22 17:30 ` [PATCH v5 00/19] net/tap: cleanups, bug fixes, and VLA removal Stephen Hemminger
2026-02-22 17:30 ` [PATCH v5 01/19] net/tap: fix handling of queue stats Stephen Hemminger
2026-02-22 17:30 ` [PATCH v5 02/19] doc: update tap features Stephen Hemminger
2026-02-22 17:30 ` [PATCH v5 03/19] net/tap: use correct length for interface names Stephen Hemminger
2026-02-22 17:30 ` [PATCH v5 04/19] net/tap: replace runtime speed capability with constant Stephen Hemminger
2026-02-22 17:30 ` [PATCH v5 05/19] net/tap: clarify TUN/TAP flag assignment Stephen Hemminger
2026-02-22 17:30 ` [PATCH v5 06/19] net/tap: extend fixed MAC range to 16 bits Stephen Hemminger
2026-02-22 17:30 ` [PATCH v5 07/19] net/tap: skip checksum on truncated L4 headers Stephen Hemminger
2026-02-22 17:30 ` [PATCH v5 08/19] net/tap: fix resource leaks in tap create error path Stephen Hemminger
2026-02-22 17:30 ` [PATCH v5 09/19] net/tap: fix resource leaks in secondary process probe Stephen Hemminger
2026-02-22 17:30 ` [PATCH v5 10/19] net/tap: free IPC reply buffer on queue count mismatch Stephen Hemminger
2026-02-22 17:30 ` [PATCH v5 11/19] net/tap: fix use-after-free on remote flow creation failure Stephen Hemminger
2026-02-22 17:30 ` [PATCH v5 12/19] net/tap: free remote flow when implicit rule already exists Stephen Hemminger
2026-02-22 17:30 ` [PATCH v5 13/19] net/tap: dynamically allocate queue structures Stephen Hemminger
2026-02-22 17:30 ` [PATCH v5 14/19] net/tap: remove VLA in flow item validation Stephen Hemminger
2026-02-22 17:30 ` [PATCH v5 15/19] net/tap: fix Rx descriptor vs scatter segment confusion Stephen Hemminger
2026-02-22 17:30 ` [PATCH v5 16/19] net/tap: replace use of VLA in transmit burst Stephen Hemminger
2026-02-22 17:30 ` [PATCH v5 17/19] net/tap: consolidate queue statistics Stephen Hemminger
2026-02-22 17:30 ` [PATCH v5 18/19] net/tap: enable VLA warnings Stephen Hemminger
2026-02-22 17:30 ` [PATCH v5 19/19] test: add unit tests for TAP PMD Stephen Hemminger
2026-03-16 8:03 ` David Marchand
2026-02-25 23:18 ` Stephen Hemminger [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260225151858.4ad951fe@phoenix.local \
--to=stephen@networkplumber.org \
--cc=dev@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.