[infiniband] Allow drivers to override the eIPoIB LEMAC

Signed-off-by: Michael Brown <mcb30@ipxe.org>
pull/51/head
Michael Brown 2016-03-21 09:29:54 +00:00
parent 57c63047e3
commit 173c0c2536
2 changed files with 5 additions and 0 deletions

View File

@ -956,6 +956,7 @@ static int ipoib_probe ( struct ib_device *ibdev ) {
/* Extract hardware address */ /* Extract hardware address */
memcpy ( netdev->hw_addr, &ibdev->gid.s.guid, memcpy ( netdev->hw_addr, &ibdev->gid.s.guid,
sizeof ( ibdev->gid.s.guid ) ); sizeof ( ibdev->gid.s.guid ) );
memcpy ( netdev->ll_addr, ibdev->lemac, ETH_ALEN );
/* Set local MAC address */ /* Set local MAC address */
memcpy ( &ipoib->mac.gid.s.guid, &ibdev->gid.s.guid, memcpy ( &ipoib->mac.gid.s.guid, &ibdev->gid.s.guid,

View File

@ -15,6 +15,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
#include <ipxe/tables.h> #include <ipxe/tables.h>
#include <ipxe/ib_packet.h> #include <ipxe/ib_packet.h>
#include <ipxe/ib_mad.h> #include <ipxe/ib_mad.h>
#include <ipxe/if_ether.h>
/** Subnet management interface QPN */ /** Subnet management interface QPN */
#define IB_QPN_SMI 0 #define IB_QPN_SMI 0
@ -457,6 +458,9 @@ struct ib_device {
/** General services interface */ /** General services interface */
struct ib_mad_interface *gsi; struct ib_mad_interface *gsi;
/** IPoIB LEMAC (if non-default) */
uint8_t lemac[ETH_ALEN];
/** Driver private data */ /** Driver private data */
void *drv_priv; void *drv_priv;
}; };