]> git.openfabrics.org - ~ardavis/dapl.git/commitdiff
cma: add DAPL_CM_TOS environment variable to enable passing a TOS to the RDMA CM
authorArlin Davis <arlin.r.davis@intel.com>
Mon, 24 Jun 2013 21:19:22 +0000 (14:19 -0700)
committerArlin Davis <arlin.r.davis@intel.com>
Mon, 24 Jun 2013 21:19:22 +0000 (14:19 -0700)
Signed-off-by Matthew Finlay <matt@mellanox.com>
Acked-by: Arlin Davis <arlin.r.davis@intel.com>
dapl/openib_cma/cm.c

index bd2c1f097939fb5c973fa7b491d51ecc50885577..4e9b7c45966e61ec7a0037a0630daae3cc2155da 100644 (file)
@@ -79,7 +79,7 @@ struct dapl_pdata_hdr {
 
 static void dapli_addr_resolve(struct dapl_cm_id *conn)
 {
-       int ret;
+       int ret, tos;
 #ifdef DAPL_DBG
        struct rdma_addr *ipaddr = &conn->cm_id->route.addr;
 #endif
@@ -90,6 +90,16 @@ static void dapli_addr_resolve(struct dapl_cm_id *conn)
                     ntohl(((struct sockaddr_in *)
                            &ipaddr->dst_addr)->sin_addr.s_addr));
 
+       tos = dapl_os_get_env_val("DAPL_CM_TOS", 0);
+       if (tos) {
+               ret = rdma_set_option(conn->cm_id,RDMA_OPTION_ID,RDMA_OPTION_ID_TOS,&tos,sizeof(uint8_t));
+               if (ret) {
+                       dapl_log(DAPL_DBG_TYPE_ERR,
+                                " dapl_cma_connect: failed to set TOS ERR 0x%x %s\n",
+                                ret, strerror(errno));
+               }
+       }
+
        ret = rdma_resolve_route(conn->cm_id, conn->route_timeout);
        if (ret) {
                dapl_log(DAPL_DBG_TYPE_ERR,