qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug 1192464] Re: udp checksum computed as 0 not converted to 0xffff, f


From: Philippe Mathieu-Daudé
Subject: [Bug 1192464] Re: udp checksum computed as 0 not converted to 0xffff, from guest os that share a common linux bridge among multiple guest os
Date: Wed, 23 Oct 2019 11:33:31 -0000

Fixed:

commit 0dacea92d26c31d453c58de2e99c178fee554166
Author: Ed Swierk <address@hidden>
Date:   Thu Nov 16 06:06:06 2017 -0800

    net: Transmit zero UDP checksum as 0xFFFF
    
    The checksum algorithm used by IPv4, TCP and UDP allows a zero value
    to be represented by either 0x0000 and 0xFFFF. But per RFC 768, a zero
    UDP checksum must be transmitted as 0xFFFF because 0x0000 is a special
    value meaning no checksum.
    
    Substitute 0xFFFF whenever a checksum is computed as zero when
    modifying a UDP datagram header. Doing this on IPv4 and TCP checksums
    is unnecessary but legal. Add a wrapper for net_checksum_finish() that
    makes the substitution.
    
    (We can't just change net_checksum_finish(), as that function is also
    used by receivers to verify checksums, and in that case the expected
    value is always 0x0000.)
    
    Signed-off-by: Ed Swierk <address@hidden>
    Signed-off-by: Jason Wang <address@hidden>

** Changed in: qemu
       Status: Incomplete => Fix Released

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1192464

Title:
  udp checksum computed as 0 not converted to 0xffff, from guest os that
  share a common linux bridge among multiple guest os

Status in QEMU:
  Fix Released

Bug description:
  UDP checksum computed as '0' during transmission of packets that uses
  e1000 NIC in the Guest as well as emulated h/w in the qemu layer, That
  needs to be converted to 0xffff, This occurs only when Hardware
  checksum offload is been set in the guest OS NIC and made it as a
  transmitter. The guest O.S use the N/W interface that is been shared
  to the linux brige created in the host (used source=<bridge>) in the
  xml tags of libvirt.

  As per RFC768(http://tools.ietf.org/html/rfc768 [^]), If the computed
  checksum is zero, it is transmitted as all ones (the equivalent in
  one's complement arithmetic). An all zero transmitted checksum value
  means that the transmitter generated no checksum (for debugging or for
  higher level protocols that don't care).

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1192464/+subscriptions



reply via email to

[Prev in Thread] Current Thread [Next in Thread]