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