[syslinux] [PATCH 0/1] EFI PXE DHCP/proxyDHCP issues fix

Gene Cumm
Tue, 09 Jun 2015 10:14:14 -0000

On Sat, Jun 6, 2015 at 6:19 AM, Gene Cumm <gene.cumm at gmail.com>
wrote:
> On Wed, Jun 3, 2015 at 3:25 PM, Jeff via Syslinux <syslinux at
zytor.com> wrote:
>> The UEFI PXE boot DHCP/proxyDHCP issue is very timely. I am working on
>> that very topic now.
>
>> Our environment:
>
>> The real DHCP server supplies client ip address only. Everything else
>> comes from proxyDHCP.
>
>> Problem 2:
>>
>> The next problem is packet parsing and incomplete ip address sets on
the
>> syslinux side. The basic issue is that the packets are incomplete or
not
>> used in a proxyDHCP environment. The real DHCP Offer/Ack contains the
>> client ip. The proxy Offer contains the server ip. We also have to grab
>> the gateway and subnet mask. There is no single packet or location
where
>> all the addresses are contained. The most complete struct that I found
is
>> the IPInfo but even there the server ip is incorrect. So we need to
either
>> build and populate a complete struct for proxy or pull from several
>> different packets when needed.
>>
>> Failing scenario/behavior for problem 2:
>>
>> After syslinux.efi is downloaded and execution begins, no further
Ethernet
>> communication occurs. This is caused by incomplete packets that are
>> dropped in the client instead of being sent. The return code is
>> EFI_UNSUPPORTED but the error is ignored after the return from the UDP
>> send command in BIOS. Should this be handled differently?
>>
>> Resolution for problem 2:
>>
>> This is my implementation. Hopefully it is a good start to help us get
to
>> the correct approach. In pxe.c, I populate DhcpAck packet with all of
the
>> correct ip addresses and netmask. In udp.c, at the end, I disable
>> UseDefaultAddress and populate missing correct ip addresses. Details
and
>> code below.
>>
>> My approach:
>
>> Thoughts?
>
> 1) It's not a diff.
>
> 2) What exact version or commit ID is this patch attempt based on?
>
> 3) If you have a system that successfully can build Syslinux EFI, have
> you tried commit ID 81eeaa3?

Jeff,
Could you try commit 8a00e49 and let us know what results you get?

--
-Gene