[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