IB/mlx4: Add support for IBoE
Add support for IBoE to mlx4_ib. The bulk of the code is handling the new address vector fields; mlx4 needs the MAC address of a remote node to include it in a WQE (for datagrams) or in the QP context (for connected QPs). Address resolution is done by assuming all unicast GIDs are either link-local IPv6 addresses. Multicast group attach/detach needs to update the NIC's multicast filters; but since attaching a QP to a multicast group can be done before the QP is bound to a port, for IBoE we need to keep track of all multicast groups that a QP is attached too before it transitions from INIT to RTR (since it does not have a port in the INIT state). Signed-off-by:Eli Cohen <eli@mellanox.co.il> [ Many things cleaned up and otherwise monkeyed with; hope I didn't introduce too many bugs. - Roland ] Signed-off-by:
Roland Dreier <rolandd@cisco.com>
Showing
- drivers/infiniband/hw/mlx4/ah.c 120 additions, 33 deletionsdrivers/infiniband/hw/mlx4/ah.c
- drivers/infiniband/hw/mlx4/mad.c 20 additions, 12 deletionsdrivers/infiniband/hw/mlx4/mad.c
- drivers/infiniband/hw/mlx4/main.c 412 additions, 36 deletionsdrivers/infiniband/hw/mlx4/main.c
- drivers/infiniband/hw/mlx4/mlx4_ib.h 30 additions, 2 deletionsdrivers/infiniband/hw/mlx4/mlx4_ib.h
- drivers/infiniband/hw/mlx4/qp.c 105 additions, 25 deletionsdrivers/infiniband/hw/mlx4/qp.c
- include/linux/mlx4/device.h 27 additions, 0 deletionsinclude/linux/mlx4/device.h
Loading