This is an old revision of the document!
What Is Infiniband?
InfiniBand (IB) is a high-speed (10-300Gb/s) low-latency (140–2600 ns) switched-fabric interconnect, developed primarily for HPC, but as of now widely adopted where its properties are in demand.
InfiniBand is supported on most major operating systems: Windows, Linux, (Open)Solaris, AIX, HP-UX, z/OS, among others. OpenFabrics Alliance (founded in 2004 as OpenIB Alliance) is developing a cross-platform IB/RDMA stack for Linux and Windows. The stack is released as OFED (OpenFabrics Enterprise Distribution) under both GPL and BSD licenses.
Infiniband in FreeBSD
The OFED stack was merged in March 2011 (http://jeffr-tech.livejournal.com/23467.html) and is available in FreeBSD 9.0 and later.
Proprietary IB stacks are known to exist outside of FreeBSD proper. In particular, three major storage appliance vendors – EMC/Isilon, NetApp, and Panasas – ship products based on FreeBSD and use InfiniBand for high-speed interconnects.
Infiniband hardware support by release
| Card series | Driver | FreeBSD 9.x | FreeBSD 10.x | FreeBSD 11.x | Comments |
|---|---|---|---|---|---|
| InfiniHost | mthca | Yes | Yes | Yes | Not maintained |
| ConnectX | mlx4 | Yes | Yes | Yes | |
| ConnectX-2 | mlx4 | Yes | Yes | Yes | |
| ConnectX-3/Pro | mlx4 | Yes | Yes | Yes | |
| ConnectX-4 (Eth) | mlx5 | No | Yes | Yes | |
| ConnectX-4 (IB) | mlx5 | No | Not Yet | Not Yet | In development |
| Connect-IB | mlx5 | No | Not Yet | Not Yet | In development |
Building OFED in FreeBSD
Kernel
- Add the following options to your KERNCONF to compile the necessary protocols/protocol options into your kernel:
options OFED # Infiniband protocol stack and support options SDP # Sockets Direct Protocol for infiniband options IPOIB_CM # Use connect mode ipoib
- Add the OFED drivers to your KERNCONF (alternately you could use the MODULES_OVERRIDE variable in /etc/src.conf):
device ipoib # IP over IB devices device mlx4ib # ConnectX Infiniband support device mlxen # ConnectX Ethernet support device mthca # Infinihost cards
- Run buildkernel/installkernel per usual process.
Userland
- Add
WITH_OFED='yes'to /etc/src.conf. - Run buildworld/installworld per usual process.
- Set the “sys.device.mlx4_coreX.mlx4_portY” sysctl to either “eth” or “ib” depending on how you want the device ports to be configured.
Status
Mellanox engineers, et. al., have made substantial improvements to the IB stack in 2015/2016 to support the latest ConnectX HCAs. The freebsd-infiniband email archives contain discussions of progress and issues.
There are some outstanding work items for Infiniband/OFED on FreeBSD.
Short term items
- Upgrade to 1.5.x (Isilon). Delivery date: TBD.
Long term items
- Upgrade to 3.x (Isilon). Can't be done immediately because of refactoring done in the kernel.org branch and with the userland utilities, and the fact that things are still in a large degree of flux.
Wishlist
- WITH_OFED doesn't cover all OFED stack utilities; a number of them need to be ported from Linux and contributed back to OFED (preferred) or rewritten to work with FreeBSD.
Feedback
There's an infiniband mailing list. If you're having issues or would like to provide feedback about the Infiniband stack on FreeBSD, you should subscribe and poke the mailing list.
References
Everything below is “work in progress”. It will be moved into the correct place on this page when it's ready B)
Operating modes
We should add information here about the 3 (2.5?) main operating modes for the Mellanox Infiniband adapters:
- Native infiniband mode
- Native ethernet mode
- Infiniband mode, but with IP running over it (IPoIB)
Cables & connectors
We should add info and photo's here for the different cables & connector types
- Explain passive vs active
- Copper & optical cable
- CX4 connectors ← JustinClift has some of these. Can take photos
- SFP
- QSFP connectors ← JustinClift has some of these. Can take photos
Maximum cable length
It would also be useful to explain the maximum length of cables, according to type, connector, data rate (and whatever else).