summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
authorMichael Brown2013-08-30 20:05:03 +0200
committerMichael Brown2013-09-03 02:24:15 +0200
commit0b65c8cad6ed1b03ce1870856b3496c7be1f8bf1 (patch)
tree7735c595a01cf81212490caa99e7ad7cfffb81f5 /src/include
parent[netdevice] Add concept of a network device index (diff)
downloadipxe-0b65c8cad6ed1b03ce1870856b3496c7be1f8bf1.tar.gz
ipxe-0b65c8cad6ed1b03ce1870856b3496c7be1f8bf1.tar.xz
ipxe-0b65c8cad6ed1b03ce1870856b3496c7be1f8bf1.zip
[netdevice] Add method for generating EUI-64 address from link-layer address
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/include')
-rw-r--r--src/include/ipxe/ethernet.h1
-rw-r--r--src/include/ipxe/netdevice.h9
2 files changed, 10 insertions, 0 deletions
diff --git a/src/include/ipxe/ethernet.h b/src/include/ipxe/ethernet.h
index 1794ff67e..5ffc45b73 100644
--- a/src/include/ipxe/ethernet.h
+++ b/src/include/ipxe/ethernet.h
@@ -91,6 +91,7 @@ extern const char * eth_ntoa ( const void *ll_addr );
extern int eth_mc_hash ( unsigned int af, const void *net_addr,
void *ll_addr );
extern int eth_eth_addr ( const void *ll_addr, void *eth_addr );
+extern int eth_eui64 ( const void *ll_addr, void *eui64 );
extern struct net_device * alloc_etherdev ( size_t priv_size );
#endif /* _IPXE_ETHERNET_H */
diff --git a/src/include/ipxe/netdevice.h b/src/include/ipxe/netdevice.h
index 7288ad86d..7f819d9ab 100644
--- a/src/include/ipxe/netdevice.h
+++ b/src/include/ipxe/netdevice.h
@@ -175,8 +175,17 @@ struct ll_protocol {
*
* @v ll_addr Link-layer address
* @v eth_addr Ethernet-compatible address to fill in
+ * @ret rc Return status code
*/
int ( * eth_addr ) ( const void *ll_addr, void *eth_addr );
+ /**
+ * Generate EUI-64 address
+ *
+ * @v ll_addr Link-layer address
+ * @v eui64 EUI-64 address to fill in
+ * @ret rc Return status code
+ */
+ int ( * eui64 ) ( const void *ll_addr, void *eui64 );
/** Link-layer protocol
*
* This is an ARPHRD_XXX constant, in network byte order.