[cachedhcp] Allow cached DHCPACK to override a temporary MAC address hwmac
authorMichael Brown <mcb30@ipxe.org>
Mon, 23 May 2022 12:05:24 +0000 (13:05 +0100)
committerMichael Brown <mcb30@ipxe.org>
Mon, 23 May 2022 12:05:24 +0000 (13:05 +0100)
commitd72c8fdc902bc5d605fef081a18f6fe84f3d0512
treee774fafb8dd892ef7572504d3ec6004948d553b2
parent87f1796f158fe3e06d292f4b7e16bad879803b69
[cachedhcp] Allow cached DHCPACK to override a temporary MAC address

When running on a system with an ACPI-provided system-specific MAC
address, iPXE will apply this address to an ECM or NCM USB NIC.  If
iPXE has been chainloaded from a previous stage that does not
understand the ACPI MAC mechanism then this can result in iPXE using a
different MAC address than the previous stage, which is surprising to
users.

Attempt to minimise surprise by allowing the MAC address found in a
cached DHCPACK packet to override a temporary MAC address, if the
DHCPACK MAC address matches the network device's permanent MAC
address.  When a previous stage has chosen to use the network device's
permanent MAC address (e.g. because it does not understand the ACPI
MAC mechanism), this will cause iPXE to make the same choice.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/core/cachedhcp.c