DPDK patches and discussions
 help / color / mirror / Atom feed
From: bugzilla@dpdk.org
To: dev@dpdk.org
Subject: [DPDK/vhost/virtio Bug 1648] virtio tx_burst() function cannot do TSO on shared packets
Date: Mon, 03 Feb 2025 04:01:00 +0000	[thread overview]
Message-ID: <bug-1648-3@http.bugs.dpdk.org/> (raw)

[-- Attachment #1: Type: text/plain, Size: 1529 bytes --]

https://bugs.dpdk.org/show_bug.cgi?id=1648

            Bug ID: 1648
           Summary: virtio tx_burst() function cannot do TSO on shared
                    packets
           Product: DPDK
           Version: unspecified
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: vhost/virtio
          Assignee: dev@dpdk.org
          Reporter: nandinipersad361@gmail.com
  Target Milestone: ---

The standard TX function of virtio driver does not manage shared packets
properly when doing TSO. These packets should be read-only but the driver
modifies them.

When doing TSO, the virtio standard expects that the L4 checksum is set to the
pseudo header checksum in the packet data, which is different than the DPDK
API. The driver patches the L4 checksum to conform to the virtio standard, but
this solution is invalid when dealing with shared packets (clones), because the
packet data should not be modified.

Implication:
In this situation, the shared data will be modified by the driver, potentially
causing race conditions with the other users of the mbuf data.

Resolution/Workaround:
The workaround in the application is to ensure that the network headers in the
packet data are not shared.

Affected Environment/Platform:
Virtual machines running a virtio driver.

Driver/Module:
Poll Mode Driver (PMD).

-- 
You are receiving this mail because:
You are the assignee for the bug.

[-- Attachment #2: Type: text/html, Size: 3394 bytes --]

                 reply	other threads:[~2025-02-03  4:01 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-1648-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).