summaryrefslogtreecommitdiffstats
path: root/src/interface/efi/efi_snp.c
diff options
context:
space:
mode:
authorMichael Brown2009-08-11 21:19:53 +0200
committerMichael Brown2009-08-12 01:19:14 +0200
commit37a0aab4ff2c86f4d109d4cd479535be97d07a94 (patch)
tree5a2f06a22cf2c647b36d254fc1699072c3c88392 /src/interface/efi/efi_snp.c
parent[doc] Expand scope of doxygen-generated documentation (diff)
downloadipxe-37a0aab4ff2c86f4d109d4cd479535be97d07a94.tar.gz
ipxe-37a0aab4ff2c86f4d109d4cd479535be97d07a94.tar.xz
ipxe-37a0aab4ff2c86f4d109d4cd479535be97d07a94.zip
[netdevice] Separate out the concept of hardware and link-layer addresses
The hardware address is an intrinsic property of the hardware, while the link-layer address can be changed at runtime. This separation is exposed via APIs such as PXE and EFI, but is currently elided by gPXE. Expose the hardware and link-layer addresses as separate properties within a net device. Drivers should now fill in hw_addr, which will be used to initialise ll_addr at the time of calling register_netdev().
Diffstat (limited to 'src/interface/efi/efi_snp.c')
-rw-r--r--src/interface/efi/efi_snp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/interface/efi/efi_snp.c b/src/interface/efi/efi_snp.c
index f96984fa..00830343 100644
--- a/src/interface/efi/efi_snp.c
+++ b/src/interface/efi/efi_snp.c
@@ -130,7 +130,7 @@ static void efi_snp_set_mode ( struct efi_snp_device *snpdev ) {
assert ( ll_addr_len <= sizeof ( mode->CurrentAddress ) );
memcpy ( &mode->CurrentAddress, netdev->ll_addr, ll_addr_len );
memcpy ( &mode->BroadcastAddress, netdev->ll_broadcast, ll_addr_len );
- memcpy ( &mode->PermanentAddress, netdev->ll_addr, ll_addr_len );
+ memcpy ( &mode->PermanentAddress, netdev->hw_addr, ll_addr_len );
mode->IfType = ntohs ( netdev->ll_protocol->ll_proto );
mode->MacAddressChangeable = TRUE;
mode->MediaPresentSupported = TRUE;