IB/sa: Track multicast join/leave requests
authorSean Hefty <sean.hefty@intel.com>
Fri, 16 Feb 2007 01:00:17 +0000 (17:00 -0800)
committerRoland Dreier <rolandd@cisco.com>
Fri, 16 Feb 2007 22:20:02 +0000 (14:20 -0800)
commitfaec2f7b96b555055d0aa6cc6b83a537270bed52
tree0916cb780a1a5d5fe2ac98364917c79f25d57fcf
parent8a2e65f87c66ab1e720f49378750cdd800f9e9cf
IB/sa: Track multicast join/leave requests

The IB SA tracks multicast join/leave requests on a per port basis and
does not do any reference counting: if two users of the same port join
the same group, and one leaves that group, then the SA will remove the
port from the group even though there is one user who wants to stay a
member left.  Therefore, in order to support multiple users of the
same multicast group from the same port, we need to perform reference
counting locally.

To do this, add an multicast submodule to ib_sa to perform reference
counting of multicast join/leave operations.  Modify ib_ipoib (the
only in-kernel user of multicast) to use the new interface.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/core/Makefile
drivers/infiniband/core/multicast.c [new file with mode: 0644]
drivers/infiniband/core/sa.h [new file with mode: 0644]
drivers/infiniband/core/sa_query.c
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
include/rdma/ib_addr.h
include/rdma/ib_sa.h