[PATCH 00/10] net/tap: cleanups and bug fixes

Stephen Hemminger
2026-02-20T17:06:23Z

Patches 1-3 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 4-9 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.

Patch 10 adds a unit test suite for the TAP PMD modeled on the ring
PMD tests, covering configuration, link, stats, MTU, MAC, promisc,
allmulti, queue start/stop, link up/down, stop/start, and multi-queue.

v4 - fix build on clang

Stephen Hemminger (10):
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
test: add unit tests for TAP PMD

app/test/meson.build | 1 +
app/test/test_pmd_tap.c | 907 ++++++++++++++++++++++++++++++++++
drivers/net/tap/rte_eth_tap.c | 97 ++--
drivers/net/tap/tap_flow.c | 23 +-
4 files changed, 967 insertions(+), 61 deletions(-)
create mode 100644 app/test/test_pmd_tap.c

--
2.51.0