[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


so you can now use ${netX/hwaddr} to obtain the GUID.


More information about the ipxe-devel mailing list