]> git.openfabrics.org - ~ardavis/dapl.git/commitdiff
mpxyd: add global routing support for proxy connections
authorArlin Davis <arlin.r.davis@intel.com>
Tue, 2 Sep 2014 19:53:23 +0000 (12:53 -0700)
committerArlin Davis <arlin.r.davis@intel.com>
Tue, 2 Sep 2014 19:53:23 +0000 (12:53 -0700)
Signed-off-by: Arlin Davis <arlin.r.davis@intel.com>
dapl/svc/mcm.c
dapl/svc/mpxyd.c

index 3287073e8e4249da711284e40f4d25332d37d8cd..6f1cff30ccb0c9b1dffd89b4e3b9de126e3250ca 100644 (file)
@@ -52,7 +52,7 @@ int mcm_proxy_in = 1;
 
 extern int mcm_rx_entries;
 extern uint64_t system_guid;
-extern char *gid_str;
+extern char gid_str[INET6_ADDRSTRLEN];
 
 void mcm_get_attr(dat_mix_prov_attr_t *pr_attr)
 {
@@ -331,6 +331,19 @@ int mcm_modify_qp(struct ibv_qp    *qp_handle,
                qp_attr.max_dest_rd_atomic = 16;
                qp_attr.min_rnr_timer = m_qp->smd->md->dev_attr.rnr_timer;
                qp_attr.ah_attr.dlid = ntohs(lid);
+               if (gid && m_qp->smd->md->dev_attr.global) {
+                       mlog(1," Global Routing: GID %s \n",
+                            inet_ntop(AF_INET6, gid, gid_str, sizeof(gid_str)));
+                       qp_attr.ah_attr.is_global = 1;
+                       qp_attr.ah_attr.grh.dgid.global.subnet_prefix =
+                               gid->global.subnet_prefix;
+                       qp_attr.ah_attr.grh.dgid.global.interface_id =
+                               gid->global.interface_id;
+                       qp_attr.ah_attr.grh.hop_limit =
+                               m_qp->smd->md->dev_attr.hop_limit;
+                       qp_attr.ah_attr.grh.traffic_class =
+                               m_qp->smd->md->dev_attr.tclass;
+               }
                qp_attr.ah_attr.sl = m_qp->smd->md->dev_attr.sl;
                qp_attr.ah_attr.src_path_bits = 0;
                qp_attr.ah_attr.port_num = m_qp->smd->md->port;
index c8ccd5ec9396a45aea30b0addafa89f196556602..4f228bce54e3c1cb6854d982240803cb9faa832f 100644 (file)
@@ -52,7 +52,7 @@ extern char *log_file;
 extern char *opts_file;
 extern FILE *logfile;
 extern mpxy_lock_t flock;
-extern char *gid_str;
+extern char gid_str[INET6_ADDRSTRLEN];
 
 #define MCM_NNODES 8