[ipxe-devel] Infiniband GUID
Michael Brown
mcb30 at ipxe.org
Wed Sep 6 09:57:50 UTC 2017
On 06/09/17 01:08, Allen, Benjamin S. wrote:
>> If you know the GUID, then you can trivially calculate the IPoIB MAC that will be used by iPXE (and exposed as ${netX/mac}). Does this give you the functionality that you need?
>
> Yes this is pretty reasonable workaround, and is a pretty trivial change to make in our codebase. I do wonder on large IB fabrics if the removal of the middle bytes will cause any collisions.
From memory: this MAC construction scheme is a version of some kind of
Infiniband standard for constructing Ethernet-form MACs, simplified to
cover only the GUID schemes used by vendors for which iPXE has driver
support. In theory, it should be impossible to produce a collision
since each GUID-allocating vendor is already aware of this scheme. (In
practice, iPXE's model may be missing coverage for some vendors.)
Having thought about it some more, I've realised that iPXE's internal
model for a network device already includes a "hw_addr" field which is
separate from "ll_addr" (and allowed to be a different length), and that
for an IPoIB device this already contains the GUID. I've added support
for accessing this field in
http://git.ipxe.org/ipxe.git/commitdiff/8047baf
so you can now use ${netX/hwaddr} to obtain the GUID.
Michael
More information about the ipxe-devel
mailing list