[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