summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
authorMichael Brown2010-12-15 19:29:20 +0100
committerMichael Brown2010-12-15 19:46:19 +0100
commit708c5060b9391eddb06701a175997220072262fe (patch)
tree360447d3030c679ea1194d969c35f45912a08be3 /src/include
parent[pxe] Improve pxe_udp debug messages (diff)
downloadipxe-708c5060b9391eddb06701a175997220072262fe.tar.gz
ipxe-708c5060b9391eddb06701a175997220072262fe.tar.xz
ipxe-708c5060b9391eddb06701a175997220072262fe.zip
[dhcp] Use Ethernet-compatible chaddr, if possible
For IPoIB, we currently use the hardware address (i.e. the eight-byte GUID) as the DHCP chaddr. This works, but some PXE servers (notably Altiris RDP) refuse to respond if the chaddr field is anything other than six bytes in length. We already have the notion of an Ethernet-compatible link-layer address, which is used in the iBFT (the design of which similarly fails to account for non-Ethernet link layers). Use this as the first preferred alternative to the actual link-layer address when constructing the DHCP chaddr field. Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/include')
-rw-r--r--src/include/ipxe/dhcp.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/include/ipxe/dhcp.h b/src/include/ipxe/dhcp.h
index aac79b29f..54a85f661 100644
--- a/src/include/ipxe/dhcp.h
+++ b/src/include/ipxe/dhcp.h
@@ -620,8 +620,8 @@ struct dhcphdr {
/** Setting block name used for BootServerDHCP responses */
#define PXEBS_SETTINGS_NAME "pxebs"
-extern void * dhcp_chaddr ( struct net_device *netdev, uint8_t *hlen,
- uint16_t *flags );
+extern unsigned int dhcp_chaddr ( struct net_device *netdev, void *chaddr,
+ uint16_t *flags );
extern int dhcp_create_packet ( struct dhcp_packet *dhcppkt,
struct net_device *netdev, uint8_t msgtype,
const void *options, size_t options_len,