[openib-general] RFC multicast support

Sean Hefty sean.hefty at intel.com
Fri Jan 27 15:47:04 PST 2006


I'd like to start a discussion about the following proposal regarding userspace
multicast support over IB.

1. I'd like to expand the CMA to include an asynchronous rdma_set_option()
routine.

2. This routine would become the user interface to joining and leaving multicast
groups.  For example:

rdma_set_option(struct rdma_cm_id *, IPPROTO_IP, IP_ADD_MEMBERSHIP,
		    struct in_addr *, sizeof(struct in_addr));

The rdma_cm_id must already have been bound to a device.

3. The specified IP address would be converted into an MGID as follows:

FF:01:scope:signature:group_id

scope - determined by IP address range
signature - x4001 or x6001 for IPv4 or IPv6, respectively
group_id - lower 28 or 80 bits of IP address

4. Join/leave requests would be tracked by the local SA cache.  A port would not
be removed from the group while there were active members.  Optionally, a port
could remain in the group without any members for some user specified duration.
(I'm not sure how useful this would be in practice.)

5. Group creation would either be controlled by some other mechanism, or by the
first join.  In the latter case, values for the qkey, sl, flowlabel, and tclass
are needed.  We could use the same values as IPoIB for this, with the exception
of making up a new qkey.

6. Some additional APIs may be necessary to assist users in sending data (i.e.
address handle attributes) over the QP.  (rdma_get_option()?)

Comments?

- Sean




More information about the general mailing list