• A
    Work around dhclient brokenness · 1d41b0c1
    Anthony Liguori 提交于
    With the latest GSO/csum offload patches, any guest using an unpatched version
    of dhclient (any Ubuntu guest, for instance), will no longer be able to get
    a DHCP address.
    
    dhclient is actually at fault here.  It uses AF_PACKET to receive DHCP responses
    but does not check auxdata to see if the packet has a valid csum.  This causes
    it to throw out the DHCP responses it gets from the virtio interface as there
    is not a valid checksum.
    
    Fedora has carried a patch to fix their dhclient (it's needed for Xen too) but
    this patch has not made it into a release of dhclient.  AFAIK, the patch is in
    the dhclient CVS but I cannot confirm since their CVS is not public.
    
    This patch, suggested by Rusty, looks for UDP packets (of a normal MTU) and
    explicitly adds a checksum to them if they are missing one.
    
    This allows unpatched dhclients to continue to work without needing to update
    the guest kernels.
    Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
    Signed-off-by: NMark McLoughlin <markmc@redhat.com>
    Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
    1d41b0c1
virtio-net.c 24.5 KB