etherboot rejecting DHCP replies without server ip, although DEFAULT_BOOTFILE specified
Arnd Hannemann <[email protected]> Sun, 02 Apr 2006 17:08:35 +0200
| Newsgroups | gmane.network.etherboot.devel |
|---|---|
| Message-ID | <[email protected]> |
Hello,
in src/core/nic.c (etherboot 5.4 cvs) etherboot is dropping DHCP replies
which do not contain a next server ip:
if (memcmp(&bootpreply->bp_siaddr, &zeroIP, sizeof(in_addr)) == 0)
return 0;
In almost all common setups that makes sense. However if a _server_ was
specified in DEFAULT_BOOTFILE (e.g. tftp://192.168.9.1/bootimage), then
it doesn't.
Etherboot will not boot if it did not get a next server ip in the DHCP
reply, although it could, because it has a server given in the
DEFAULT_BOOTFILE option.
To make our devices boot we had to override above behavior.
My first idea for a patch was:
#ifndef DEFAULT_BOOTFILE
if (memcmp(&bootpreply->bp_siaddr, &zeroIP, sizeof(in_addr)) == 0)
return 0;
#endif
This is obviously still not correct and may break existing
installations, because DEFAULT_BOOTFILE is not required to contain a
server address.
Any ideas? Please CC me, because I'm not subscribed to this list.
Thank you
Arnd Hannemann
P.S.:
Note that a recent ISC dhcp server WILL give its own ip address as the
next server address in a dhcp reply without further configuration,
though this is not required by RFC 2131.
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642