Subject: dhclient vs. Shaw@Home
To: None <current-users@netbsd.org>
From: John Nemeth <jnemeth@cue.bc.ca>
List: current-users
Date: 12/11/1998 19:00:02
     Yep, it's me again :-)  After reading RFC 2132 (DHCP Options and
BOOTP Vendor Extensions), RFC 2131 (Dynamic Host Configuration
Protocol), RFC 768 (User Datagram Protocol), RFC 760 (Internet
Protocol), the checksum part of RFC 761 (Transmission Control
Protocol), learning how to use tcpdump to capture and analyze packets,
and reading and hacking large parts of the dhcp software, I finally
managed to solve my problem.  I found two problems.  The first is that
dhclient sets the BROADCAST flag (see RFC 2131).  It seems that there
is a bug in either @Home's dhcp server, or their dhcp relay (at least
in the one I happened to be using), which causes it to either not
reply or to prevent replies getting back to the client.  The solution
to this is simple, don't set the BROADCAST flag (this works on NetBSD
1.3.2, although it might not work on other OS'es).

     The second problem I noticed is that the dhcp stuff didn't use
UDP checksums.  This is most likely because it calculated them
incorrectly.  It left out the destination address in the pseudo IP
header (see RFC 768).

     Anyways, I have created a patch which solves both problems.  It
is in PR bin/6546.

     Ted, if it's not too late, could you please commit the patch ASAP
and request a pull-up for 1.3.3?  It's a very simple patch which I'm
using in production and that I've verfied, so there shouldn't be a
problem with a pull-up.