From 779dfdfe4ebc6f287544e8aad589e1578a58537a Mon Sep 17 00:00:00 2001 From: Amir Hanania Date: Wed, 16 Sep 2015 17:31:13 -0700 Subject: [PATCH] ucm: fca create group incorrectly using IB addr instead of socket address. need the socket address for socket based create group info exchange. Signed-off-by: Amir Hanania --- dapl/openib_common/collectives/fca_provider.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/dapl/openib_common/collectives/fca_provider.c b/dapl/openib_common/collectives/fca_provider.c index 30a33e8..51bf6a8 100644 --- a/dapl/openib_common/collectives/fca_provider.c +++ b/dapl/openib_common/collectives/fca_provider.c @@ -314,7 +314,18 @@ static int create_member(struct dapl_hca *hca) * only rank0 needs listen, but we don't know who is rank0 yet. * Everyone listen, start on seed port until find one unused */ +#ifdef _OPENIB_UCM_ + if (getlocalipaddr((char*)&tp->m_addr, sizeof(DAT_SOCK_ADDR))) { + dapl_log(DAPL_DBG_TYPE_ERR, + "create_member: getlocaladdr ERR ret=%s \n", strerror(errno)); + ret = errno; + goto err; + } + dapl_log(DAPL_DBG_TYPE_EXTENSION, " create_member: UCM local addr %s\n", + inet_ntoa(((struct sockaddr_in *)&tp->m_addr)->sin_addr)); +#else memcpy((void*)&tp->m_addr, (void*)&hca->hca_address, sizeof(DAT_SOCK_ADDR)); +#endif do { tp->m_addr.sin_port = htons(lport++); -- 2.41.0