[eoib] Add Ethernet over Infiniband (EoIB) driver
authorMichael Brown <mcb30@ipxe.org>
Wed, 9 Mar 2016 00:26:56 +0000 (00:26 +0000)
committerMichael Brown <mcb30@ipxe.org>
Wed, 9 Mar 2016 08:43:40 +0000 (08:43 +0000)
commit9154d7a65c4fea575ff684bd08dc54db814f513c
tree3e0d99f3d3b79e156e739e01e17417561d879676
parent5bcaa1e4d4217911ef7c557a1da49b6248161e80
[eoib] Add Ethernet over Infiniband (EoIB) driver

EoIB is a fairly simple protocol in which raw Ethernet frames
(excluding the CRC) are encapsulated within Infiniband Unreliable
Datagrams, with a four-byte fixed EoIB header (which conveys no actual
information).  The Ethernet broadcast domain is provided by a
multicast group, similar to the IPoIB IPv4 multicast group.

The mapping from Ethernet MAC addresses to Infiniband address vectors
is achieved by snooping incoming traffic and building a peer cache
which can then be used to map a MAC address into a port GID.  The
address vector is completed using a path record lookup, as for IPoIB.
Note that this requires every packet to include a GRH.

Add basic support for EoIB devices.  This driver is substantially
derived from the IPoIB driver.  There is currently no mechanism for
automatically creating EoIB devices.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/drivers/net/eoib.c [new file with mode: 0644]
src/include/ipxe/eoib.h [new file with mode: 0644]
src/include/ipxe/errfile.h