socket cm and ud cm providers support QP modify with is_global
set and GRH. New v2 providers didn't pass GID information
in modify_qp RTR call and incorrectly byte swapped the already
network order GID. Add debug print of GID during global modify.

Signed-off-by: Arlin Davis <[email protected]>
---
 dapl/openib_common/qp.c |    9 +++++++--
 dapl/openib_scm/cm.c    |    4 ++--
 dapl/openib_ucm/cm.c    |    4 ++--
 3 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/dapl/openib_common/qp.c b/dapl/openib_common/qp.c
index 143098e..eec5bf2 100644
--- a/dapl/openib_common/qp.c
+++ b/dapl/openib_common/qp.c
@@ -399,11 +399,16 @@ dapls_modify_qp_state(IN ib_qp_handle_t           
qp_handle,
                /* address handle. RC and UD */
                qp_attr.ah_attr.dlid = ntohs(lid);
                if (ia_ptr->hca_ptr->ib_trans.global) {
+                       dapl_dbg_log(DAPL_DBG_TYPE_EP, 
+                                    " QPS_RTR: GID Subnet 0x" F64x " ID 0x" 
F64x "\n", 
+                                    (unsigned long 
long)htonll(gid->global.subnet_prefix),
+                                    (unsigned long 
long)htonll(gid->global.interface_id));
+
                        qp_attr.ah_attr.is_global = 1;
                        qp_attr.ah_attr.grh.dgid.global.subnet_prefix = 
-                               ntohll(gid->global.subnet_prefix);
+                               gid->global.subnet_prefix;
                        qp_attr.ah_attr.grh.dgid.global.interface_id = 
-                               ntohll(gid->global.interface_id);
+                               gid->global.interface_id;
                        qp_attr.ah_attr.grh.hop_limit =
                                ia_ptr->hca_ptr->ib_trans.hop_limit;
                        qp_attr.ah_attr.grh.traffic_class =
diff --git a/dapl/openib_scm/cm.c b/dapl/openib_scm/cm.c
index 3201c9a..759e926 100644
--- a/dapl/openib_scm/cm.c
+++ b/dapl/openib_scm/cm.c
@@ -732,7 +732,7 @@ static void dapli_socket_connect_rtu(dp_ib_cm_handle_t 
cm_ptr)
                                  IBV_QPS_RTR, 
                                  cm_ptr->msg.saddr.ib.qpn,
                                  cm_ptr->msg.saddr.ib.lid,
-                                 NULL) != DAT_SUCCESS) {
+                                 (ib_gid_handle_t)cm_ptr->msg.saddr.ib.gid) != 
DAT_SUCCESS) {
                dapl_log(DAPL_DBG_TYPE_ERR,
                         " CONN_RTU: QPS_RTR ERR %s (%d,%d,%x,%x,%x) -> %s 
%x\n",
                         strerror(errno), ep_ptr->qp_handle->qp_type,
@@ -1107,7 +1107,7 @@ dapli_socket_accept_usr(DAPL_EP * ep_ptr,
                                  IBV_QPS_RTR, 
                                  cm_ptr->msg.saddr.ib.qpn,
                                  cm_ptr->msg.saddr.ib.lid,
-                                 NULL) != DAT_SUCCESS) {
+                                 (ib_gid_handle_t)cm_ptr->msg.saddr.ib.gid) != 
DAT_SUCCESS) {
                dapl_log(DAPL_DBG_TYPE_ERR,
                         " ACCEPT_USR: QPS_RTR ERR %s -> %s\n",
                         strerror(errno), 
diff --git a/dapl/openib_ucm/cm.c b/dapl/openib_ucm/cm.c
index b51556a..f5459c0 100644
--- a/dapl/openib_ucm/cm.c
+++ b/dapl/openib_ucm/cm.c
@@ -1019,7 +1019,7 @@ static void ucm_connect_rtu(dp_ib_cm_handle_t cm, 
ib_cm_msg_t *msg)
                                  IBV_QPS_RTR, 
                                  cm->msg.daddr.ib.qpn,
                                  cm->msg.daddr.ib.lid,
-                                 NULL) != DAT_SUCCESS) {
+                                 (ib_gid_handle_t)cm->msg.daddr.ib.gid) != 
DAT_SUCCESS) {
                dapl_log(DAPL_DBG_TYPE_ERR,
                         " CONN_RTU: QPS_RTR ERR %s <- lid %x iqp %x\n",
                         strerror(errno), ntohs(cm->msg.daddr.ib.lid),
@@ -1417,7 +1417,7 @@ dapli_accept_usr(DAPL_EP *ep, DAPL_CR *cr, DAT_COUNT 
p_size, DAT_PVOID p_data)
                                  IBV_QPS_RTR, 
                                  cm->msg.daddr.ib.qpn,
                                  cm->msg.daddr.ib.lid,
-                                 NULL) != DAT_SUCCESS) {
+                                 (ib_gid_handle_t)cm->msg.daddr.ib.gid) != 
DAT_SUCCESS) {
                dapl_log(DAPL_DBG_TYPE_ERR,
                         " ACCEPT_USR: QPS_RTR ERR %s -> lid %x qpn %x\n",
                         strerror(errno), ntohs(cm->msg.daddr.ib.lid),
-- 
1.5.2.5

_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw

Reply via email to