That sounds simple enough... but a few questions:
1. If I am not using rdma_join_multicast, would I simply use multiple
calls to ibv_attach_multicast?
2. My IB code is serving as a pass through layer between two
pre-existing simulations which previously communicated via reflective
memory. It is much easier for me to insert this layer rather than
modify these existing apps. So SimApp A passes data to my IBLayer
which multicasts it to IBLayers on other machines. Instances of these
IBLayers, upon receiving hte data, place it in shared memory for
SimApp B to consume. There are multiple types of data passing between
the SimApps and my IBlayer... All I want my IBLayer to do is take N
Bytes of Data and place it in the correct shared memory location. But
if it doesn't know what type of data it is, it won't know the correct
shared memory location... I thought if I have multiple multicast
groups and I use each one for a different type of data, e.g. MG 1 for
DataType 1, MG2 for DataType 2 and so on. Then the IBLayers receving
the data would know that data received from MG 1 goes in shared mem
segment 1 etc.
If I create my multicast groups as you suggested, will data coming
from each multicast group will appear to each node as coming from the
same place, or on the same qp? It seems like I would have to 1 qp for
each data type, post an rr for each data type on thereceiver side,
post a sr for each data type on the sender side, and would receive
completion events on completion queues for each data type. If that is
the case, what else besides qps, cqs, etc, would each multicast group
require...
Thx
Quoting "Hefty, Sean" <[email protected]>:
I am trying to modify one of the multicast examples (mckey.c) so that
I have multiple multicast groups each one handling a different type of
data. I am somewhat confused as to how I would do this. can I keep 1
RDMA CM channel between each server/client pair? Would I need to keep
a qp, send/recv queue and completion queue for each multicast group?
You can use a single QP, rdma_cm_id, completion channel, and CQ for
all multicast groups. Simply call rdma_join_multicast() for every
group that you want to join. E.g.
rdma_create_id()
rdma_bind_addr()
rdma_create_qp()
rdma_join_multicast()
rdma_join_multicast()
rdma_join_multicast()
rdma_join_multicast()
...
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html