From: bugzilla@dpdk.org
To: dev@dpdk.org
Subject: [DPDK/ethdev Bug 1416] net/af_packet: tx_burst() can modify packets
Date: Tue, 16 Apr 2024 10:29:53 +0000 [thread overview]
Message-ID: <bug-1416-3@http.bugs.dpdk.org/> (raw)
[-- Attachment #1: Type: text/plain, Size: 1725 bytes --]
https://bugs.dpdk.org/show_bug.cgi?id=1416
Bug ID: 1416
Summary: net/af_packet: tx_burst() can modify packets
Product: DPDK
Version: 24.03
Hardware: All
OS: All
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: ethdev
Assignee: dev@dpdk.org
Reporter: konstantin.v.ananyev@yandex.ru
Target Milestone: ---
According to the ethdev doc, in general, PMD tx_burst() should not modify mbuf
contents. To be more specific:
ethdev/rte_ethdev.h:6396
...
* @note This function must not modify mbufs (including packets data)
* unless the refcnt is 1.
* An exception is the bonding PMD, which does not have "Tx prepare" support,
* in this case, mbufs may be modified.
...
Though why looking at eth_af_packet_tx(), it looks to me like it does modify
the packet contents without any checks for refcnt, etc.:
static uint16_t
eth_af_packet_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
{
...
for (i = 0; i < nb_pkts; i++) {
mbuf = *bufs++;
...
/* insert vlan info if necessary */
if (mbuf->ol_flags & RTE_MBUF_F_TX_VLAN) {
if (rte_vlan_insert(&mbuf)) {
rte_pktmbuf_free(mbuf);
continue;
AFAIU, it does copy of mbuf contents into pbuf anyway (just few line below).
So the fix might be - simply insert VLAN tag at copying stage.
Feel free to correct me, if I missed something.
--
You are receiving this mail because:
You are the assignee for the bug.
[-- Attachment #2: Type: text/html, Size: 3625 bytes --]
next reply other threads:[~2024-04-16 10:29 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-16 10:29 bugzilla [this message]
2024-04-16 15:38 ` [DPDK/ethdev Bug 1416] net/af_packet: tx_burst() can modify packets Stephen Hemminger
2024-04-16 15:56 ` Konstantin Ananyev
2024-04-16 16:14 ` Morten Brørup
2024-04-16 16:42 ` Konstantin Ananyev
2024-04-16 18:11 ` Morten Brørup
2024-04-16 20:09 ` Stephen Hemminger
2024-04-16 22:21 ` Morten Brørup
2024-04-16 15:58 ` bugzilla
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-1416-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 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.