[oe-commits] Rob Woolley : dhcp-client: Ignore partial checksums

git at git.openembedded.org git at git.openembedded.org
Sat Feb 14 22:27:30 UTC 2015


Module: openembedded-core.git
Branch: master-next
Commit: 99b598927b7a3837621d9e83e69b3b4fd83afed1
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=99b598927b7a3837621d9e83e69b3b4fd83afed1

Author: Rob Woolley <rob.woolley at windriver.com>
Date:   Fri Jan 30 16:55:09 2015 -0500

dhcp-client: Ignore partial checksums

dhclient will fail to get an IP address if run inside a guest when traffic is
flowing over a virtual network interface.  The user will see the error
message:

  5 bad udp checksums in 5 packets
  No DHCPOFFERS received.
  Unable to obtain a lease on first try.  Exiting.
  Failed to bring up eth0.

This is because Linux only uses partial checksums for packets that go over
virtual network interfaces and dhclient does not like this.

  See linux kernel commit 78ea85f17b15390e30d8b47488ec7b6cf0790663
  ("net: skbuff: improve comment on checksumming")

An application can detect this behaviour by checking for the
TP_STATUS_CSUMNOTREADY flag in the tp_status field.

  See linux kernel commit 8dc4194474159660d7f37c495e3fc3f10d0db8cc
  ("Add optional checksum computation for recvmsg")

An extra parameter is added to decode_udp_ip_header() in dhclient to indicate
whether or not dhclient should ignore partial checksums.  This is used
when the TP_STATUS_CSUMNOTREADY bit is set by the guest kernel.

This fix has been included in Fedora and Ubuntu, however it has not yet been
accepted by ISC upstream.  Likely because it is specific to behaviour in Linux
and other UNIX variants do not seem to be affected.

The patch was imported from the dhcp source RPM in Fedora 21
  (http://pkgs.fedoraproject.org/cgit/dhcp.git/tree/dhcp-xen-checksum.patch?h=f21)

Originally contributed to fedora-cvs-commit by David Cantrell on Jan 30 2007
  (https://www.redhat.com/archives/fedora-cvs-commits/2007-January/msg01442.html)

Submitted to dhcp-bugs at isc.org - [ISC-Bugs #22806] - by Michael S. Tsirkin
  (http://comments.gmane.org/gmane.comp.emulators.kvm.devel/65236)
  (https://lists.isc.org/pipermail/dhcp-hackers/2010-April/001835.html)

Upstream-Status: Submitted [dhcp-bugs at isc.org]
Signed-off-by: Rob Woolley <rob.woolley at windriver.com>
Signed-off-by: Ross Burton <ross.burton at intel.com>

---

 .../dhcp/dhcp/dhcp-xen-checksum.patch              | 307 +++++++++++++++++++++
 meta/recipes-connectivity/dhcp/dhcp_4.3.1.bb       |   1 +
 2 files changed, 308 insertions(+)

Diff:   http://git.openembedded.org/?p=openembedded-core.git/?a=commitdiff;h=99b598927b7a3837621d9e83e69b3b4fd83afed1


More information about the Openembedded-commits mailing list