From: bugzilla@dpdk.org
To: dev@dpdk.org
Subject: [DPDK/other Bug 1816] bpf ethdev tx filtering semantic issues
Date: Wed, 29 Oct 2025 21:06:18 +0000 [thread overview]
Message-ID: <bug-1816-3@http.bugs.dpdk.org/> (raw)
http://bugs.dpdk.org/show_bug.cgi?id=1816
Bug ID: 1816
Summary: bpf ethdev tx filtering semantic issues
Product: DPDK
Version: 25.07
Hardware: All
OS: All
Status: UNCONFIRMED
Severity: major
Priority: Normal
Component: other
Assignee: dev@dpdk.org
Reporter: stephen@networkplumber.org
Target Milestone: ---
If the function rte_bpf_eth_tx_elf_load() is used to load a filter on a queue
can cause duplicate mbuf usage issues.
For normal PMD transmit if rte_eth_tx_burst() returns a value smaller than the
request number of packets; then the application will assume that this is
because the transmit descriptor queue in the PMD is full. The unsent buffers
will not be freed by the PMD, and is up to the application to either free (or
resend) those mbufs.
The issue is that the transmit call back filter can return a smaller value than
requested if some packets were filtered. The BPF filter code drops the filtered
out packets.
In the simplest case, a common practice will cause duplicate free:
sent = rte_eth_tx_burst(port, queue, pkts, nb_pkts);
if (sent < nb_pkts)
rte_pktmbuf_free_bulk(pkts + sent, nb_pkts - sent);
Alternatives are:
- redefining the meaning of tx_burst such that rte_eth_tx_burst frees
major application impact
- treat filtered packets as if sent
--
You are receiving this mail because:
You are the assignee for the bug.
reply other threads:[~2025-10-29 21:06 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=bug-1816-3@http.bugs.dpdk.org/ \
--to=bugzilla@dpdk.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).