> "in a meaginful way" is a rather sibylline statement ;-) Does this mean it
> does not work at all or does it mean it works "somehow differently" in a way
> that prevents you from implementing the same semantics as on Linux in librdma?
> There seems to be code for multicasting in the datagram end point. From your
> answer, I assume that is for future use, right?

IB multicast requires the endpoint to join the multicast group with the IB SA.  
This requires sending a message to the SA, which programs the switches so that 
multicast traffic can flow to/from the joining node.  When the endpoint wishes 
to leave the multicast group, it sends another message to the SA, which 
programs the switches to halt multicast traffic to the node.

The IB architecture specifies that the SA manages which endpoints are joined to 
a multicast group on a per port basis, and that a node is either joined or not. 
 The SA does not maintain any reference counting on the number of join requests 
that it receives from a node.  I.e. If it receives 10 join requests, followed 
by 1 leave request, the node will NOT be part of the multicast group.

This means that the endpoint itself must maintain some sort of reference count 
in order to support more than 1 user attached to a multicast group at a time.  
The windows stack lacks this capability.  There is some support for joining and 
leaving multicast groups, but it only works if there is a single user of the 
group.  Otherwise, a second user can join the group, leave it, and result in 
the endpoint being removed from the group, without other users being aware.

So... that's what I mean by "in a meaningful way"...

- Sean
_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw

Reply via email to