[ipxe-devel] Infiniband GUID

Allen, Benjamin S. bsallen at alcf.anl.gov
Wed Sep 6 14:51:42 UTC 2017


> 
> On Sep 6, 2017, at 4:57 AM, Michael Brown <mcb30 at ipxe.org> wrote:
> 
> 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

Hi Michael,

Very cool. Thanks for working on this. I'll send a request to Mellanox to cherry-pick or merge this into FlexBoot as well.

Ben


More information about the ipxe-devel mailing list