summaryrefslogtreecommitdiffstats
path: root/src/net/80211
diff options
context:
space:
mode:
authorMichael Brown2009-08-12 00:40:27 +0200
committerMichael Brown2009-08-12 01:23:38 +0200
commit4eab5bc8ca6b66dc965cf188dd4577ad19c5b879 (patch)
tree840f354a2f0efa010368118729e8f16315abc1c4 /src/net/80211
parent[netdevice] Separate out the concept of hardware and link-layer addresses (diff)
downloadipxe-4eab5bc8ca6b66dc965cf188dd4577ad19c5b879.tar.gz
ipxe-4eab5bc8ca6b66dc965cf188dd4577ad19c5b879.tar.xz
ipxe-4eab5bc8ca6b66dc965cf188dd4577ad19c5b879.zip
[netdevice] Allow the hardware and link-layer addresses to differ in size
IPoIB has a 20-byte link-layer address, of which only eight bytes represent anything relating to a "hardware address". The PXE and EFI SNP APIs expect the permanent address to be the same size as the link-layer address, so fill in the "permanent address" field with the initial link layer address (as generated by register_netdev() based upon the real hardware address).
Diffstat (limited to 'src/net/80211')
-rw-r--r--src/net/80211/net80211.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/net/80211/net80211.c b/src/net/80211/net80211.c
index f3612853..a07e2fab 100644
--- a/src/net/80211/net80211.c
+++ b/src/net/80211/net80211.c
@@ -602,9 +602,11 @@ static struct ll_protocol net80211_ll_protocol __ll_protocol = {
.name = "802.11",
.push = net80211_ll_push,
.pull = net80211_ll_pull,
+ .init_addr = eth_init_addr,
.ntoa = eth_ntoa,
.mc_hash = net80211_ll_mc_hash,
.ll_proto = htons ( ARPHRD_ETHER ), /* "encapsulated Ethernet" */
+ .hw_addr_len = ETH_ALEN,
.ll_addr_len = ETH_ALEN,
.ll_header_len = IEEE80211_TYP_FRAME_HEADER_LEN +
IEEE80211_LLC_HEADER_LEN,