Allow rdma_cm/ipoib multicast inter operability for RDMA_PS_IPOIB IDs. This is 
implemented by
having the rdma cm use the --same-- qkey and multicast gid used by ipoib where 
for RDMA_UD_UDP
IDs the rdma cm uses a qkey of its own and adds a signature byte to the 
multicast gid.

Signed-off-by: Or Gerlitz <[EMAIL PROTECTED]>

Index: rdma-dev/drivers/infiniband/core/cma.c
===================================================================
--- rdma-dev.orig/drivers/infiniband/core/cma.c 2007-01-23 15:56:01.000000000 
+0200
+++ rdma-dev/drivers/infiniband/core/cma.c      2007-01-23 15:56:23.000000000 
+0200
@@ -2473,7 +2473,10 @@ static int cma_join_ib_multicast(struct
                return ret;

        ip_ib_mc_map(sin->sin_addr.s_addr, mc_map);
-       mc_map[7] = 0x01;                       /* Use RDMA CM signature */
+       if (id_priv->id.ps == RDMA_PS_UDP) {
+               rec.qkey  = RDMA_UD_QKEY;       /* Use RDMA CM QKEY      */
+               mc_map[7] = 0x01;               /* Use RDMA CM signature */
+       }
        mc_map[8] = ib_addr_get_pkey(dev_addr) >> 8;
        mc_map[9] = (unsigned char) ib_addr_get_pkey(dev_addr);



_______________________________________________
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to