RDMA/cma: Add multicast communication support
authorSean Hefty <sean.hefty@intel.com>
Fri, 16 Feb 2007 01:00:18 +0000 (17:00 -0800)
committerRoland Dreier <rolandd@cisco.com>
Fri, 16 Feb 2007 22:29:07 +0000 (14:29 -0800)
commitc8f6a362bf3eb28ade6027b49bb160a336dd51c0
treeb9b19599c9fddea313725a359283bc624a86c1ec
parentfaec2f7b96b555055d0aa6cc6b83a537270bed52
RDMA/cma: Add multicast communication support

Extend rdma_cm to support multicast communication.  Multicast support
is added to the existing RDMA_PS_UDP port space, as well as a new
RDMA_PS_IPOIB port space.  The latter port space allows joining the
multicast groups used by IPoIB, which enables offloading IPoIB traffic
to a separate QP.  The port space determines the signature used in the
MGID when joining the group.  The newly added RDMA_PS_IPOIB also
allows for unicast operations, similar to RDMA_PS_UDP.

Supporting the RDMA_PS_IPOIB requires changing how UD QPs are initialized,
since we can no longer assume that the qkey is constant.  This requires
saving the Q_Key to use when attaching to a device, so that it is
available when creating the QP.  The Q_Key information is exported to
the user through the existing rdma_init_qp_attr() interface.

Multicast support is also exported to userspace through the rdma_ucm.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/core/cma.c
drivers/infiniband/core/ucma.c
include/rdma/rdma_cm.h
include/rdma/rdma_cm_ib.h
include/rdma/rdma_user_cm.h