Re: [PATCHv2] vhost-net: add dhclient work-around from userspace

xming
2010-09-20T12:12:41Z

Hi,

I think I am hitting this, in a weird way :D. Running 0.12.90,
vhost_net and kernel 2.6.35.4, I have troubles to get dhcp clients to
work except an old dhcp client "pump" seems to work out of the box.
Below are the output of dhcpcd, isc's dhcp client and busybox' udhcpc.

My dhcp server is in a guest with vhost_net running dnsmasq. Clients
which do not use vhost_net (plain virtio, e1000 and physical machines)
do not have any problems. The dhcp server itself is a dhcp client and
uses dhcpcd to get lease from ADSL modem w/o issues.
When the dhcp server is not using vhost_net, then all clients can get a lease.

So my conclusion so far is that when the server is using vhost_net and
clients are using vhost_net (and above mentioned software), then it's
getting invalid/checksum error UDP. the only working DHCP client is
pump.

# dhcpcd
dhcpcd[9089]: version 5.2.7 starting
dhcpcd[9089]: eth0: broadcasting for a lease
dhcpcd[9089]: eth0: invalid UDP packet from 192.168.1.1
dhcpcd[9089]: eth0: invalid UDP packet from 192.168.1.1
dhcpcd[9089]: eth0: invalid UDP packet from 192.168.1.1
dhcpcd[9089]: eth0: invalid UDP packet from 192.168.1.1
dhcpcd[9089]: timed out
dhcpcd[9089]: allowing 8 seconds for IPv4LL timeout
dhcpcd[9089]: eth0: probing for an IPv4LL address
dhcpcd[9089]: eth0: checking for 169.254.195.227
dhcpcd[9089]: eth0: using IPv4LL address 169.254.195.227
dhcpcd[9089]: forked to background, child pid 9109

# dhclient
Internet Systems Consortium DHCP Client V3.1.2p1-Gentoo
Copyright 2004-2009 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

Listening on LPF/eth0/00:16:3e:00:07:01
Sending on LPF/eth0/00:16:3e:00:07:01
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 13
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 13
5 bad udp checksums in 5 packets
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 14
No DHCPOFFERS received.
No working leases in persistent database - sleeping.

# busybox udhcpc
### adapter index 2
### adapter hardware address 00:16:3e:00:07:01
udhcpc (v1.13.2) started
### vfork'ing and execle'ing /usr/share/udhcpc/default.script
udhcpc: exec /usr/share/udhcpc/default.script: No such file or directory
### entering raw listen mode
### opening raw socket on ifindex 2
### got raw socket fd 5
### attached filter to raw socket fd 5
### bound to raw socket fd 5
### adding option 0x35
### adding option 0x3d
### adding option 0x3c
### adding option 0x39
Sending discover...
### Waiting on select...
udhcpc: packet with bad UDP checksum received, ignoring
### Waiting on select...
### adding option 0x35
### adding option 0x3d
### adding option 0x3c
### adding option 0x39
Sending discover...
### Waiting on select...
udhcpc: packet with bad UDP checksum received, ignoring
### Waiting on select...
### adding option 0x35
### adding option 0x3d
### adding option 0x3c
### adding option 0x39
Sending discover...
### Waiting on select...
udhcpc: packet with bad UDP checksum received, ignoring
### Waiting on select...
### vfork'ing and execle'ing /usr/share/udhcpc/default.script
udhcpc: exec /usr/share/udhcpc/default.script: No such file or directory
### Waiting on select...
### adding option 0x35
### adding option 0x3d
### adding option 0x3c
### adding option 0x39
Sending discover...
### Waiting on select...
udhcpc: packet with bad UDP checksum received, ignoring
### Waiting on select...