]> git.ipfire.org Git - thirdparty/ipxe.git/commit
[hermon] Use Ethernet MAC as eIPoIB local EMAC
authorChristian Iversen <ci@iversenit.dk>
Tue, 26 Jan 2021 21:56:42 +0000 (22:56 +0100)
committerMichael Brown <mcb30@ipxe.org>
Fri, 29 Jan 2021 00:13:46 +0000 (00:13 +0000)
commit699b9f1d1b0338272dc4871ec3348ff3281784a3
tree003db7c9d74b216755a5d42945c47e11ccf255fe
parent6cb12ee2b02dac4455bc60aebdcd326436dff743
[hermon] Use Ethernet MAC as eIPoIB local EMAC

The eIPoIB local Ethernet MAC is currently constructed from the port
GUID.  Given a base GUID/MAC value of N, Mellanox seems to populate:

  Node GUID:   N + 0
  Port 1 GUID: N + 1
  Port 2 GUID: N + 2

and

  Port 1 MAC:  N + 0
  Port 2 MAC:  N + 1

This causes a duplicate local MAC address when port 1 is configured as
Infiniband and port 2 as Ethernet, since both will derive their MAC
address as (N + 1).

Fix by using the port's Ethernet MAC as the eIPoIB local EMAC.  This
is a behavioural change that could potentially break configurations
that rely on the local EMAC value, such as a DHCP server relying on
the chaddr field for DHCP reservations.

Signed-off-by: Christian Iversen <ci@iversenit.dk>
Modified-by: Michael Brown <mcb30@ipxe.org>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/drivers/infiniband/hermon.c
src/drivers/infiniband/hermon.h