[DPDK/vhost/virtio Bug 1648] virtio tx_burst() function cannot do TSO on shared packets

bugzilla at dpdk.org bugzilla at dpdk.org
Mon Feb 3 05:01:00 CET 2025


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 at dpdk.org
          Reporter: nandinipersad361 at 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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mails.dpdk.org/archives/dev/attachments/20250203/20eb8592/attachment-0001.htm>


More information about the dev mailing list