[syslinux] [PATCH] Updated udp.c to use real client ip and subnetmask values if on local subnet

Patrick Masotta masottaus at yahoo.com
Sat Jul 18 10:01:51 PDT 2015


>>>>
 The IP4 config data struct contents from core_udp_open
 is included below. When UseDefaultAddress is TRUE, it passes
 0.0.0.0 for StationAddress and NetMask. core_udp_open calls
 core_udp_configure which calls efiip4configure (BIOS). BIOS validates SA and NM but
 special-cases both null to allow for proxy. BIOS tries to find the GUID to
 configure but fails and returns EFI_UNSUPPORTED error, EFIERR(3).
 
 
 
 Then core_udp_sendto attempts to send the packet even
 though it was never configured. It does not check for problems, instead
 relying on the core_udp_recv to timeout. It retries based on
 the timeout table but before completing all of the retries, the watchdog
 timer triggers a reset.
 
 
 
 So the net is that no udp packets hit the wire once
 syslinux starts executing. I was able to circumvent this by setting UseDefaultAddress
 to FALSE and populating SA and NM to correct values. Is
 there a better/more global approach if the SA/NM values are NULL?
 
 The other question I have is how should we handle
 a fail from the configure? Thoughts?

<<<<

Then this means that when you use a "DHCP relay" your particular firmware is able to retrieve
syslinux.efi but when creating an UDPv4 child when using UseDefaultAddress=1
the interface does not have valid IP address and mask (both NULL)

1) Are you sure you are really creating a child corresponding to the NIC that booted syslinux.efi?? 
this is specially important if you have a multi-NIC client.

2) how about your client firmware? is it updated? does this happen with several clients?

Best,
Patrick

 
 
 


More information about the Syslinux mailing list