[syslinux] Best way to deal with an idiosyncracy of Intel Boot Agent (IBA)...
Gene Cumm
gene.cumm at gmail.com
Tue Mar 18 09:07:25 PDT 2014
On Tue, Mar 18, 2014 at 1:02 AM, Spike White <spikewhitetx at gmail.com> wrote:
> I have a question on how to deal with a quirk of the Intel Boot Agent.
> Both for PXE boots and for EFI boots.
>
> I've noticed this IBA quirk for years. According to the "DHCP options"
> RFC, variable length DHCP options are not necessarily null-terminated.
> So if I specify Bootfile name (option 67), frequently that's the last real
> DHCP option. Thus the next byte is the DHCP "end option" aka 255. The IBA
> code mistakenly parses this as "/boot/efi.x64/syslinux.efi^X", where ^X
> is a char with value 0xFF (255). It requests this filename from the TFTP
> server, which (of course) has no file by that name.
What about specifying a normal NULL (0x0) at the end of the string?
> I understand this Intel NIC idiosyncracy. I accept this. I'm sure
> everyone else has seen this too. My question is -- what is the recommended
> approach to work around this?
>
> 1. Don't pass option 67. Instead pass the NBP filename "old school".
> Using the old DHCP "file" field.
> PROs:
> 1. Works for Intel NICs.
> 2. "file" field is a null-terminated string (according to RFC 2131).
> CONs:
> 1. Some other NICs seem to prefer option 67 over "file" field.
> 2. Lame DHCP servers (like old MS ones) set both fields (option 67
> and "file" field) whenever you set either.
> 3. Limited to 64 chars max (including null terminator).
This seems to work best in my experience although I've never seen MS
DHCP use option 67 in a packet (I've only seen MS DHCP since MS
Windows Server 2003).
> 2. Literally embed a null-terminator at the end of option 67.
> PROs:
> Works for Intel NICs.
> CONs:
> I believe some other NICs don't handle this null terminator right
> (might be mistaken).
>
> 3. Using tftp-hpa's filename remapping to strip off any 0xFF char on end.
> PROs:
> Works for all NICs.
> CONs:
> Only works if you're using tftp-hpa TFTP server. Many other PXE
> deployments don't have this filename remapping capability.
--
-Gene
More information about the Syslinux
mailing list