>Finally I found the problem:
>"/src/etherboot.h" sets the constant DHCP_OPT_LEN to 312 (=0x138).
>This seems to be the maximal length for _all_ DHCP options together.
>I set it to 512 and encountered no problems with my dhcpd.conf:
>The bootmenu appeared with all entries. For larger dhcpd.confs
>the value has to be increased further.
>
>But the contstant hasn´t been defined just for fun,
>so what purpose does the constant have ? And where
>can I find information about it (e.g. RFC)?
Probably in the DHCP RFCs mentioned at the top of main.c. I think it's
a relic of the bootp packet format. The problem is I'm not sure how it
interacts with the field bootp_extension (see types bootp_t and
bootpd_t) as there is a max limit for the whole packet
(min(1500,sizeof(bootpd_t))). I suspect that for DHCP, the space used by
bootp_extension should be allocated to DHCP_OPT instead, since AFAIK
there is no mechanism analogous to bootp's extension file in DHCP.
|