]> git.openfabrics.org - ~ardavis/dapl.git/commitdiff
mcm: intra-node proxy missing LID setup on rejects
authorArlin Davis <arlin.r.davis@intel.com>
Thu, 30 Jul 2015 15:15:22 +0000 (08:15 -0700)
committerArlin Davis <arlin.r.davis@intel.com>
Thu, 30 Jul 2015 15:15:22 +0000 (08:15 -0700)
Signed-off-by: Arlin Davis <arlin.r.davis@intel.com>
dapl/svc/mcm.c

index c67b16f14e0434b142f1ba62ac20090741314a46..8cc3473c7680f2b752a20418ab2fa33835e45b67 100644 (file)
@@ -904,9 +904,17 @@ int mcm_cm_rej_out(mcm_ib_dev_t *md, dat_mcm_msg_t *msg, DAT_MCM_OP type, int sw
                memcpy(&smsg.saddr2, &msg->saddr2, sizeof(dat_mcm_addr_t));
        }
 
+       /* intra-node; addr1 == mic lid, addr2 == cm lid */
+       if (md->m_lid) {
+               smsg.saddr1.lid = md->m_lid;
+               memcpy(&smsg.saddr1.gid[0], &md->m_gid, 16);
+       }
+       smsg.saddr2.lid = md->addr.lid;
+       memcpy(&smsg.saddr2.gid[0], &md->addr.gid, 16);
+
        mlog(2," sLID %x, sQPN %x sPORT %x -> dLID %x, dQPN %x dPORT %x\n",
-            ntohs(smsg.saddr1.lid), ntohl(smsg.sqpn), ntohs(smsg.sport),
-            ntohs(smsg.daddr1.lid), ntohl(smsg.dqpn), ntohs(smsg.dport));
+            ntohs(smsg.saddr2.lid), ntohl(smsg.sqpn), ntohs(smsg.sport),
+            ntohs(smsg.daddr2.lid), ntohl(smsg.dqpn), ntohs(smsg.dport));
 
        if (type == MCM_REJ_USER)
                MCNTR(md, MCM_CM_REJ_USER_OUT);