]> git.openfabrics.org - ~shefty/rdma-win.git/commitdiff
[DAPL2] sync up with DAT consortium uDAT/DAPL code base.
authorstansmith <stansmith@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Thu, 17 Jan 2008 23:11:02 +0000 (23:11 +0000)
committerstansmith <stansmith@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Thu, 17 Jan 2008 23:11:02 +0000 (23:11 +0000)
git-svn-id: svn://openib.tc.cornell.edu/gen1@926 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

41 files changed:
trunk/ulp/dapl2/README.linux
trunk/ulp/dapl2/dapl/common/dapl_cookie.c
trunk/ulp/dapl2/dapl/common/dapl_cr_accept.c
trunk/ulp/dapl2/dapl/common/dapl_cr_callback.c
trunk/ulp/dapl2/dapl/common/dapl_cr_util.c
trunk/ulp/dapl2/dapl/common/dapl_ep_connect.c
trunk/ulp/dapl2/dapl/common/dapl_ep_disconnect.c
trunk/ulp/dapl2/dapl/common/dapl_ep_util.c
trunk/ulp/dapl2/dapl/common/dapl_evd_free.c
trunk/ulp/dapl2/dapl/common/dapl_evd_qp_async_error_callb.c
trunk/ulp/dapl2/dapl/common/dapl_evd_util.c
trunk/ulp/dapl2/dapl/common/dapl_hca_util.c
trunk/ulp/dapl2/dapl/common/dapl_ia_query.c
trunk/ulp/dapl2/dapl/common/dapl_psp_free.c
trunk/ulp/dapl2/dapl/common/dapl_sp_util.c
trunk/ulp/dapl2/dapl/ibal/dapl_ibal_dto.h
trunk/ulp/dapl2/dapl/include/dapl.h
trunk/ulp/dapl2/dapl/udapl/SOURCES
trunk/ulp/dapl2/dapl/udapl/dapl_evd_wait.c
trunk/ulp/dapl2/dapl/udapl/linux/dapl_osd.h
trunk/ulp/dapl2/dapl/udapl_scm/SOURCES
trunk/ulp/dapl2/dat/common/dat_sr.c
trunk/ulp/dapl2/dat/include/dat/dat.h
trunk/ulp/dapl2/dat/include/dat/dat_ib_extensions.h
trunk/ulp/dapl2/dat/include/dat/udat.h
trunk/ulp/dapl2/dat/udat/SOURCES
trunk/ulp/dapl2/dat/udat/linux/dat_osd.h
trunk/ulp/dapl2/test/dapltest/SOURCES
trunk/ulp/dapl2/test/dapltest/cmd/dapl_netaddr.c
trunk/ulp/dapl2/test/dapltest/common/dapl_endian.c
trunk/ulp/dapl2/test/dapltest/mdep/linux/dapl_mdep_user.c
trunk/ulp/dapl2/test/dapltest/mdep/linux/dapl_mdep_user.h
trunk/ulp/dapl2/test/dapltest/scripts/dt-cli.bat
trunk/ulp/dapl2/test/dapltest/test/dapl_client.c
trunk/ulp/dapl2/test/dapltest/test/dapl_performance_stats.c
trunk/ulp/dapl2/test/dapltest/test/dapl_test_util.c
trunk/ulp/dapl2/test/dtest/README
trunk/ulp/dapl2/test/dtest/SOURCES
trunk/ulp/dapl2/test/dtest/dtest.c
trunk/ulp/dapl2/test/dtestx/SOURCES
trunk/ulp/dapl2/test/dtestx/dtestx.c

index 8a8652494d3859c1deede3cf02256e5993605257..aa9158d623a170452114abc15ee59ef218cfe072 100644 (file)
@@ -17,16 +17,18 @@ Building debug version:
 ./configure --enable-debug\r
 make\r
 \r
-Build example with OFED prefix (x86_64)\r
------------------------------------------\r
+Build example with OFED 1.2+ prefix (x86_64)\r
+---------------------------------------------\r
 ./autogen.sh\r
-./configure --prefix /usr/local/ofed --libdir /usr/local/ofed/lib64 LDFLAGS=-L/usr/local/ofed/lib64 CPPFLAGS="-I/usr/local/ofed/include"\r
+./configure --prefix /usr --sysconf=/etc --libdir /usr/lib64 LDFLAGS=-L/usr/lib64 CPPFLAGS="-I/usr/include"\r
 make\r
 \r
 Installing:\r
 ----------\r
 make install\r
 \r
+Note: The development package installs DAT 2.0 include files under /usr/include/dat2 to co-exist with DAT 1.2 /usr/include/dat\r
+\r
 NOTE: to link these libraries you must either use libtool and \r
 specify the full pathname of the library, or use the `-LLIBDIR' \r
 flag during linking and do at least one of the following:\r
@@ -47,19 +49,32 @@ more information, such as the ld(1) and ld.so(8) manual pages.
 sample /etc/dat.conf \r
 \r
 #\r
-# DAT 1.2 configuration file, sample OFED\r
+# DAT 1.2 and 2.0 configuration file\r
 #\r
 # Each entry should have the following fields:\r
 #\r
 # <ia_name> <api_version> <threadsafety> <default> <lib_path> \\r
 #           <provider_version> <ia_params> <platform_params>\r
 #\r
-# For openib-cma provider you can specify <ia_params> as either:\r
-#      network address, network hostname, or netdev name and 0 for port\r
+# For the uDAPL cma provder, specify <ia_params> as one of the following:\r
+#       network address, network hostname, or netdev name and 0 for port\r
+#\r
+# Simple (OpenIB-cma) default with netdev name provided first on list\r
+# to enable use of same dat.conf version on all nodes\r
 #\r
-# This example shows netdev name, enabling administrator to use same copy across cluster\r
+# Add examples for multiple interfaces and IPoIB HA fail over, and bonding\r
 #\r
-OpenIB-cma u1.2 nonthreadsafe default /usr/local/ofed/lib64/libdapl-cma.so mv_dapl.1.2 "ib0 0" ""\r
+OpenIB-cma u1.2 nonthreadsafe default libdaplcma.so.1 dapl.1.2 "ib0 0" ""\r
+OpenIB-cma-1 u1.2 nonthreadsafe default libdaplcma.so.1 dapl.1.2 "ib1 0" ""\r
+OpenIB-cma-2 u1.2 nonthreadsafe default libdaplcma.so.1 dapl.1.2 "ib2 0" ""\r
+OpenIB-cma-3 u1.2 nonthreadsafe default libdaplcma.so.1 dapl.1.2 "ib3 0" ""\r
+OpenIB-bond u1.2 nonthreadsafe default libdaplcma.so.1 dapl.1.2 "bond0 0" ""\r
+OpenIB-2-cma u2.0 nonthreadsafe default libdaplcma.so.2 dapl.2.0 "ib0 0" ""\r
+OpenIB-2-cma-1 u2.0 nonthreadsafe default libdaplcma.so.2 dapl.2.0 "ib1 0" ""\r
+OpenIB-2-cma-2 u2.0 nonthreadsafe default libdaplcma.so.2 dapl.2.0 "ib2 0" ""\r
+OpenIB-2-cma-3 u2.0 nonthreadsafe default libdaplcma.so.2 dapl.2.0 "ib3 0" ""\r
+OpenIB-2-bond u2.0 nonthreadsafe default libdaplcma.so.2 dapl.2.0 "bond0 0" ""\r
+\r
 \r
 =============================\r
 3.0 Bugs/Known issues\r
index 2b69cc9b94d6810290f1d81ee47411c76da48097..f941abb4c29051452b44918fa125d75a6bf47219 100644 (file)
@@ -183,7 +183,7 @@ dapls_cb_free (
     if ( NULL != buffer->pool )\r
     {\r
         dapl_os_free (buffer->pool, buffer->pool_size * sizeof (DAPL_COOKIE));\r
-           buffer->pool = NULL;\r
+        buffer->pool = NULL;\r
     }\r
 }\r
 \r
@@ -256,6 +256,7 @@ dapls_cb_put (
     IN  DAPL_COOKIE            *cookie )\r
 {\r
     dapl_os_atomic_set (&buffer->tail, cookie->index);\r
+\r
     return DAT_SUCCESS;\r
 }\r
 \r
index 3db6f75370e3e3724a88b81a543199b9f0596b3a..db1f5e4cce279c3507c1891f300744cf644d0ce5 100644 (file)
@@ -76,10 +76,11 @@ dapl_cr_accept (
     DAT_EP_HANDLE      entry_ep_handle;\r
 \r
     dapl_dbg_log (DAPL_DBG_TYPE_API,\r
-                  "dapl_cr_accept (CR %p EP %p, PDsz %d)\n",\r
-                  cr_handle, \r
-                  ep_handle, \r
-                  private_data_size);\r
+                  "dapl_cr_accept (CR %p EP %p, PDsz %d PD %p)\n",\r
+                   cr_handle, \r
+                   ep_handle, \r
+                   private_data_size,\r
+                    private_data);\r
 \r
     if ( DAPL_BAD_HANDLE (cr_handle, DAPL_MAGIC_CR) )\r
     {\r
index 5f9878d831065ceb2a836d7fb657285a8c73ffb1..16db708dbd23201200dd32fbd6223c455f32b795 100644 (file)
@@ -93,8 +93,10 @@ dapls_cr_callback (
     DAT_RETURN         dat_status;\r
 \r
     dapl_dbg_log (DAPL_DBG_TYPE_CM | DAPL_DBG_TYPE_CALLBACK,\r
-                 "--> dapls_cr_callback! context %p event %d cm_hdl %lx\n",\r
-                 context, ib_cm_event);\r
+                 "--> dapl_cr_callback! context: %p event: %x cm_handle %p\n",\r
+                 context,\r
+                 ib_cm_event,\r
+                 (void *) ib_cm_handle);\r
 \r
     /*\r
      * Passive side of the connection, context is a SP and\r
@@ -353,7 +355,6 @@ dapli_connection_request (
     cr_ptr->sp_ptr = sp_ptr;           /* maintain sp_ptr in case of reject */\r
     cr_ptr->param.remote_port_qual = 0;\r
     cr_ptr->ib_cm_handle = ib_cm_handle;\r
-\r
 #ifdef IBHOSTS_NAMING\r
     /*\r
      * Special case: pull the remote HCA address from the private data\r
@@ -408,8 +409,7 @@ dapli_connection_request (
            return DAT_INSUFFICIENT_RESOURCES;\r
        }\r
        ep_ptr->param.ia_handle           = ia_ptr;\r
-       ep_ptr->param.local_ia_address_ptr= (DAT_IA_ADDRESS_PTR)\r
-                                                  &ia_ptr->hca_ptr->hca_address;\r
+       ep_ptr->param.local_ia_address_ptr= (DAT_IA_ADDRESS_PTR) &ia_ptr->hca_ptr->hca_address;\r
 \r
        /* Link the EP onto the IA */\r
        dapl_ia_link_ep (ia_ptr, ep_ptr);\r
@@ -443,13 +443,13 @@ dapli_connection_request (
     sp_handle.psp_handle = (DAT_PSP_HANDLE)sp_ptr;\r
 \r
     dat_status = dapls_evd_post_cr_arrival_event (\r
-                                               evd_ptr,\r
-                                               DAT_CONNECTION_REQUEST_EVENT,\r
-                                               sp_handle,\r
-                                               (DAT_IA_ADDRESS_PTR)\r
+                               evd_ptr,\r
+                               DAT_CONNECTION_REQUEST_EVENT,\r
+                               sp_handle,\r
+                               (DAT_IA_ADDRESS_PTR)\r
                                &sp_ptr->header.owner_ia->hca_ptr->hca_address,\r
-                                               sp_ptr->conn_qual,\r
-                                               (DAT_CR_HANDLE)cr_ptr);\r
+                               sp_ptr->conn_qual,\r
+                               (DAT_CR_HANDLE)cr_ptr);\r
 \r
     if (dat_status != DAT_SUCCESS)\r
     {\r
@@ -560,8 +560,8 @@ dapli_get_sp_ep (
            }\r
            sp_ptr->state = DAPL_SP_STATE_FREE;\r
            dapl_os_unlock (&sp_ptr->header.lock);\r
-           (void) dapls_ib_remove_conn_listener ( sp_ptr->header.owner_ia,\r
-                                                  sp_ptr );\r
+           (void)dapls_ib_remove_conn_listener ( sp_ptr->header.owner_ia,\r
+                                                 sp_ptr );\r
            dapls_ia_unlink_sp ( (DAPL_IA *)sp_ptr->header.owner_ia,\r
                                 sp_ptr );\r
            dapls_sp_free_sp ( sp_ptr );\r
index 03a046a6fadb50f5b0605a6892dc69765e30f864..9ae34c264ba6bfda89987f3db17318bd543b3706 100644 (file)
@@ -104,7 +104,7 @@ dapls_cr_free (
     dapl_os_assert (cr_ptr->header.magic == DAPL_MAGIC_CR ||\r
                    cr_ptr->header.magic == DAPL_MAGIC_CR_DESTROYED );\r
 \r
-    cr_ptr->header.magic = DAPL_MAGIC_INVALID;/* reset magic to prevent reuse */\r
+    cr_ptr->header.magic = DAPL_MAGIC_INVALID; /* reset magic to prevent reuse */\r
     dapl_os_free (cr_ptr, sizeof (DAPL_CR));\r
 }\r
 \r
index d71295c99d9f6632ff5da8bad791dcc15e43af6c..7e44bd9b92eae75dd462ee76ef9a1421944cc584 100644 (file)
@@ -403,7 +403,7 @@ bail:
  *     DAT_INVALID_STATE\r
  *     DAT_MODEL_NOT_SUPPORTED\r
  */\r
-DAT_RETURN DAT_API \r
+DAT_RETURN DAT_API\r
 dapl_ep_common_connect (\r
        IN      DAT_EP_HANDLE ep,               /* ep_handle            */\r
        IN      DAT_IA_ADDRESS_PTR remote_addr, /* remote_ia_address    */\r
index 8e4c1c28fee4f2b5e12d0d1f2151f2d2a891c390..fdb759be26204093110dfcd0a6f6d85ed2a9dc2a 100644 (file)
@@ -174,7 +174,7 @@ dapl_ep_disconnect (
 \r
 bail:\r
     dapl_dbg_log (DAPL_DBG_TYPE_RTN | DAPL_DBG_TYPE_CM,\r
-                 "dapl_ep_disconnect (%lx) returns 0x%x\n",\r
+                 "dapl_ep_disconnect (EP %p) returns 0x%x\n",\r
                  ep_ptr, dat_status);\r
 \r
     return dat_status;\r
index 2eb936d18e0ab7979abf6bd682ef7978af6bc6f7..961d1635b5af070e2e30ac77f7403f4caff5ddcb 100644 (file)
@@ -248,7 +248,7 @@ dapl_ep_dealloc (
 {\r
     dapl_os_assert (ep_ptr->header.magic == DAPL_MAGIC_EP);\r
 \r
-    ep_ptr->header.magic = DAPL_MAGIC_INVALID;/* reset magic to prevent reuse */\r
+    ep_ptr->header.magic = DAPL_MAGIC_INVALID; /* reset magic to prevent reuse */\r
 \r
     dapls_cb_free ( &ep_ptr->req_buffer );\r
     dapls_cb_free ( &ep_ptr->recv_buffer );\r
@@ -271,9 +271,9 @@ dapl_ep_dealloc (
 #if defined(_WIN32) || defined(_WIN64)\r
     if ( ep_ptr->ibal_cm_handle )\r
     {\r
-       dapl_os_free ( ep_ptr->ibal_cm_handle,\r
+        dapl_os_free ( ep_ptr->ibal_cm_handle,\r
                        sizeof ( *ep_ptr->ibal_cm_handle ) );\r
-       ep_ptr->ibal_cm_handle = NULL;\r
+        ep_ptr->ibal_cm_handle = NULL;\r
     }\r
 #endif\r
     dapl_os_free (ep_ptr, sizeof (DAPL_EP) + sizeof (DAT_SOCK_ADDR) );\r
index cbb40ac379546a9c93bfb7ba2a686645d5306d69..c142b3a8f621ec57acf2df5e08c6bdd359b23359 100644 (file)
@@ -126,8 +126,8 @@ DAT_RETURN DAT_API dapl_evd_free (
 \r
 bail:\r
     if ( dat_status )\r
-        dapl_dbg_log (DAPL_DBG_TYPE_RTN, "dapl_evd_free () returns 0x%x\n",\r
-                      dat_status);\r
+        dapl_dbg_log (DAPL_DBG_TYPE_RTN,\r
+                       "dapl_evd_free () returns 0x%x\n", dat_status);\r
 \r
     return dat_status;\r
 }\r
index cffd21c3ecf550a145b249d58d9b76dec6b4bb14..eebff2f38b533d44da8b5fb564214dddc9b4c7d7 100644 (file)
@@ -98,8 +98,13 @@ dapl_evd_qp_async_error_callback (
     DAT_EVENT_NUMBER   async_event;\r
     DAT_RETURN         dat_status;\r
 \r
+#ifdef _VENDOR_IBAL_\r
     dapl_dbg_log (DAPL_DBG_TYPE_ERR,"%s() IB err %s\n",\r
                        __FUNCTION__, ib_get_async_event_str(cause_ptr->code));\r
+#else\r
+    dapl_dbg_log (DAPL_DBG_TYPE_ERR,"%s() IB async QP err - ctx=%p\n",\r
+                       __FUNCTION__, context);\r
+#endif\r
 \r
     ep_ptr    = (DAPL_EP *) context;\r
     if ( !ep_ptr ) {\r
index 2e68ef6baad8bc24d7e3ae0c70c8143bdf499d60..ee5f943095057cfdd5be80e10cd4893da827151c 100644 (file)
@@ -538,6 +538,9 @@ bail:
     return dat_status;\r
 }\r
 \r
+#if defined(DAPL_DBG) && !defined(DAPL_GET_CQE_OP_STR)\r
+#define DAPL_GET_CQE_OP_STR(e) "Unknown CEQ OP String?"\r
+#endif\r
 \r
 /*\r
  * dapli_evd_eh_print_cqe\r
@@ -558,23 +561,6 @@ dapli_evd_eh_print_cqe (
 {\r
 #ifdef DAPL_DBG\r
 \r
-#if defined(linux)\r
-    static char *optable[] =\r
-    {\r
-        "OP_RDMA_WRITE",\r
-        "OP_RDMA_WRITE_IMM",\r
-        "OP_SEND",\r
-        "OP_SEND_IMM",\r
-        "OP_RDMA_READ",\r
-        "OP_COMP_AND_SWAP",\r
-        "OP_FETCH_AND_ADD",\r
-        "OP_RECEIVE",\r
-        "OP_RECEIVE_IMM",\r
-        "OP_BIND_MW",\r
-        0\r
-    };\r
-#endif\r
-\r
     dapl_dbg_log (DAPL_DBG_TYPE_CALLBACK,\r
                  "\t >>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<\n");\r
     dapl_dbg_log (DAPL_DBG_TYPE_CALLBACK,\r
@@ -584,15 +570,9 @@ dapli_evd_eh_print_cqe (
                  DAPL_GET_CQE_WRID (cqe_ptr));\r
     if (DAPL_GET_CQE_STATUS (cqe_ptr) == 0)\r
     {\r
-#ifdef linux\r
        dapl_dbg_log (DAPL_DBG_TYPE_CALLBACK,\r
                  "\t\t op_type: %s\n",\r
-                 optable[DAPL_GET_CQE_OPTYPE (cqe_ptr)]);\r
-#else\r
-       dapl_dbg_log (DAPL_DBG_TYPE_CALLBACK,\r
-          "\t\t op_type: %s\n",\r
-          DAPL_GET_CQE_OP_STR(cqe_ptr));\r
-#endif\r
+                 DAPL_GET_CQE_OP_STR(cqe_ptr));\r
        dapl_dbg_log (DAPL_DBG_TYPE_CALLBACK,\r
                  "\t\t bytes_num %d\n",\r
                  DAPL_GET_CQE_BYTESNUM (cqe_ptr));\r
@@ -1099,24 +1079,24 @@ dapli_evd_cqe_to_event (
 #ifdef DAT_EXTENSIONS\r
            /* Extended via request post or message receive */\r
            if ((cookie->val.dto.type == DAPL_DTO_TYPE_EXTENSION) ||\r
-                   (cookie->val.dto.type == DAPL_DTO_TYPE_RECV && \r
-                   DAPL_GET_CQE_OPTYPE(cqe_ptr) !=  OP_RECEIVE))\r
+               (cookie->val.dto.type == DAPL_DTO_TYPE_RECV && \r
+               DAPL_GET_CQE_OPTYPE(cqe_ptr) !=  OP_RECEIVE))\r
            {\r
-                   dapls_cqe_to_event_extension (ep_ptr, cookie, cqe_ptr, event_ptr);\r
-                   dapls_cookie_dealloc (&ep_ptr->req_buffer, cookie);\r
-                   break;\r
+               dapls_cqe_to_event_extension (ep_ptr, cookie, cqe_ptr, event_ptr);\r
+               dapls_cookie_dealloc (&ep_ptr->req_buffer, cookie);\r
+               break;\r
            }\r
 #endif\r
 \r
            if ( DAPL_DTO_TYPE_RECV == cookie->val.dto.type )\r
            {\r
-                   dapl_os_atomic_dec (&ep_ptr->recv_count);\r
-                   buffer = &ep_ptr->recv_buffer;\r
+               dapl_os_atomic_dec (&ep_ptr->recv_count);\r
+               buffer = &ep_ptr->recv_buffer;\r
            }\r
            else\r
            {\r
-                   dapl_os_atomic_dec (&ep_ptr->req_count);\r
-                   buffer = &ep_ptr->req_buffer;\r
+               dapl_os_atomic_dec (&ep_ptr->req_count);\r
+               buffer = &ep_ptr->req_buffer;\r
            }\r
 \r
            event_ptr->event_number = DAT_DTO_COMPLETION_EVENT;\r
@@ -1129,14 +1109,14 @@ dapli_evd_cqe_to_event (
            if ( cookie->val.dto.type == DAPL_DTO_TYPE_SEND ||\r
                 cookie->val.dto.type == DAPL_DTO_TYPE_RDMA_WRITE )\r
            {\r
-                   /* Get size from DTO; CQE value may be off.  */\r
-                   event_ptr->event_data.dto_completion_event_data.transfered_length =\r
-                       cookie->val.dto.size;\r
+               /* Get size from DTO; CQE value may be off.  */\r
+               event_ptr->event_data.dto_completion_event_data.transfered_length =\r
+                   cookie->val.dto.size;\r
            }\r
            else\r
            {\r
-                   event_ptr->event_data.dto_completion_event_data.transfered_length =\r
-                       DAPL_GET_CQE_BYTESNUM (cqe_ptr);\r
+               event_ptr->event_data.dto_completion_event_data.transfered_length =\r
+                    DAPL_GET_CQE_BYTESNUM (cqe_ptr);\r
            }\r
 \r
            dapls_cookie_dealloc (buffer, cookie);\r
@@ -1155,19 +1135,19 @@ dapli_evd_cqe_to_event (
                cookie->val.rmr.cookie;\r
            if (dto_status == DAT_DTO_SUCCESS)\r
            {\r
-                   event_ptr->event_data.rmr_completion_event_data.status =\r
-                       DAT_RMR_BIND_SUCCESS;\r
-                   dapl_os_assert ((DAPL_GET_CQE_OPTYPE (cqe_ptr)) == OP_BIND_MW);\r
+               event_ptr->event_data.rmr_completion_event_data.status =\r
+                   DAT_RMR_BIND_SUCCESS;\r
+               dapl_os_assert ((DAPL_GET_CQE_OPTYPE (cqe_ptr)) == OP_BIND_MW);\r
            }\r
            else\r
            {\r
-                   dapl_dbg_log (DAPL_DBG_TYPE_DTO_COMP_ERR,\r
+               dapl_dbg_log (DAPL_DBG_TYPE_DTO_COMP_ERR,\r
                              " MW bind completion ERROR: %d: op %#x ep: %p\n", \r
                              dto_status, \r
                              DAPL_GET_CQE_OPTYPE (cqe_ptr), ep_ptr);\r
-                   event_ptr->event_data.rmr_completion_event_data.status =\r
-                       DAT_RMR_OPERATION_FAILED;\r
-                   dapl_os_atomic_dec(&cookie->val.rmr.rmr->lmr->lmr_ref_count);\r
+               event_ptr->event_data.rmr_completion_event_data.status =\r
+                   DAT_RMR_OPERATION_FAILED;\r
+               dapl_os_atomic_dec(&cookie->val.rmr.rmr->lmr->lmr_ref_count);\r
            }\r
 \r
            dapls_cookie_dealloc (&ep_ptr->req_buffer, cookie);\r
@@ -1283,7 +1263,8 @@ dapls_evd_copy_cq (
         * will overwrite.\r
         */\r
 \r
-       event = dapli_evd_get_and_init_event (evd_ptr,DAT_DTO_COMPLETION_EVENT);\r
+       event = dapli_evd_get_and_init_event (\r
+               evd_ptr, DAT_DTO_COMPLETION_EVENT );\r
        if (event == NULL)\r
        {\r
            /* We've already attempted the overflow post; return.  */\r
index 9cbb92f2a7ad25d7ca69ba87e8df88b9c07da67e..1254286e857c3ced2d61d74cd12b2e6a84245841 100644 (file)
@@ -90,6 +90,7 @@ dapl_hca_alloc (
             hca_ptr = NULL;\r
         }\r
     }\r
+\r
     return (hca_ptr);\r
 }\r
 \r
index ec48ee55b03e93ea3f2d89968d5bc2f28f7586b0..05938ed5bdde862bcbee4c1f6f0e3b55db965218 100644 (file)
@@ -222,9 +222,10 @@ dapl_ia_query (
     }\r
 \r
 bail:\r
-    if (dat_status != DAT_SUCCESS)\r
-         dapl_dbg_log (DAPL_DBG_TYPE_RTN,\r
-                       "dapl_ia_query () returns 0x%x\n", dat_status);\r
+    if (dat_status != DAT_SUCCESS) {\r
+       dapl_dbg_log (DAPL_DBG_TYPE_RTN,\r
+                       "dapl_ia_query () returns 0x%x\n", dat_status);\r
+    }\r
 \r
     return dat_status;\r
 }\r
index a376ed2e329b4985ed0f7f13a5169f606750e5cf..de4e79686b53953b61f50c62f49fdd7fdd718189 100644 (file)
@@ -80,7 +80,6 @@ dapl_psp_free (
        goto bail;\r
     }\r
 \r
-    /* ia_ptr = (DAPL_IA *)sp_ptr->header.owner_ia; */\r
     ia_ptr = sp_ptr->header.owner_ia;\r
 \r
     /* \r
@@ -109,6 +108,9 @@ dapl_psp_free (
      * up. The PSP is used to contain CR records for each connection,\r
      * which contain information necessary to disconnect.\r
      */\r
+    dapl_dbg_log (DAPL_DBG_TYPE_CM,\r
+                  ">>> dapl_psp_free: state %d cr_list_count %d\n",\r
+                  sp_ptr->state, sp_ptr->cr_list_count );\r
 \r
     if ( (sp_ptr->state == DAPL_SP_STATE_PSP_LISTENING ||\r
          sp_ptr->state == DAPL_SP_STATE_PSP_PENDING) &&\r
index 19bd3ce4963b62a646d90984724b1c7283d6e012..52065e6d3b7872ec96baf9890d4c4ccbfdeb771e 100644 (file)
@@ -99,7 +99,7 @@ dapls_sp_alloc (
     dapl_os_lock_init (&sp_ptr->header.lock);\r
 \r
 #if defined(_WIN32) || defined(_WIN64)\r
-    dapl_os_wait_object_init( &sp_ptr->wait_object ); \r
+    dapl_os_wait_object_init( &sp_ptr->wait_object );\r
 #endif\r
     /*\r
      * Initialize the Body (set to NULL above)\r
@@ -134,7 +134,7 @@ dapls_sp_free_sp (
     dapl_os_assert (dapl_llist_is_empty (&sp_ptr->cr_list_head));\r
 \r
 #if defined(_WIN32) || defined(_WIN64)\r
-    dapl_os_wait_object_destroy( &sp_ptr->wait_object ); \r
+    dapl_os_wait_object_destroy( &sp_ptr->wait_object );\r
 #endif\r
     dapl_os_lock (&sp_ptr->header.lock);\r
     sp_ptr->header.magic = DAPL_MAGIC_INVALID;/* reset magic to prevent reuse */\r
@@ -249,9 +249,9 @@ dapl_sp_remove_cr (
 {\r
     if ( dapl_llist_is_empty (&sp_ptr->cr_list_head) )\r
     {\r
-        dapl_dbg_log (DAPL_DBG_TYPE_ERR,\r
-                      "**dapl_sp_remove_cr: removing from empty queue! sp %p\n",\r
-                      sp_ptr );\r
+       dapl_dbg_log (DAPL_DBG_TYPE_ERR,\r
+                 "**dapl_sp_remove_cr: removing from empty queue! sp %p\n",\r
+                     sp_ptr );\r
        return;\r
     }\r
 \r
index dd8ffa12b2614070aaefc247279e6bfa924b54e0..d7ced9d9da9c01ea9b5383fd2450bc9a409e46e4 100644 (file)
@@ -569,11 +569,9 @@ STATIC _INLINE_ DAT_DTOS dapls_cqe_dtos_opcode(ib_work_completion_t *cqe_p)
 #define DAPL_GET_CQE_STATUS(cqe_p) ((ib_work_completion_t *)cqe_p)->status\r
 #define DAPL_GET_CQE_IMMED_DATA(cqe_p) \\r
                ((ib_work_completion_t*)cqe_p)->recv.conn.immediate_data\r
-#define DAPL_GET_CQE_OP_STR(cqe_p) dapls_cqe_op_str(cqe_p)\r
-\r
 \r
 static _INLINE_ char *\r
-dapls_dto_op_str(int dto)\r
+dapls_dto_op_str(int op)\r
 {\r
     /* must match OP_SEND... defs in dapl_ibal_util.h */ \r
     static char *optable[] =\r
@@ -590,10 +588,9 @@ dapls_dto_op_str(int dto)
        "OP_BIND_MW",\r
        "OP_RDMA_WRITE_IMM",\r
        "OP_RECEIVE_IMM",\r
-       "OP_SEND_IMM",\r
-       0\r
+       "OP_SEND_IMM"\r
     };\r
-    return optable[dto];\r
+    return ((op < 0 || op > 12) ? "Invalid DTO opcode?" : optable[op]);\r
 }\r
 \r
 static _INLINE_ char *\r
@@ -602,6 +599,8 @@ dapls_cqe_op_str(IN ib_work_completion_t *cqe_ptr)
     return dapls_dto_op_str(DAPL_GET_CQE_OPTYPE (cqe_ptr)); \r
 }\r
 \r
+#define DAPL_GET_CQE_OP_STR(cqe) dapls_cqe_op_str(cqe)\r
+\r
 \r
 #ifdef DAT_EXTENSIONS\r
 /*\r
index 9b15604a4a13d6a9b6ea7c79832d97dee0334ca9..17b68400a00c673248caf9f7ce2ce6d2116e3eec 100644 (file)
@@ -201,7 +201,7 @@ typedef enum dapl_qp_state
  *********************************************************************/\r
 \r
 typedef struct dapl_llist_entry                DAPL_LLIST_ENTRY;\r
-typedef DAPL_LLIST_ENTRY *             DAPL_LLIST_HEAD;\r
+typedef DAPL_LLIST_ENTRY *             DAPL_LLIST_HEAD;\r
 typedef struct dapl_ring_buffer                DAPL_RING_BUFFER;\r
 typedef struct dapl_cookie_buffer      DAPL_COOKIE_BUFFER;\r
 \r
@@ -442,7 +442,7 @@ struct dapl_ep
     ib_qp_state_t              qp_state;\r
 \r
     /* communications manager handle (IBM OS API) */\r
-    dp_ib_cm_handle_t  cm_handle;\r
+    dp_ib_cm_handle_t          cm_handle;\r
 \r
     /* store the remote IA address here, reference from the param\r
      * struct which only has a pointer, no storage\r
@@ -805,7 +805,7 @@ extern DAT_RETURN DAT_API dapl_cr_handoff (
 /* EVD Functions */\r
 \r
 #if defined(__KERNEL__)\r
-extern DAT_RETURN dapl_ia_memtype_hint (\r
+extern DAT_RETURN DAT_API dapl_ia_memtype_hint (\r
        IN    DAT_IA_HANDLE,            /* ia_handle */\r
        IN    DAT_MEM_TYPE,             /* mem_type */\r
        IN    DAT_VLEN,                 /* length */\r
@@ -813,7 +813,7 @@ extern DAT_RETURN dapl_ia_memtype_hint (
        OUT   DAT_VLEN *,               /* suggested_length */\r
        OUT   DAT_VADDR *);             /* suggested_alignment */\r
 \r
-extern DAT_RETURN dapl_evd_kcreate (\r
+extern DAT_RETURN DAT_API dapl_evd_kcreate (\r
        IN      DAT_IA_HANDLE,          /* ia_handle */\r
        IN      DAT_COUNT,              /* evd_min_qlen */\r
        IN      DAT_UPCALL_POLICY,      /* upcall_policy */\r
@@ -821,7 +821,7 @@ extern DAT_RETURN dapl_evd_kcreate (
        IN      DAT_EVD_FLAGS,          /* evd_flags */\r
        OUT     DAT_EVD_HANDLE * );     /* evd_handle */\r
 \r
-extern DAT_RETURN dapl_evd_kquery (\r
+extern DAT_RETURN DAT_API dapl_evd_kquery (\r
        IN      DAT_EVD_HANDLE,         /* evd_handle */\r
        IN      DAT_EVD_PARAM_MASK,     /* evd_args_mask */\r
        OUT     DAT_EVD_PARAM * );      /* evd_args */\r
@@ -841,7 +841,7 @@ extern DAT_RETURN DAT_API dapl_evd_query (
 #endif /* defined(__KERNEL__) */\r
 \r
 #if defined(__KERNEL__)\r
-extern DAT_RETURN dapl_evd_modify_upcall (\r
+extern DAT_RETURN DAT_API dapl_evd_modify_upcall (\r
        IN      DAT_EVD_HANDLE,         /* evd_handle */\r
        IN      DAT_UPCALL_POLICY,      /* upcall_policy */\r
        IN      const DAT_UPCALL_OBJECT * ); /* upcall */\r
@@ -1022,7 +1022,7 @@ extern DAT_RETURN DAT_API dapl_ep_set_watermark (
 /* LMR functions */\r
 \r
 #if defined(__KERNEL__)\r
-extern DAT_RETURN dapl_lmr_kcreate (\r
+extern DAT_RETURN DAT_API dapl_lmr_kcreate (\r
        IN      DAT_IA_HANDLE,          /* ia_handle */\r
        IN      DAT_MEM_TYPE,           /* mem_type */\r
        IN      DAT_REGION_DESCRIPTION, /* region_description */\r
index 6e5e429010f53fb9f867c7f2301627d6090f4da9..fd7aa647bd90d3d685a0aafebb14baaf923f7767 100644 (file)
@@ -7,7 +7,7 @@ TARGETPATH=..\..\..\..\bin\user\obj$(BUILD_ALT_DIR)
 TARGETTYPE=DYNLINK\r
 DLLENTRY=_DllMainCRTStartup\r
 DLLDEF=$O\udapl_exports.def\r
-USE_CRTDLL=1\r
+USE_MSVCRT=1\r
 \r
 # pickup local files, then via udapl_sources.c get common files\r
 \r
index c0f1b8ca53dc930c7d038af3bf6876efcbb67bee..63998d25379b6a633909e290773db44493d5902e 100644 (file)
@@ -274,8 +274,8 @@ DAT_RETURN DAT_API dapl_evd_wait (
 \r
  bail:\r
     if ( dat_status ) {\r
-        dapl_dbg_log (DAPL_DBG_TYPE_RTN, "dapl_evd_wait () returns 0x%x\n", \r
-                      dat_status);\r
+        dapl_dbg_log (DAPL_DBG_TYPE_RTN,\r
+                       "dapl_evd_wait () returns 0x%x\n", dat_status);\r
     }\r
     return dat_status;\r
 }\r
index 98ccd0937d40b2f6e6cba93779634fa5816a42b4..90676fc947ac0fd74dd74b4c86219803b80fbc71 100644 (file)
@@ -49,7 +49,7 @@
 #error UNDEFINED OS TYPE\r
 #endif /* __linux__ */\r
 \r
-#if !defined (__i386__) && !defined (__ia64__) && !defined(__x86_64__) && !defined(__PPC64__)\r
+#if !defined (__i386__) && !defined (__ia64__) && !defined(__x86_64__) && !defined(__PPC__) && !defined(__PPC64__)\r
 #error UNDEFINED ARCH\r
 #endif\r
 \r
 #include <sys/socket.h>\r
 #include <ctype.h>\r
 \r
-#if !defined(REDHAT_EL5) && (defined(__ia64__) || defined(__PPC64__))\r
+#if !defined(REDHAT_EL5) && (defined(__ia64__))\r
 #include <asm/atomic.h>\r
 #endif\r
-#if defined(__PPC64__)\r
-#include <asm/system.h>\r
-#endif\r
 \r
 /* Useful debug definitions */\r
 #ifndef STATIC\r
@@ -163,8 +160,17 @@ dapl_os_atomic_inc (
 #else\r
        IA64_FETCHADD(old_value,v,1,4);\r
 #endif\r
-#elif defined(__PPC64__)\r
-   atomic_inc((atomic_t *) v);\r
+#elif defined(__PPC__) || defined(__PPC64__)\r
+       int tmp;\r
+\r
+    __asm__ __volatile__(\r
+       "1:     lwarx   %0,0,%2\n\\r
+               addic   %0,%0,1\n\\r
+               stwcx.  %0,0,%2\n\\r
+               bne-    1b"\r
+       : "=&r" (tmp), "+m" (v)\r
+       : "r" (&v)\r
+       : "cc");\r
 #else  /* !__ia64__ */\r
     __asm__ __volatile__ (\r
        "lock;" "incl %0"\r
@@ -193,9 +199,17 @@ dapl_os_atomic_dec (
 #else\r
        IA64_FETCHADD(old_value,v,-1,4);\r
 #endif\r
-#elif defined (__PPC64__)\r
-   atomic_dec((atomic_t *)v);\r
-\r
+#elif defined (__PPC__) || defined(__PPC64__)\r
+       int tmp;\r
+\r
+    __asm__ __volatile__(\r
+       "1:     lwarx   %0,0,%2\n\\r
+               addic   %0,%0,-1\n\\r
+               stwcx.  %0,0,%2\n\\r
+               bne-    1b"\r
+       : "=&r" (tmp), "+m" (v)\r
+       : "r" (&v)\r
+       : "cc");\r
 #else  /* !__ia64__ */\r
     __asm__ __volatile__ (\r
        "lock;" "decl %0"\r
@@ -240,7 +254,7 @@ dapl_os_atomic_assign (
 #else\r
     current_value = ia64_cmpxchg(acq,v,match_value,new_value,4);\r
 #endif /* __ia64__ */\r
-#elif defined(__PPC64__)\r
+#elif defined(__PPC__) || defined(__PPC64__)\r
         __asm__ __volatile__ (\r
 "       lwsync\n\\r
 1:      lwarx   %0,0,%2         # __cmpxchg_u32\n\\r
index cef3290289f05b6ff55faa9716d484bacc3ad3dc..25675d6be55277bb66bcc3d87f1838d35e31343a 100644 (file)
@@ -7,7 +7,7 @@ TARGETPATH=..\..\..\..\bin\user\obj$(BUILD_ALT_DIR)
 TARGETTYPE=DYNLINK\r
 DLLENTRY=_DllMainCRTStartup\r
 DLLDEF=$O\udapl_scm_exports.def\r
-USE_CRTDLL=1\r
+USE_MSVCRT=1\r
 \r
 # pickup local files, then via udapl_sources.c get common files\r
 \r
index 1608cf7cda7b6f86b705abeb0ca258518ce2f4f3..e97a725d768133c494926f5034097e54e721b999 100644 (file)
@@ -367,15 +367,15 @@ dat_sr_provider_open (
                 * open matters, the others will be unused.\r
                 */\r
                dat_os_dbg_print (DAT_OS_DBG_TYPE_SR,\r
-                       "DAT2 Registry: IA %s, trying to load library %s\n",\r
-                                 data->info.ia_name, data->lib_path);\r
+                       "DAT Registry: IA %s, trying to load library %s\n",\r
+                       data->info.ia_name, data->lib_path);\r
 \r
                status = dat_os_library_load (data->lib_path,\r
                                              &data->lib_handle);\r
 \r
                if ( status == DAT_SUCCESS )\r
                {\r
-#ifdef DBG\r
+#ifdef DAT_DBG\r
                    dat_os_dbg_print (DAT_OS_DBG_TYPE_SR,\r
                        "DAT2 Registry: IA %s, loaded library %s\n",\r
                                  data->info.ia_name, data->lib_path);\r
index db2e79e1342875bc8298d682f2bb159bd83b499f..8e0cca8cd600977d59dbaea1d1e745aeec75d973 100644 (file)
@@ -325,7 +325,7 @@ typedef enum dat_mem_priv_flags
 #ifdef DAT_EXTENSIONS\r
 /* To be used by DAT extensions as a starting\r
        point of extension memory privileges */\r
-    ,DAT_MEM_PRIV_EXTENSION_BASE     = 0x40\r
+    ,DAT_MEM_PRIV_EXTENSION_BASE       = 0x40\r
 #endif /* DAT_EXTENSIONS */\r
 \r
 } DAT_MEM_PRIV_FLAGS;\r
index 1f63cb4bccf1130240ac58e598691b9368ce9d78..b94c5ce873232907600fb08a5165cd1f0a185a9d 100644 (file)
@@ -296,7 +296,7 @@ dat_strerror_ext_status (
  * Other extension flags:\r
  *     n/a\r
  */\r
-#define dat_ib_post_rdma_write_immed(ep, size, lbuf, cookie, rbuf, idata, flgs)\\r
+#define dat_ib_post_rdma_write_immed(ep, size, lbuf, cookie, rbuf, idata, flgs) \\r
             dat_extension_op(  ep, \\r
                                DAT_IB_RDMA_WRITE_IMMED_OP, \\r
                                (size), \\r
index 978aede7c131eb79b6b0b42fc13309213d7df8b4..c93f22011a2d39e51f8f53948e6c195255ccc076 100644 (file)
@@ -122,6 +122,23 @@ typedef enum dat_evd_param_mask
 \r
 typedef DAT_UINT64 DAT_PROVIDER_ATTR_MASK;\r
 \r
+enum  dat_lmr_param_mask\r
+{\r
+       DAT_LMR_FIELD_IA_HANDLE          = 0x001,\r
+       DAT_LMR_FIELD_MEM_TYPE           = 0x002,\r
+       DAT_LMR_FIELD_REGION_DESC        = 0x004,\r
+       DAT_LMR_FIELD_LENGTH             = 0x008,\r
+       DAT_LMR_FIELD_PZ_HANDLE          = 0x010,\r
+       DAT_LMR_FIELD_MEM_PRIV           = 0x020,\r
+       DAT_LMR_FIELD_VA_TYPE            = 0x040,\r
+       DAT_LMR_FIELD_LMR_CONTEXT        = 0x080,\r
+       DAT_LMR_FIELD_RMR_CONTEXT        = 0x100,\r
+       DAT_LMR_FIELD_REGISTERED_SIZE    = 0x200,\r
+       DAT_LMR_FIELD_REGISTERED_ADDRESS = 0x400,\r
+\r
+       DAT_LMR_FIELD_ALL                = 0x7FF\r
+};\r
+\r
 #include <dat/dat.h>\r
 \r
 typedef DAT_HANDLE      DAT_CNO_HANDLE;\r
@@ -220,23 +237,6 @@ struct dat_lmr_param
     DAT_VADDR                   registered_address;\r
 };\r
 \r
-enum  dat_lmr_param_mask\r
-{\r
-       DAT_LMR_FIELD_IA_HANDLE          = 0x001,\r
-       DAT_LMR_FIELD_MEM_TYPE           = 0x002,\r
-       DAT_LMR_FIELD_REGION_DESC        = 0x004,\r
-       DAT_LMR_FIELD_LENGTH             = 0x008,\r
-       DAT_LMR_FIELD_PZ_HANDLE          = 0x010,\r
-       DAT_LMR_FIELD_MEM_PRIV           = 0x020,\r
-       DAT_LMR_FIELD_VA_TYPE            = 0x040,\r
-       DAT_LMR_FIELD_LMR_CONTEXT        = 0x080,\r
-       DAT_LMR_FIELD_RMR_CONTEXT        = 0x100,\r
-       DAT_LMR_FIELD_REGISTERED_SIZE    = 0x200,\r
-       DAT_LMR_FIELD_REGISTERED_ADDRESS = 0x400,\r
-\r
-       DAT_LMR_FIELD_ALL                = 0x7FF\r
-};\r
-\r
 typedef enum dat_proxy_type\r
 {\r
        DAT_PROXY_TYPE_NONE     = 0x0,\r
index 668c8d273fde4f8188ce3219f9dc2e70cfd580cd..a55d841cf95c0a76e430120c59fd123fefebf2b4 100644 (file)
@@ -7,7 +7,7 @@ TARGETPATH=..\..\..\..\bin\user\obj$(BUILD_ALT_DIR)
 TARGETTYPE=DYNLINK\r
 DLLENTRY=_DllMainCRTStartup\r
 DLLDEF=$O\udat_exports.def\r
-USE_CRTDLL=1\r
+USE_MSVCRT=1\r
 \r
 SOURCES=udat.rc                        \\r
        udat.c                  \\r
index b96e736916020bd8c8e57957691789a776d966c3..80a803cd4ea5842bd39d90cec8c98e8c793267ff 100644 (file)
@@ -114,6 +114,7 @@ dat_os_dbg_print (
  *********************************************************************/\r
 \r
 #define DAT_ERROR(Type, SubType) ((DAT_RETURN)(DAT_CLASS_ERROR | Type | SubType))\r
+#define dat_os_library_error() dlerror()\r
 \r
 typedef size_t                         DAT_OS_SIZE;\r
 typedef void *                         DAT_OS_LIBRARY_HANDLE;\r
@@ -300,7 +301,7 @@ dat_os_fgetc (
  * Push char 'c' back into specified stream for subsequent read.\r
  */\r
 STATIC INLINE int\r
-dat_os_ungetc ( \r
+dat_os_ungetc (\r
     DAT_OS_FILE *file, int c)\r
 {\r
     return ungetc(c, file);\r
index abe37922bbf20209095baaa88f05647b49cd37e1..6f74cff2dad445cc5baad12201cffdc649b6a8a7 100644 (file)
@@ -6,7 +6,7 @@ TARGETNAME=dapl2testd
 TARGETPATH=..\..\..\..\bin\user\obj$(BUILD_ALT_DIR)\r
 TARGETTYPE=PROGRAM\r
 UMTYPE=console\r
-USE_CRTDLL=1\r
+USE_MSVCRT=1\r
 \r
 SOURCES=dapltest.rc    \\r
        dt_cmd.c        \\r
index c1eadbf6933aae206abe2056d793de4367a7a237..f7e38d38d8e91299ce6f51b040fa1d2e3e416e7e 100644 (file)
@@ -132,16 +132,14 @@ DT_NetAddrLookupHostAddress (DAT_IA_ADDRESS_PTR   to_netaddr,
     }\r
 \r
     /* Pull out IP address and print it as a sanity check */\r
-    rval = ((struct sockaddr_in *)target->ai_addr)->sin_addr.s_addr;\r
     DT_Mdep_printf ("Server Name: %s \n", hostname);\r
-    DT_Mdep_printf ("Server Net Address: %d.%d.%d.%d\n",\r
-                   (rval >>  0) & 0xff,\r
-                   (rval >>  8) & 0xff,\r
-                   (rval >> 16) & 0xff,\r
-                   (rval >> 24) & 0xff);\r
+    DT_Mdep_printf ("Server Net Address: %s\n",\r
+                   inet_ntoa(((struct sockaddr_in *)target->ai_addr)->sin_addr));\r
 \r
     *to_netaddr = * ((DAT_IA_ADDRESS_PTR) target->ai_addr);\r
 \r
+    freeaddrinfo(target);\r
+\r
     return ( DAT_TRUE );\r
 }\r
 \r
index cf7fcc07495b389b98761beaf90bf0dc409ba370..3269b4cca5085d06fc4cf1e4c4dc73a456b5cf00 100644 (file)
@@ -60,7 +60,7 @@ DT_Endian32 (DAT_UINT32 val)
 {\r
     if (DT_local_is_little_endian)\r
     {\r
-       return val;\r
+               return val;\r
     }\r
     val = ((val & c1a32) << 8) | ((val & c1b32) >> 8);\r
     val = ((val & c2a32) << 16) | ((val & c2b32) >> 16);\r
@@ -72,7 +72,7 @@ DT_Endian64 (DAT_UINT64 val)
 {\r
     if (DT_local_is_little_endian)\r
     {\r
-       return val;\r
+               return val;\r
     }\r
     val = ((val & c1a64) << 8) | ((val & c1b64) >> 8);\r
     val = ((val & c2a64) << 16) | ((val & c2b64) >> 16);\r
@@ -83,8 +83,8 @@ DT_Endian64 (DAT_UINT64 val)
 DAT_UINT32\r
 DT_EndianMemHandle (DAT_UINT32 val)\r
 {\r
-   if (DT_local_is_little_endian)\r
-       return val; \r
+    if (DT_local_is_little_endian)\r
+               return val;\r
     val = ((val & c1a32) << 8) | ((val & c1b32) >> 8);\r
     val = ((val & c2a32) << 16) | ((val & c2b32) >> 16);\r
     return (val);\r
@@ -95,8 +95,8 @@ DT_EndianMemAddress (DAT_UINT64 val)
 {\r
     DAT_UINT64      val64;\r
 \r
-   if (DT_local_is_little_endian)\r
-       return val;\r
+    if (DT_local_is_little_endian)\r
+               return val;\r
     val64 = val;\r
     val64 = ((val64 & c1a64) << 8) | ((val64 & c1b64) >> 8);\r
     val64 = ((val64 & c2a64) << 16) | ((val64 & c2b64) >> 16);\r
index b23c86c0892bcb9b8bc6893bef30c914578388e1..5fbc9ba475478ec69521f278408e5d820a630265 100644 (file)
@@ -176,25 +176,28 @@ DT_Mdep_GetCpuStat (
 unsigned long\r
 DT_Mdep_GetTime (void)\r
 {\r
-    struct tms      ts;\r
-    clock_t         t = times (&ts);\r
-    return (unsigned long) ((DAT_UINT64) t * 1000 / CLOCKS_PER_SEC);\r
+    struct timeval tv;\r
+    gettimeofday(&tv, NULL);\r
+    return tv.tv_sec * 1000 + tv.tv_usec / 1000;\r
 }\r
 \r
+#ifdef RDTSC_TIMERS\r
 double\r
 DT_Mdep_GetCpuMhz (\r
     void )\r
 {\r
-#define DT_CPU_MHZ_BUFFER_SIZE         128\r
-#if defined (__PPC64__)\r
-#define DT_CPU_MHZ_MHZ          "clock"\r
+#define DT_TSC_BUFFER_SIZE     128\r
+#if defined (__PPC__) || defined (__PPC64__)\r
+#define DT_TSC_RATE            "timebase"\r
+#define DT_TSC_BASE            1000000.0\r
 #else\r
-#define DT_CPU_MHZ_MHZ                 "cpu MHz"\r
+#define DT_TSC_RATE            "cpu MHz"\r
+#define DT_TSC_BASE            1.0\r
 #endif\r
-#define DT_CPU_MHZ_DELIMITER   ":"\r
+#define DT_TSC_DELIMITER       ":"\r
 \r
     FILE *fp;\r
-    char buffer[DT_CPU_MHZ_BUFFER_SIZE];\r
+    char buffer[DT_TSC_BUFFER_SIZE];\r
     char *mhz_str;\r
 \r
     fp = fopen ("/proc/cpuinfo", "r");\r
@@ -206,16 +209,16 @@ DT_Mdep_GetCpuMhz (
 \r
     for (;;)\r
     {\r
-       if ( NULL == fgets (buffer, DT_CPU_MHZ_BUFFER_SIZE, fp) )\r
+       if ( NULL == fgets (buffer, DT_TSC_BUFFER_SIZE, fp) )\r
        {\r
            printf ("cpu MHZ not found\n");\r
            exit (1);\r
        }\r
 \r
-       if ( !strncmp (buffer, DT_CPU_MHZ_MHZ, strlen (DT_CPU_MHZ_MHZ) ) )\r
+       if ( !strncmp (buffer, DT_TSC_RATE, strlen (DT_TSC_RATE) ) )\r
        {\r
-           (void) strtok (buffer, DT_CPU_MHZ_DELIMITER);\r
-           mhz_str = strtok (NULL, DT_CPU_MHZ_DELIMITER);\r
+           (void) strtok (buffer, DT_TSC_DELIMITER);\r
+           mhz_str = strtok (NULL, DT_TSC_DELIMITER);\r
 \r
            break;\r
        }\r
@@ -227,8 +230,17 @@ DT_Mdep_GetCpuMhz (
        exit (1);\r
     }\r
 \r
-    return strtod (mhz_str, NULL);\r
+    return strtod (mhz_str, NULL) / DT_TSC_BASE;\r
 }\r
+#else /* !RDTSC_TIMERS */\r
+\r
+double\r
+DT_Mdep_GetCpuMhz (\r
+    void )\r
+{\r
+    return 1;\r
+}\r
+#endif\r
 \r
 \r
 unsigned long\r
index 2b6e06cfc42a9fe658423798e065cf03cbf7e7b7..4f80dc053d127ebfbac5b2ae66d051ad837852c4 100644 (file)
 #include <string.h>\r
 #include <sys/times.h>\r
 \r
-#ifdef __ia64__\r
-#include <asm/timex.h>\r
-#endif\r
-\r
 /* Default Device Name */\r
-#define DT_MdepDeviceName    "OpenIB-cma"\r
+#define DT_MdepDeviceName    "ofa-v2-ib0"\r
 \r
 /* Boolean */\r
 typedef int     bool;\r
@@ -111,7 +107,7 @@ typedef struct
 /*\r
  * Timing\r
  */\r
-\r
+#ifdef RDTSC_TIMERS\r
 typedef unsigned long long int                 DT_Mdep_TimeStamp;\r
 \r
 static _INLINE_ DT_Mdep_TimeStamp\r
@@ -122,14 +118,12 @@ DT_Mdep_GetTimeStamp ( void )
     __asm__ volatile (".byte 0x0f, 0x31" : "=A" (x));\r
     return x;\r
 #else\r
-\r
 #ifdef __ia64__\r
-    unsigned long x;\r
-\r
-    x = get_cycles ();\r
-    return x;\r
+    unsigned long ret;\r
+    __asm__ __volatile__ ("mov %0=ar.itc" : "=r"(ret));\r
+    return ret;\r
 #else\r
-#if defined(__PPC64__)\r
+#if defined(__PPC__) || defined(__PPC64__)\r
     unsigned int tbl, tbu0, tbu1;\r
     do {\r
          __asm__ __volatile__ ("mftbu %0" : "=r"(tbu0));\r
@@ -149,6 +143,21 @@ DT_Mdep_GetTimeStamp ( void )
 #endif\r
 #endif\r
 }\r
+#else /* !RDTSC_TIMERS */\r
+/* \r
+ * Get timestamp, microseconds, (relative to some fixed point)\r
+ */\r
+typedef double DT_Mdep_TimeStamp;\r
+\r
+static _INLINE_ DT_Mdep_TimeStamp\r
+DT_Mdep_GetTimeStamp ( void )\r
+{\r
+    struct timeval tv;\r
+    gettimeofday(&tv, NULL);\r
+    return (tv.tv_sec * 1000000 + tv.tv_usec);\r
+}\r
+#endif\r
+\r
 \r
 /*\r
  * Define long format types to be used in *printf format strings.  We\r
index fd2827bdd628761c256e679c501b447eb8830804..5707b45fece27c944527e5615b75663fcbc36a63 100644 (file)
@@ -19,6 +19,7 @@ if "%0" == "dt-cli" (
     if EXIST %PF%\dapl2test.exe (\r
         set DT=dapl2test.exe\r
         set D=ibnic0v2\r
+rem     To debug dapl2test - use dapl2testd.exe with ibnic0v2d\r
         goto OK\r
     )\r
 )\r
@@ -245,36 +246,47 @@ if "%T%" == "interop" (
     echo %T% testing in %L% Loops\r
     REM test units from Nov-'07 OFA interop event\r
     FOR /L %%i IN (0,1,1) DO (\r
+         echo %DT% -T T -s %S% -D %D% -i 4096 -t 1 -w 1 -R BE client SR 256 1 server SR 256 1\r
          %DT% -T T -s %S% -D %D% -i 4096 -t 1 -w 1 -R BE client SR 256 1 server SR 256 1\r
          if ERRORLEVEL 1 exit /B\r
          timeout /T 3\r
+         echo %DT% -T T -s %S% -D %D% -i 100 -t 1 -w 1 -V -P -R BE client SR 1024 3 -f server SR 1536 2 -f\r
          %DT% -T T -s %S% -D %D% -i 100 -t 1 -w 1 -V -P -R BE client SR 1024 3 -f server SR 1536 2 -f\r
          if ERRORLEVEL 1 exit /B\r
          timeout /T 3\r
+         echo %DT% -T T -s %S% -D %D% -i 100 -t 1 -w 1 -V -P -R BE client SR 1024 1 server SR 1024 1\r
          %DT% -T T -s %S% -D %D% -i 100 -t 1 -w 1 -V -P -R BE client SR 1024 1 server SR 1024 1\r
          if ERRORLEVEL 1 exit /B\r
          timeout /T 3\r
+         echo %DT% -T T -s %S% -D %D% -i 100 -t 1 -w 10 -V -P -R BE client SR 1024 3 server SR 1536 2\r
          %DT% -T T -s %S% -D %D% -i 100 -t 1 -w 10 -V -P -R BE client SR 1024 3 server SR 1536 2\r
          if ERRORLEVEL 1 exit /B\r
          timeout /T 3\r
+         echo %DT% -T T -s %S% -D %D% -i 100 -t 1 -w 1 -V -P -R BE client SR 256 1 server RW 4096 1 server SR 256 1\r
          %DT% -T T -s %S% -D %D% -i 100 -t 1 -w 1 -V -P -R BE client SR 256 1 server RW 4096 1 server SR 256 1\r
          if ERRORLEVEL 1 exit /B\r
          timeout /T 3\r
+         echo %DT% -T T -s %S% -D %D% -i 100 -t 1 -w 1 -V -P -R BE client SR 256 1 server RR 4096 1 server SR 256 1\r
          %DT% -T T -s %S% -D %D% -i 100 -t 1 -w 1 -V -P -R BE client SR 256 1 server RR 4096 1 server SR 256 1\r
          if ERRORLEVEL 1 exit /B\r
          timeout /T 3\r
+         echo %DT% -T T -s %S% -D %D% -i 100 -t 4 -w 8 -V -P -R BE client SR 256 1 server RR 4096 1 server SR 256 1 client SR 256 1 server RR 4096 1 server SR 256 1\r
          %DT% -T T -s %S% -D %D% -i 100 -t 4 -w 8 -V -P -R BE client SR 256 1 server RR 4096 1 server SR 256 1 client SR 256 1 server RR 4096 1 server SR 256 1\r
          if ERRORLEVEL 1 exit /B\r
          timeout /T 3\r
+         echo %DT% -T P -s %S% -D %D% -i 1024 -p 64 -m p RW 8192 2\r
          %DT% -T P -s %S% -D %D% -i 1024 -p 64 -m p RW 8192 2\r
          if ERRORLEVEL 1 exit /B\r
          timeout /T 3\r
+         echo %DT% -T P -s %S% -D %D% -i 1024 -p 64 -m p RW 4096 2\r
          %DT% -T P -s %S% -D %D% -i 1024 -p 64 -m p RW 4096 2\r
          if ERRORLEVEL 1 exit /B\r
          timeout /T 3\r
+         echo %DT% -T P -s %S% -D %D% -i 1024 -p 64 -m p RW 4096 1\r
          %DT% -T P -s %S% -D %D% -i 1024 -p 64 -m p RW 4096 1\r
          if ERRORLEVEL 1 exit /B\r
          timeout /T 3\r
+         echo %DT% -T T -s %S% -D %D% -i 100 -t 1 -w 10 -V -P -R BE client SR 1024 3 server SR 1536 2\r
          %DT% -T T -s %S% -D %D% -i 100 -t 1 -w 10 -V -P -R BE client SR 1024 3 server SR 1536 2\r
          if ERRORLEVEL 1 exit /B\r
          echo %%i %T% loops completed.\r
index df44a5f5214a491fd8656600e65486da4c8b57ab..38a5ad3f16f79c0716cffeb4509349d5d0e2c2f5 100644 (file)
 \r
 #include "dapl_proto.h"\r
 \r
-#ifdef DFLT_QLEN\r
+#if defined(DFLT_QLEN)\r
 #undef DFLT_QLEN\r
 #endif\r
 \r
-#define DFLT_QLEN 8\r
+#define DFLT_QLEN      8        /* default event queue length */\r
 #define MAX_CONN_RETRY 8\r
 \r
 /*\r
index 7a8345151023eefa056c4a061f605103719de65a..d27abad5ba8567bfb9cfbd60d8cb4d1d0f3cc7b8 100644 (file)
@@ -281,7 +281,7 @@ DT_performance_stats_print (
                   "    Operation Type       : %s\n"\r
                   "    Number of Operations : %u\n"\r
                   "    Segment Size         : %u\n"\r
-                  "    Number of Segments   : %u bytes\n"\r
+                  "    Number of Segments   : %u \n"\r
                   "    Pipeline Length      : %u\n\n",\r
                   DT_PerformanceModeToString (cmd->mode),\r
                   DT_TransferTypeToString (cmd->op.transfer_type),\r
index e91dc4afde5d50b6cf02c7830eea8a6427698789..7d1989f3034ebcad0f370f61fefcc75d531ffc7b 100644 (file)
@@ -142,16 +142,10 @@ DT_query (   Per_Test_Data_t *pt_ptr,
        else if (ip6_addr->sin6_family == AF_INET )\r
 \r
        {\r
-           int rval;\r
-\r
            ip_addr = (struct sockaddr_in *)pt_ptr->ia_attr.ia_address_ptr;\r
-           rval = (int) ip_addr->sin_addr.s_addr;\r
 \r
-           DT_Tdep_PT_Printf (phead, "\tLocal IP address %d.%d.%d.%d\n",\r
-                         (rval >>  0) & 0xff,\r
-                         (rval >>  8) & 0xff,\r
-                         (rval >> 16) & 0xff,\r
-                         (rval >> 24) & 0xff);\r
+           DT_Tdep_PT_Printf (phead, "\tLocal IP address %s\n",\r
+                         inet_ntoa(ip_addr->sin_addr));\r
        }\r
 \r
        DT_Tdep_PT_Printf (phead, "***** ***** ***** ***** ***** *****\n");\r
index 30c7c10059680910ede503e3db83c1c0410fed34..62b856f4e2537445f29df75eeb894171a645d85f 100644 (file)
@@ -1,6 +1,3 @@
-Linux\r
------\r
-\r
 simple dapl test just for initial openIB uDAPL testing...\r
 \r
        dtest/dtest.c\r
index 87abfb99379f69cee11c3f03667d05d1875f0c83..f6a533097801adf2c6a146e56dc59c62319ba9f6 100644 (file)
@@ -6,7 +6,7 @@ TARGETNAME=dtest2d
 TARGETPATH=..\..\..\..\bin\user\obj$(BUILD_ALT_DIR)\r
 TARGETTYPE=PROGRAM\r
 UMTYPE=console\r
-USE_CRTDLL=1\r
+USE_MSVCRT=1\r
 \r
 SOURCES=dtest.rc       \\r
        dtest.c         \\r
index 13f5d27cccbe90765165c7cf40c684d302738b31..71cd03ba3517828715846dc6ff34694a4d88aac8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
- * Copyright (c) 2007 Intel Corporation.  All rights reserved.\r
+ * Copyright (c) 2005-2008 Intel Corporation.  All rights reserved.\r
  *\r
  * This software is available to you under a choice of one of two\r
  * licenses.  You may choose to be licensed under the terms of the GNU\r
 #include <stdlib.h>\r
 #include <string.h>\r
 \r
+#ifdef DAPL_PROVIDER\r
+#undef DAPL_PROVIDER\r
+#endif\r
+\r
 #if defined(_WIN32) || defined(_WIN64)\r
 \r
 #include <windows.h>\r
 #include <io.h>\r
 #include <process.h>\r
 #include <getopt.h>\r
-#include <complib\cl_byteswap.h>\r
+#include <complib/cl_types.h>\r
 \r
 #define getpid _getpid\r
-#define PRIx64 "%I64x" \r
+#define F64x "%I64x" \r
+\r
+#ifdef DBG\r
+#define DAPL_PROVIDER "ibnic0v2d"\r
+#else\r
+#define DAPL_PROVIDER "ibnic0v2"\r
+#endif\r
 \r
 #else\r
 \r
+#include <endian.h>\r
+#include <byteswap.h>\r
 #include <netdb.h>\r
 #include <sys/socket.h>\r
 #include <netinet/in.h>\r
 #include <getopt.h>\r
 #include <inttypes.h>\r
 \r
-#endif\r
+#define DAPL_PROVIDER "ofa-v2-ib0"\r
+\r
+#define F64x "%"PRIx64""\r
+#endif \r
+\r
+/* byte swap helpers from Complib */\r
+#if __BYTE_ORDER == __LITTLE_ENDIAN\r
+#define ntoh16(x) (uint16_t)( \\r
+       (((uint16_t)(x) & 0x00FF) << 8) | \\r
+        (((uint16_t)(x) & 0xFF00) >> 8))\r
+#define hton16(x) ntoh16(x)\r
+#define ntoh32(x) (uint32_t)( \\r
+        (((uint32_t)(x) & 0x000000FF) << 24)| \\r
+        (((uint32_t)(x) & 0x0000FF00) << 8) | \\r
+        (((uint32_t)(x) & 0x00FF0000) >> 8) | \\r
+        (((uint32_t)(x) & 0xFF000000) >> 24))\r
+#define hton32(x) ntoh32(x)\r
+#define ntoh64(x) (uint64_t)( \\r
+        (((uint64_t)x & 0x00000000000000FF) << 56) | \\r
+        (((uint64_t)x & 0x000000000000FF00) << 40) | \\r
+        (((uint64_t)x & 0x0000000000FF0000) << 24) | \\r
+        (((uint64_t)x & 0x00000000FF000000) << 8 ) | \\r
+        (((uint64_t)x & 0x000000FF00000000) >> 8 ) | \\r
+        (((uint64_t)x & 0x0000FF0000000000) >> 24) | \\r
+        (((uint64_t)x & 0x00FF000000000000) >> 40) | \\r
+        (((uint64_t)x & 0xFF00000000000000) >> 56))\r
+#define hton64(x) ntoh64(x)\r
+#elif __BYTE_ORDER == __BIG_ENDIAN\r
+#define hton16(x) (x)\r
+#define ntoh16(x) (x)\r
+#define hton32(x) (x)\r
+#define ntoh32(x) (x)\r
+#define hton64(x) (x)\r
+#define ntoh64(x) (x)\r
+#endif  /* __BYTE_ORDER == __BIG_ENDIAN */\r
 \r
 /* Debug: 1 == connect & close only, otherwise full-meal deal */\r
 #define CONNECT_ONLY 0\r
 \r
-#ifdef DAPL_PROVIDER\r
-#undef DAPL_PROVIDER\r
-#endif\r
-#ifdef DBG\r
-#define DAPL_PROVIDER "ibnic0v2d"\r
-#else\r
-#define DAPL_PROVIDER "ibnic0v2"\r
-#endif\r
-\r
 #define MAX_POLLING_CNT 50000\r
 #define MAX_RDMA_RD    4\r
 #define MAX_PROCS      1000\r
 #define DTO_TIMEOUT       (1000*1000*5)\r
 #define DTO_FLUSH_TIMEOUT (1000*1000*2)\r
 #define CONN_TIMEOUT      (1000*1000*10)\r
-#define SERVER_TIMEOUT    (1000*1000*20)\r
+#define SERVER_TIMEOUT    DAT_TIMEOUT_INFINITE\r
 #define RDMA_BUFFER_SIZE  (64)\r
 \r
 /* Global DAT vars */\r
@@ -133,7 +170,8 @@ static DAT_VLEN           registered_size_send_msg;
 static DAT_VADDR          registered_addr_send_msg;\r
 static DAT_EP_ATTR        ep_attr;\r
 char                      hostname[256] = {0};\r
-char                     provider[64] = DAPL_PROVIDER;\r
+char                      provider[64] = DAPL_PROVIDER;\r
+char                      addr_str[INET_ADDRSTRLEN];\r
 \r
 /* rdma pointers */\r
 char   *rbuf = NULL;\r
@@ -167,6 +205,8 @@ struct dt_time time;
 \r
 /* defaults */\r
 static int  parent=1;\r
+static int  failed=0;\r
+static int  performance_times=0;\r
 static int  connected=0;\r
 static int  burst=10;\r
 static int  server=1;\r
@@ -199,7 +239,7 @@ DAT_RETURN     send_msg(   void                    *data,
                            DAT_DTO_COOKIE          cookie,\r
                            DAT_COMPLETION_FLAGS    flags );\r
 \r
-DAT_RETURN     connect_ep( char *hostname, int conn_id );\r
+DAT_RETURN     connect_ep( char *hostname, DAT_CONN_QUAL conn_id );\r
 void           disconnect_ep( void );\r
 DAT_RETURN     register_rdma_memory( void );\r
 DAT_RETURN     unregister_rdma_memory( void );\r
@@ -209,26 +249,23 @@ DAT_RETURN     do_rdma_write_with_msg( void );
 DAT_RETURN     do_rdma_read_with_msg( void );\r
 DAT_RETURN     do_ping_pong_msg( void );\r
 \r
-#define LOGPRINTF1(_format, _aa) if (verbose)  printf(_format, _aa)\r
-#define LOGPRINTF2(_format, _aa,_bb) if (verbose)  printf(_format, _aa,_bb)\r
-#define LOGPRINTF3(_format, _aa,_bb,_cc) \\r
-       if (verbose)  printf(_format, _aa,_bb,_cc)\r
-#define LOGPRINTF4(_format, _aa,_bb,_cc,_dd) \\r
-       if (verbose)  printf(_format, _aa,_bb,_cc,_dd)\r
-#define LOGPRINTF5(_format, _aa,_bb,_cc,_dd,_ee) \\r
-       if (verbose)  printf(_format, _aa,_bb,_cc,_dd,_ee)\r
-\r
+#define LOGPRINTF if (verbose) printf\r
 \r
 main(int argc, char **argv)\r
 {\r
        int i,c;\r
        DAT_RETURN  ret;\r
+       DAT_EP_PARAM ep_param;\r
 \r
        /* parse arguments */\r
-       while ((c = getopt(argc, argv, "scvpb:d:B:h:P:")) != -1)\r
+       while ((c = getopt(argc, argv, "tscvpb:d:B:h:P:")) != -1)\r
        {\r
                switch(c)\r
                {\r
+                      case 't':\r
+                               performance_times = 1;\r
+                               fflush(stdout);\r
+                               break;\r
                        case 's':\r
                                server = 1;\r
                                fflush(stdout);\r
@@ -297,7 +334,7 @@ main(int argc, char **argv)
                exit(1);\r
     }\r
     memset( &time, 0, sizeof(struct dt_time) );\r
-    LOGPRINTF4("%d Allocated RDMA buffers (r:%p,s:%p) len %d \n",\r
+    LOGPRINTF("%d Allocated RDMA buffers (r:%p,s:%p) len %d \n",\r
                        getpid(), rbuf, sbuf, buf_len);\r
 \r
     /* dat_ia_open, dat_pz_create */\r
@@ -311,11 +348,11 @@ main(int argc, char **argv)
                        getpid(),DT_RetToString(ret));\r
          exit(1);\r
     } else\r
-       LOGPRINTF1("%d Opened Interface Adaptor\n",getpid());\r
+       LOGPRINTF("%d Opened Interface Adaptor\n",getpid());\r
 \r
     /* Create Protection Zone */\r
     start = get_time();\r
-    LOGPRINTF1("%d Create Protection Zone\n",getpid());\r
+    LOGPRINTF("%d Create Protection Zone\n",getpid());\r
     ret = dat_pz_create(h_ia, &h_pz);\r
     stop = get_time();\r
     time.pzc += ((stop - start)*1.0e6);\r
@@ -324,26 +361,26 @@ main(int argc, char **argv)
                        getpid(),DT_RetToString(ret));\r
          exit(1);\r
     } else\r
-         LOGPRINTF1("%d Created Protection Zone\n",getpid());\r
+         LOGPRINTF("%d Created Protection Zone\n",getpid());\r
 \r
     /* Register memory */\r
-    LOGPRINTF1("%d Register RDMA memory\n", getpid());\r
+    LOGPRINTF("%d Register RDMA memory\n", getpid());\r
     ret = register_rdma_memory();\r
     if(ret != DAT_SUCCESS) {\r
          fprintf(stderr, "%d Error registering RDMA memory: %s\n",\r
                                getpid(),DT_RetToString(ret));\r
          goto cleanup;\r
     } else\r
-         LOGPRINTF1("%d Register RDMA memory done\n", getpid());\r
+         LOGPRINTF("%d Register RDMA memory done\n", getpid());\r
 \r
-    LOGPRINTF1("%d Create events\n", getpid());\r
+    LOGPRINTF("%d Create events\n", getpid());\r
     ret = create_events();\r
     if(ret != DAT_SUCCESS) {\r
          fprintf(stderr, "%d Error creating events: %s\n",\r
                        getpid(),DT_RetToString(ret));\r
          goto cleanup;\r
     } else {\r
-         LOGPRINTF1("%d Create events done\n", getpid());\r
+         LOGPRINTF("%d Create events done\n", getpid());\r
     }\r
 \r
     /* create EP */\r
@@ -375,7 +412,7 @@ main(int argc, char **argv)
                        getpid(),DT_RetToString(ret));\r
          goto cleanup;\r
     } else\r
-         LOGPRINTF2("%d EP created %p \n", getpid(), h_ep);\r
+         LOGPRINTF("%d EP created %p \n", getpid(), h_ep);\r
 \r
     /*\r
      * register message buffers, establish connection, and\r
@@ -387,7 +424,41 @@ main(int argc, char **argv)
                                getpid(),DT_RetToString(ret));\r
          goto cleanup;\r
     } else\r
-         LOGPRINTF1("%d connect_ep complete\n", getpid());\r
+         LOGPRINTF("%d connect_ep complete\n", getpid());\r
+\r
+    /* Query EP for local and remote address information, print */\r
+    ret = dat_ep_query(h_ep, DAT_EP_FIELD_ALL, &ep_param);\r
+    if(ret != DAT_SUCCESS) {\r
+        fprintf(stderr, "%d Error dat_ep_query: %s\n",\r
+                getpid(),DT_RetToString(ret));\r
+        goto cleanup;\r
+    } else\r
+        LOGPRINTF("%d EP queried %p \n", getpid(), h_ep);\r
+#if defined(_WIN32)\r
+    printf("\n%d Query EP: LOCAL addr %s port %lld\n", getpid(),\r
+         inet_ntoa(((struct sockaddr_in *)\r
+                    ep_param.local_ia_address_ptr)->sin_addr),\r
+         (ep_param.local_port_qual));\r
+#else\r
+    inet_ntop(AF_INET,\r
+         &((struct sockaddr_in *)ep_param.local_ia_address_ptr)->sin_addr,\r
+         addr_str, sizeof(addr_str));\r
+    printf("\n%d Query EP: LOCAL addr %s port %lld\n", getpid(),\r
+         addr_str, (ep_param.local_port_qual));\r
+#endif\r
+#if defined(_WIN32)\r
+    printf("%d Query EP: REMOTE addr %s port %lld\n", getpid(),\r
+         inet_ntoa(((struct sockaddr_in *)\r
+                    ep_param.local_ia_address_ptr)->sin_addr),\r
+         (ep_param.remote_port_qual));\r
+#else\r
+    inet_ntop(AF_INET,\r
+        &((struct sockaddr_in *)ep_param.remote_ia_address_ptr)->sin_addr,\r
+        addr_str, sizeof(addr_str));\r
+    printf("%d Query EP: REMOTE addr %s port %lld\n", getpid(),\r
+           addr_str, (ep_param.remote_port_qual));\r
+#endif\r
+    fflush(stdout);\r
 \r
 #if CONNECT_ONLY\r
 #if defined(_WIN32) || defined(_WIN64)\r
@@ -405,7 +476,7 @@ main(int argc, char **argv)
                                getpid(),DT_RetToString(ret));\r
          goto cleanup;\r
     } else\r
-         LOGPRINTF1("%d do_rdma_write_with_msg complete\n", getpid());\r
+         LOGPRINTF("%d do_rdma_write_with_msg complete\n", getpid());\r
 \r
     /*********** RDMA read data *************/\r
     ret = do_rdma_read_with_msg();\r
@@ -414,7 +485,7 @@ main(int argc, char **argv)
                                getpid(),DT_RetToString(ret));\r
          goto cleanup;\r
     } else\r
-         LOGPRINTF1("%d do_rdma_read_with_msg complete\n", getpid());\r
+         LOGPRINTF("%d do_rdma_read_with_msg complete\n", getpid());\r
 \r
     /*********** PING PING messages ************/\r
     ret = do_ping_pong_msg();\r
@@ -422,52 +493,57 @@ main(int argc, char **argv)
          fprintf(stderr, "%d Error do_ping_pong_msg: %s\n",\r
                                getpid(),DT_RetToString(ret));\r
          goto cleanup;\r
-    } else\r
-         LOGPRINTF1("%d do_ping_pong_msg complete\n", getpid());\r
+    } else {\r
+         LOGPRINTF("%d do_ping_pong_msg complete\n", getpid());\r
+        goto complete;\r
+    }\r
 \r
 cleanup:\r
+       failed++;\r
+complete:\r
+\r
     /* disconnect and free EP resources */\r
     if ( h_ep != DAT_HANDLE_NULL ) {\r
          /* unregister message buffers and tear down connection */\r
-         LOGPRINTF2("%d Disconnect and Free EP %p \n",getpid(),h_ep);\r
+         LOGPRINTF("%d Disconnect and Free EP %p \n",getpid(),h_ep);\r
          disconnect_ep();\r
+    \r
+        /* free EP */\r
+        LOGPRINTF("%d Free EP %p \n",getpid(),h_ep);\r
+        start = get_time();\r
+        ret = dat_ep_free( h_ep );\r
+        stop = get_time();\r
+        time.epf += ((stop - start)*1.0e6);\r
+        time.total += time.epf;\r
+        if(ret != DAT_SUCCESS) {\r
+            fprintf(stderr, "%d Error freeing EP: %s\n",\r
+                    getpid(), DT_RetToString(ret));\r
+        } else {\r
+            LOGPRINTF("%d Freed EP\n",getpid());\r
+            h_ep = DAT_HANDLE_NULL;\r
+        }   \r
     }\r
-\r
-    /* free EP */\r
-    LOGPRINTF2("%d Free EP %p \n",getpid(),h_ep);\r
-    start = get_time();\r
-    ret = dat_ep_free( h_ep );\r
-    stop = get_time();\r
-    time.epf += ((stop - start)*1.0e6);\r
-    time.total += time.epf;\r
-    if(ret != DAT_SUCCESS) {\r
-         fprintf(stderr, "%d Error freeing EP: %s\n",\r
-                       getpid(), DT_RetToString(ret));\r
-    } else {\r
-         LOGPRINTF1("%d Freed EP\n",getpid());\r
-         h_ep = DAT_HANDLE_NULL;\r
-    }\r
-\r
+    \r
     /* free EVDs */\r
-    LOGPRINTF1("%d destroy events\n", getpid());\r
+    LOGPRINTF("%d destroy events\n", getpid());\r
     ret = destroy_events();\r
     if(ret != DAT_SUCCESS)\r
          fprintf(stderr, "%d Error destroy_events: %s\n",\r
                        getpid(),DT_RetToString(ret));\r
     else\r
-         LOGPRINTF1("%d destroy events done\n", getpid());\r
+         LOGPRINTF("%d destroy events done\n", getpid());\r
 \r
 \r
     ret = unregister_rdma_memory();\r
-    LOGPRINTF1("%d unregister_rdma_memory \n", getpid());\r
+    LOGPRINTF("%d unregister_rdma_memory \n", getpid());\r
     if(ret != DAT_SUCCESS)\r
          fprintf(stderr, "%d Error unregister_rdma_memory: %s\n",\r
                        getpid(),DT_RetToString(ret));\r
     else\r
-         LOGPRINTF1("%d unregister_rdma_memory done\n", getpid());\r
+         LOGPRINTF("%d unregister_rdma_memory done\n", getpid());\r
 \r
     /* Free protection domain */\r
-    LOGPRINTF1("%d Freeing pz\n",getpid());\r
+    LOGPRINTF("%d Freeing pz\n",getpid());\r
     start = get_time();\r
     ret = dat_pz_free( h_pz );\r
     stop = get_time();\r
@@ -476,12 +552,12 @@ cleanup:
          fprintf(stderr, "%d Error freeing PZ: %s\n",\r
                getpid(), DT_RetToString(ret));\r
     } else {\r
-         LOGPRINTF1("%d Freed pz\n",getpid());\r
+         LOGPRINTF("%d Freed pz\n",getpid());\r
          h_pz = NULL;\r
     }\r
 \r
     /* close the device */\r
-    LOGPRINTF1("%d Closing Interface Adaptor\n",getpid());\r
+    LOGPRINTF("%d Closing Interface Adaptor\n",getpid());\r
     start = get_time();\r
     //ret = dat_ia_close( h_ia, DAT_CLOSE_ABRUPT_FLAG );\r
     ret = dat_ia_close( h_ia, DAT_CLOSE_GRACEFUL_FLAG );\r
@@ -492,7 +568,17 @@ cleanup:
                        getpid(),DT_RetToString(ret));\r
          exit(1);\r
     } else\r
-         LOGPRINTF1("%d Closed Interface Adaptor\n",getpid());\r
+         LOGPRINTF("%d Closed Interface Adaptor\n",getpid());\r
+\r
+    /* free rdma buffers */\r
+    free(rbuf);\r
+    free(sbuf);\r
+\r
+    printf("\n%d: DAPL Test Complete. %s\n\n",\r
+           getpid(), failed?"FAILED":"PASSED");\r
+    \r
+    if (!performance_times) \r
+        exit(0);\r
 \r
     printf( "\n%d: DAPL Test Complete.\n\n",getpid());\r
     printf( "%d: Message RTT: Total=%10.2lf usec, %d bursts, itime=%10.2lf"\r
@@ -524,9 +610,6 @@ cleanup:
     printf( "%d: EP free:   %10.2lf usec\n",getpid(), time.epf );\r
     printf( "%d: TOTAL:     %10.2lf usec\n",getpid(), time.total );\r
 \r
-    /* free rdma buffers */\r
-    free(rbuf);\r
-    free(sbuf);\r
 #if defined(_WIN32) || defined(_WIN64)\r
     WSACleanup();\r
 #endif\r
@@ -573,10 +656,14 @@ send_msg(  void                   *data,
     DAT_RETURN         ret;\r
 \r
     iov.lmr_context     = context;\r
+#if defined(_WIN32)\r
     iov.virtual_address = (DAT_VADDR)data;\r
+#else\r
+    iov.virtual_address = (DAT_VADDR)(unsigned long)data;\r
+#endif\r
     iov.segment_length  = size;\r
     \r
-    LOGPRINTF1("%d calling post_send\n", getpid());\r
+    LOGPRINTF("%d calling post_send\n", getpid());\r
     cookie.as_64 = 0xaaaa;\r
     ret = dat_ep_post_send( h_ep,\r
                            1,\r
@@ -596,11 +683,11 @@ send_msg(  void                   *data,
            while (dat_evd_dequeue(h_dto_req_evd, &event) == DAT_QUEUE_EMPTY) ;\r
        }\r
        else {\r
-           LOGPRINTF1("%d waiting for post_send completion event\n", getpid());\r
+           LOGPRINTF("%d waiting for post_send completion event\n", getpid());\r
            if (use_cno) {\r
                DAT_EVD_HANDLE evd = DAT_HANDLE_NULL;\r
                ret = dat_cno_wait( h_dto_cno, DTO_TIMEOUT, &evd );\r
-               LOGPRINTF2("%d cno wait return evd_handle=%p\n", getpid(),evd);\r
+               LOGPRINTF("%d cno wait return evd_handle=%p\n", getpid(),evd);\r
                if ( evd != h_dto_req_evd ) {\r
                    fprintf(stderr,\r
                        "%d Error waiting on h_dto_cno: evd != h_dto_req_evd\n",\r
@@ -626,7 +713,7 @@ send_msg(  void                   *data,
 \r
        if ((event.event_data.dto_completion_event_data.transfered_length != size ) ||\r
            (event.event_data.dto_completion_event_data.user_cookie.as_64 != 0xaaaa )) {\r
-           fprintf(stderr, "%d: ERROR: DTO len %d or cookie %llx\n",\r
+           fprintf(stderr, "%d: ERROR: DTO len %d or cookie "F64x" \n",\r
                getpid(),\r
                event.event_data.dto_completion_event_data.transfered_length,\r
                event.event_data.dto_completion_event_data.user_cookie.as_64 );\r
@@ -645,23 +732,20 @@ send_msg(  void                   *data,
 \r
 \r
 DAT_RETURN\r
-connect_ep( char *hostname, int conn_id )\r
+connect_ep( char *hostname, DAT_CONN_QUAL conn_id )\r
 {\r
-       DAT_SOCK_ADDR           remote_addr;\r
-       DAT_RETURN              ret;\r
-       DAT_REGION_DESCRIPTION  region;\r
-       DAT_EVENT               event;\r
-       DAT_COUNT               nmore;\r
-       DAT_LMR_TRIPLET         l_iov;\r
-       DAT_RMR_TRIPLET         r_iov;\r
-       DAT_DTO_COOKIE          cookie;\r
-       int                     i;\r
-       DAT_VADDR               va; \r
-       DAT_SEG_LENGTH          len;\r
-       DAT_RMR_CONTEXT         rmr_ctx;\r
-\r
+    DAT_SOCK_ADDR           remote_addr;\r
+    DAT_RETURN              ret;\r
+    DAT_REGION_DESCRIPTION  region;\r
+    DAT_EVENT               event;\r
+    DAT_COUNT               nmore;\r
+    DAT_LMR_TRIPLET         l_iov;\r
+    DAT_RMR_TRIPLET         r_iov;\r
+    DAT_DTO_COOKIE          cookie;\r
+    int                     i;\r
+    \r
      /* Register send message buffer */\r
-    LOGPRINTF3("%d Registering send Message Buffer %p, len %d\n",\r
+    LOGPRINTF("%d Registering send Message Buffer %p, len %d\n",\r
                getpid(), &rmr_send_msg, sizeof(DAT_RMR_TRIPLET) );\r
     region.for_va = &rmr_send_msg;\r
     ret = dat_lmr_create(  h_ia,\r
@@ -683,11 +767,11 @@ connect_ep( char *hostname, int conn_id )
        return(ret);\r
     }\r
     else\r
-       LOGPRINTF2("%d Registered send Message Buffer %p \n",\r
+       LOGPRINTF("%d Registered send Message Buffer %p \n",\r
                getpid(),region.for_va );\r
 \r
     /* Register Receive buffers */\r
-    LOGPRINTF2("%d Registering Receive Message Buffer %p\n",\r
+    LOGPRINTF("%d Registering Receive Message Buffer %p\n",\r
                getpid(), rmr_recv_msg );\r
     region.for_va = rmr_recv_msg;\r
     ret = dat_lmr_create(  h_ia,\r
@@ -708,16 +792,20 @@ connect_ep( char *hostname, int conn_id )
        return(ret);\r
     }\r
     else\r
-       LOGPRINTF2("%d Registered Receive Message Buffer %p\n",\r
+       LOGPRINTF("%d Registered Receive Message Buffer %p\n",\r
                getpid(),region.for_va);\r
 \r
     for ( i = 0; i < MSG_BUF_COUNT; i++ ) {\r
        cookie.as_64          = i;\r
        l_iov.lmr_context     = lmr_context_recv_msg;\r
+#if defined(_WIN32)\r
        l_iov.virtual_address = (DAT_VADDR)&rmr_recv_msg[ i ];\r
+#else\r
+       l_iov.virtual_address = (DAT_VADDR)(unsigned long)&rmr_recv_msg[ i ];\r
+#endif\r
        l_iov.segment_length  = sizeof(DAT_RMR_TRIPLET);\r
 \r
-       LOGPRINTF2("%d Posting Receive Message Buffer %p\n",\r
+       LOGPRINTF("%d Posting Receive Message Buffer %p\n",\r
                    getpid(), &rmr_recv_msg[ i ]);\r
        ret = dat_ep_post_recv( h_ep,\r
                                1,\r
@@ -731,7 +819,7 @@ connect_ep( char *hostname, int conn_id )
            return(ret);\r
         }\r
        else\r
-           LOGPRINTF2("%d Registered Receive Message Buffer %p\n",\r
+           LOGPRINTF("%d Registered Receive Message Buffer %p\n",\r
                                    getpid(),region.for_va);\r
 \r
     }\r
@@ -742,7 +830,7 @@ connect_ep( char *hostname, int conn_id )
     if ( server ) {  /* SERVER */\r
 \r
         /* create the service point for server listen */\r
-        LOGPRINTF1("%d Creating service point for listen\n",getpid());\r
+        LOGPRINTF("%d Creating service point for listen\n",getpid());\r
        ret = dat_psp_create(   h_ia,\r
                                conn_id,\r
                                h_cr_evd,\r
@@ -754,9 +842,11 @@ connect_ep( char *hostname, int conn_id )
            return(ret);\r
        }\r
        else\r
-           LOGPRINTF1("%d dat_psp_created for server listen\n", getpid());\r
+           LOGPRINTF("%d dat_psp_created for server listen\n", getpid());\r
 \r
-        printf("%d Server waiting for connect request..\n", getpid());\r
+       printf("%d Server waiting for connect request on port %lld\n", \r
+               getpid(),conn_id);\r
+       \r
        ret = dat_evd_wait( h_cr_evd, SERVER_TIMEOUT, 1, &event, &nmore );\r
        if(ret != DAT_SUCCESS) {\r
            fprintf(stderr, "%d Error dat_evd_wait: %s\n",\r
@@ -764,12 +854,12 @@ connect_ep( char *hostname, int conn_id )
            return(ret);\r
        }\r
        else\r
-           LOGPRINTF1("%d dat_evd_wait for cr_evd completed\n", getpid());\r
+           LOGPRINTF("%d dat_evd_wait for cr_evd completed\n", getpid());\r
 \r
        if ( event.event_number != DAT_CONNECTION_REQUEST_EVENT ) {\r
             fprintf(stderr, "%d Error unexpected cr event : %s\n",\r
                                    getpid(),DT_EventToSTr(event.event_number));\r
-                       return( DAT_ABORT );\r
+           return( DAT_ABORT );\r
        }\r
        if ( (event.event_data.cr_arrival_event_data.conn_qual != SERVER_CONN_QUAL) ||\r
             (event.event_data.cr_arrival_event_data.sp_handle.psp_handle != h_psp) ) {\r
@@ -786,15 +876,15 @@ connect_ep( char *hostname, int conn_id )
 #endif\r
         /* accept connect request from client */\r
        h_cr = event.event_data.cr_arrival_event_data.cr_handle;\r
-        LOGPRINTF1("%d Accepting connect request from client\n",getpid());\r
+       LOGPRINTF("%d Accepting connect request from client\n",getpid());\r
        ret = dat_cr_accept( h_cr, h_ep, 0, (DAT_PVOID)0 );\r
-        if(ret != DAT_SUCCESS) {\r
+       if(ret != DAT_SUCCESS) {\r
            fprintf(stderr, "%d Error dat_cr_accept: %s\n",\r
                    getpid(),DT_RetToString(ret));\r
            return(ret);\r
        }\r
        else\r
-           LOGPRINTF1("%d dat_cr_accept completed\n", getpid());\r
+           LOGPRINTF("%d dat_cr_accept completed\n", getpid());\r
     }\r
     else {  /* CLIENT */\r
        struct addrinfo *target;\r
@@ -811,18 +901,17 @@ connect_ep( char *hostname, int conn_id )
            perror("\n remote name resolution failed!");\r
            exit ( 1 );\r
        }\r
-       rval = ((struct sockaddr_in *)target->ai_addr)->sin_addr.sin_addr;\r
+       rval = ((struct sockaddr_in *)target->ai_addr)->sin_addr.s_addr;\r
 #endif\r
        printf ("%d Server Name: %s \n", getpid(), hostname);\r
-       printf ("%d Server Net Address: %d.%d.%d.%d\n", getpid(),\r
-           (rval >>  0) & 0xff,\r
-           (rval >>  8) & 0xff,\r
-           (rval >> 16) & 0xff,\r
-           (rval >> 24) & 0xff);\r
+       printf ("%d Server Net Address: %d.%d.%d.%d port %lld\n", getpid(),\r
+               (rval >>  0) & 0xff, (rval >>  8) & 0xff,\r
+               (rval >> 16) & 0xff, (rval >> 24) & 0xff, conn_id);\r
 \r
        remote_addr = *((DAT_IA_ADDRESS_PTR)target->ai_addr);\r
+       freeaddrinfo(target);\r
 \r
-       LOGPRINTF1("%d Connecting to server\n",getpid());\r
+       LOGPRINTF("%d Connecting to server\n",getpid());\r
        ret = dat_ep_connect(   h_ep,\r
                                &remote_addr,\r
                                conn_id,\r
@@ -837,7 +926,7 @@ connect_ep( char *hostname, int conn_id )
            return(ret);\r
        }\r
        else\r
-           LOGPRINTF1("%d dat_ep_connect completed\n", getpid());\r
+           LOGPRINTF("%d dat_ep_connect completed\n", getpid());\r
     }\r
 \r
     printf("%d Waiting for connect response\n",getpid());\r
@@ -849,7 +938,7 @@ connect_ep( char *hostname, int conn_id )
            return(ret);\r
     }\r
     else\r
-           LOGPRINTF1("%d dat_evd_wait for h_conn_evd completed\n", getpid());\r
+           LOGPRINTF("%d dat_evd_wait for h_conn_evd completed\n", getpid());\r
 \r
     if ( event.event_number != DAT_CONNECTION_EVENT_ESTABLISHED ) {\r
            fprintf(stderr, "%d Error unexpected conn event : %s\n",\r
@@ -866,22 +955,18 @@ connect_ep( char *hostname, int conn_id )
     /*\r
      *  Setup our remote memory and tell the other side about it\r
      */\r
-    va = (DAT_VADDR)rbuf;\r
-    len = RDMA_BUFFER_SIZE;\r
-    rmr_ctx = rmr_context_recv;\r
-\r
-    rmr_send_msg.virtual_address = cl_hton64((DAT_VADDR)rbuf);\r
-    rmr_send_msg.segment_length  = cl_hton32(RDMA_BUFFER_SIZE);\r
-    rmr_send_msg.rmr_context     = cl_hton32(rmr_context_recv);\r
+    rmr_send_msg.virtual_address = hton64((DAT_VADDR)rbuf);\r
+    rmr_send_msg.segment_length  = hton32(RDMA_BUFFER_SIZE);\r
+    rmr_send_msg.rmr_context     = hton32(rmr_context_recv);\r
 \r
-    printf("%d Send RMR to remote: snd_msg: r_key_ctx=%lx,va=%I64x,len=0x%lx\n",\r
-           getpid(), rmr_ctx, va, len );\r
+    printf("%d Send RMR msg to remote: r_key_ctx=0x%x,va=%p,len=0x%x\n",\r
+           getpid(), rmr_context_recv, rbuf, RDMA_BUFFER_SIZE );\r
 \r
-    ret = send_msg( &rmr_send_msg,\r
+    ret = send_msg(&rmr_send_msg,\r
                    sizeof( DAT_RMR_TRIPLET ),\r
                    lmr_context_send_msg,\r
                    cookie,\r
-                   DAT_COMPLETION_SUPPRESS_FLAG );\r
+                   DAT_COMPLETION_SUPPRESS_FLAG);\r
 \r
     if(ret != DAT_SUCCESS) {\r
         fprintf(stderr, "%d Error send_msg: %s\n",\r
@@ -889,7 +974,7 @@ connect_ep( char *hostname, int conn_id )
        return(ret);\r
     }\r
     else\r
-       LOGPRINTF1("%d send_msg completed\n", getpid());\r
+       LOGPRINTF("%d send_msg completed\n", getpid());\r
 \r
     /*\r
      *  Wait for remote RMR information for RDMA\r
@@ -904,7 +989,7 @@ connect_ep( char *hostname, int conn_id )
        {\r
            DAT_EVD_HANDLE evd = DAT_HANDLE_NULL;\r
            ret = dat_cno_wait( h_dto_cno, DTO_TIMEOUT, &evd );\r
-           LOGPRINTF2("%d cno wait return evd_handle=%p\n", getpid(),evd);\r
+           LOGPRINTF("%d cno wait return evd_handle=%p\n", getpid(),evd);\r
            if ( evd != h_dto_rcv_evd ) {\r
                fprintf(stderr,\r
                        "%d Error waiting on h_dto_cno: evd != h_dto_rcv_evd\n",\r
@@ -920,7 +1005,7 @@ connect_ep( char *hostname, int conn_id )
            return(ret);\r
        }\r
        else {\r
-           LOGPRINTF1("%d dat_evd_wait h_dto_rcv_evd completed\n", getpid());\r
+           LOGPRINTF("%d dat_evd_wait h_dto_rcv_evd completed\n", getpid());\r
        }\r
     }\r
 \r
@@ -935,36 +1020,35 @@ connect_ep( char *hostname, int conn_id )
                sizeof( DAT_RMR_TRIPLET )) ||\r
        (event.event_data.dto_completion_event_data.user_cookie.as_64 !=\r
                recv_msg_index) ) {\r
-       fprintf(stderr,"ERR recv event: len=%d cookie= %llx expected %d/%d\n",\r
+       fprintf(stderr,"ERR recv event: len=%d cookie="F64x" expected %d/%d\n",\r
            (int)event.event_data.dto_completion_event_data.transfered_length,\r
            (int)event.event_data.dto_completion_event_data.user_cookie.as_64,\r
            sizeof(DAT_RMR_TRIPLET), recv_msg_index );\r
        return( DAT_ABORT );\r
     }\r
 \r
-    rmr_recv_msg[ recv_msg_index ].virtual_address =\r
-               cl_ntoh64(rmr_recv_msg[ recv_msg_index ].virtual_address);\r
-    rmr_recv_msg[ recv_msg_index ].segment_length =\r
-               cl_ntoh32(rmr_recv_msg[ recv_msg_index ].segment_length);\r
-    rmr_recv_msg[ recv_msg_index ].rmr_context =\r
-               cl_ntoh32(rmr_recv_msg[ recv_msg_index ].rmr_context);\r
-\r
-    r_iov = rmr_recv_msg[ recv_msg_index ];\r
-\r
-    printf("%d Received RMR from remote: r_iov: ctx=%x,va=%I64x,len=0x%x\n",\r
-           getpid(),\r
-           r_iov.rmr_context, \r
-           r_iov.virtual_address,\r
-           r_iov.segment_length );\r
+    /* swap received RMR msg: network order to host order */\r
+    r_iov = rmr_recv_msg[recv_msg_index];\r
+    rmr_recv_msg[recv_msg_index].rmr_context = \r
+           ntoh32(r_iov.rmr_context);\r
+    rmr_recv_msg[recv_msg_index].virtual_address = \r
+           ntoh64(r_iov.virtual_address);\r
+    rmr_recv_msg[recv_msg_index].segment_length = \r
+           ntoh32(r_iov.segment_length);\r
+\r
+    printf("%d Received RMR from remote: "\r
+           "r_iov: r_key_ctx=%x,va="F64x",len=0x%x\n",\r
+           getpid(), rmr_recv_msg[recv_msg_index].rmr_context,\r
+           rmr_recv_msg[recv_msg_index].virtual_address,\r
+           rmr_recv_msg[recv_msg_index].segment_length );\r
 \r
     recv_msg_index++;\r
 \r
     return ( DAT_SUCCESS );\r
 }\r
 \r
-\r
 void\r
-disconnect_ep()\r
+disconnect_ep( void )\r
 {\r
     DAT_RETURN ret;\r
     DAT_EVENT  event;\r
@@ -978,18 +1062,18 @@ disconnect_ep()
         * disconnect request and then exit.\r
         */\r
        if ( !server ) {\r
-           LOGPRINTF1("%d dat_ep_disconnect\n", getpid());\r
+           LOGPRINTF("%d dat_ep_disconnect\n", getpid());\r
            ret = dat_ep_disconnect( h_ep, DAT_CLOSE_DEFAULT );\r
            if(ret != DAT_SUCCESS)  {\r
                    fprintf(stderr, "%d Error dat_ep_disconnect: %s\n",\r
-                                   getpid(),DT_RetToString(ret));\r
+                           getpid(),DT_RetToString(ret));\r
            }\r
            else {\r
-               LOGPRINTF1("%d dat_ep_disconnect completed\n", getpid());\r
+               LOGPRINTF("%d dat_ep_disconnect completed\n", getpid());\r
            }\r
        }\r
        else {\r
-           LOGPRINTF1("%d Server waiting for disconnect...\n", getpid());\r
+           LOGPRINTF("%d Server waiting for disconnect...\n", getpid());\r
        }\r
 \r
        ret = dat_evd_wait(h_conn_evd, DAT_TIMEOUT_INFINITE, 1, &event, &nmore);\r
@@ -998,7 +1082,7 @@ disconnect_ep()
                                getpid(),DT_RetToString(ret));\r
        }\r
        else {\r
-           LOGPRINTF1("%d dat_evd_wait for h_conn_evd completed\n", getpid());\r
+           LOGPRINTF("%d dat_evd_wait for h_conn_evd completed\n", getpid());\r
        }\r
     }\r
 \r
@@ -1010,32 +1094,32 @@ disconnect_ep()
                    getpid(),DT_RetToString(ret));\r
        }\r
        else {\r
-           LOGPRINTF1("%d dat_psp_free completed\n", getpid());\r
+           LOGPRINTF("%d dat_psp_free completed\n", getpid());\r
        }\r
     }\r
 \r
     /* Unregister Send message Buffer */\r
     if ( h_lmr_send_msg != DAT_HANDLE_NULL ) {\r
-       LOGPRINTF2("%d Unregister send message h_lmr %p \n",getpid(),h_lmr_send_msg);\r
+       LOGPRINTF("%d Unregister send message h_lmr %p \n",getpid(),h_lmr_send_msg);\r
        ret = dat_lmr_free(h_lmr_send_msg);\r
         if(ret != DAT_SUCCESS) {\r
            fprintf(stderr, "%d Error deregistering send msg mr: %s\n",\r
            getpid(), DT_RetToString(ret));\r
        } else {\r
-           LOGPRINTF1("%d Unregistered send message Buffer\n",getpid());\r
+           LOGPRINTF("%d Unregistered send message Buffer\n",getpid());\r
            h_lmr_send_msg = NULL;\r
        }\r
     }\r
 \r
     /* Unregister recv message Buffer */\r
     if ( h_lmr_recv_msg != DAT_HANDLE_NULL ) {\r
-       LOGPRINTF2("%d Unregister recv message h_lmr %p \n",getpid(),h_lmr_recv_msg);\r
+       LOGPRINTF("%d Unregister recv message h_lmr %p \n",getpid(),h_lmr_recv_msg);\r
        ret = dat_lmr_free(h_lmr_recv_msg);\r
         if(ret != DAT_SUCCESS) {\r
            fprintf(stderr, "%d Error deregistering recv msg mr: %s\n",\r
                            getpid(), DT_RetToString(ret));\r
        } else {\r
-           LOGPRINTF1("%d Unregistered recv message Buffer\n",getpid());\r
+           LOGPRINTF("%d Unregistered recv message Buffer\n",getpid());\r
            h_lmr_recv_msg = NULL;\r
        }\r
     }\r
@@ -1044,7 +1128,7 @@ disconnect_ep()
 \r
 \r
 DAT_RETURN\r
-do_rdma_write_with_msg( )\r
+do_rdma_write_with_msg( void )\r
 {\r
        DAT_EVENT               event;\r
        DAT_COUNT               nmore;\r
@@ -1075,7 +1159,7 @@ do_rdma_write_with_msg( )
           l_iov[i].virtual_address = (DAT_VADDR)\r
                                        (&sbuf[l_iov[i].segment_length*i]);\r
 \r
-          LOGPRINTF4("%d rdma_write iov[%d] buf=%p,len=%d\n", \r
+          LOGPRINTF("%d rdma_write iov[%d] buf=%p,len=%d\n", \r
                        getpid(), i, &sbuf[l_iov[i].segment_length*i],\r
                        l_iov[i].segment_length);\r
        }\r
@@ -1094,17 +1178,14 @@ do_rdma_write_with_msg( )
                                        getpid(),DT_RetToString(ret));\r
                return( DAT_ABORT );\r
            }\r
-           LOGPRINTF2("%d rdma_write # %d completed\n", getpid(),i+1);\r
+           LOGPRINTF("%d rdma_write # %d completed\n", getpid(),i+1);\r
        }\r
 \r
        /*\r
         *  Send RMR information a 2nd time to indicate completion\r
+        *  NOTE: already swapped to network order in connect_ep\r
         */\r
-       rmr_send_msg.virtual_address = cl_ntoh64((DAT_VADDR)rbuf);\r
-       rmr_send_msg.segment_length  = cl_ntoh32(RDMA_BUFFER_SIZE);\r
-       rmr_send_msg.rmr_context     = cl_hton32(rmr_context_recv);\r
-\r
-       printf("%d Sending completion message\n",getpid());\r
+       printf("%d Sending RDMA WRITE completion message\n",getpid());\r
 \r
        ret = send_msg( &rmr_send_msg,\r
                        sizeof( DAT_RMR_TRIPLET ),\r
@@ -1117,22 +1198,22 @@ do_rdma_write_with_msg( )
                                getpid(),DT_RetToString(ret));\r
                return(ret);\r
        } else {\r
-               LOGPRINTF1("%d send_msg completed\n", getpid());\r
+               LOGPRINTF("%d send_msg completed\n", getpid());\r
        }\r
 \r
        /*\r
-        *  Collect first event, write completion or the inbound recv with immed\r
+        *  Collect first event, write completion or the inbound recv \r
         */\r
-       if ( polling ) {\r
-           while (  dat_evd_dequeue( h_dto_rcv_evd, &event ) == DAT_QUEUE_EMPTY )\r
+       if (polling) {\r
+           while (dat_evd_dequeue(h_dto_rcv_evd, &event) == DAT_QUEUE_EMPTY)\r
                rdma_wr_poll_count++;\r
        }\r
        else {\r
-           LOGPRINTF1("%d waiting for message receive event\n", getpid());\r
+           LOGPRINTF("%d waiting for message receive event\n", getpid());\r
            if (use_cno)  {\r
                    DAT_EVD_HANDLE evd = DAT_HANDLE_NULL;\r
                    ret = dat_cno_wait( h_dto_cno, DTO_TIMEOUT, &evd );\r
-                   LOGPRINTF2("%d cno wait return evd_handle=%p\n",\r
+                   LOGPRINTF("%d cno wait return evd_handle=%p\n",\r
                                getpid(),evd);\r
                    if ( evd != h_dto_rcv_evd ) {\r
                            fprintf(stderr, "%d Error waiting on h_dto_cno: "\r
@@ -1142,7 +1223,7 @@ do_rdma_write_with_msg( )
                    }\r
            }\r
            /* use wait to dequeue */\r
-           ret = dat_evd_wait( h_dto_rcv_evd, DTO_TIMEOUT, 1, &event, &nmore );\r
+           ret = dat_evd_wait(h_dto_rcv_evd, DTO_TIMEOUT, 1, &event, &nmore);\r
            if (ret != DAT_SUCCESS) {\r
                    fprintf(stderr, "%d: ERROR: DTO dat_evd_wait() %s\n",\r
                                            getpid(),DT_RetToString(ret));\r
@@ -1162,7 +1243,7 @@ do_rdma_write_with_msg( )
 \r
        if ( (event.event_data.dto_completion_event_data.transfered_length != sizeof( DAT_RMR_TRIPLET )) ||\r
             (event.event_data.dto_completion_event_data.user_cookie.as_64 != recv_msg_index) ) {\r
-           fprintf(stderr,"unexpected event data for receive: len=%d cookie=" PRIx64 " exp %d/%d\n",\r
+           fprintf(stderr,"unexpected event data for receive: len=%d cookie="F64x" exp %d/%d\n",\r
                (int)event.event_data.dto_completion_event_data.transfered_length,\r
                (int)event.event_data.dto_completion_event_data.user_cookie.as_64,\r
                sizeof(DAT_RMR_TRIPLET), recv_msg_index );\r
@@ -1170,21 +1251,23 @@ do_rdma_write_with_msg( )
            return( DAT_ABORT );\r
        }\r
 \r
-       rmr_recv_msg[ recv_msg_index ].virtual_address =\r
-               cl_ntoh64(rmr_recv_msg[ recv_msg_index ].virtual_address);\r
-       rmr_recv_msg[ recv_msg_index ].segment_length =\r
-               cl_ntoh32(rmr_recv_msg[ recv_msg_index ].segment_length);\r
-       rmr_recv_msg[ recv_msg_index ].rmr_context =\r
-               cl_ntoh32(rmr_recv_msg[ recv_msg_index ].rmr_context);\r
+       /* swap received RMR msg: network order to host order */\r
+       r_iov = rmr_recv_msg[recv_msg_index];\r
+       rmr_recv_msg[recv_msg_index].virtual_address =\r
+               ntoh64(rmr_recv_msg[recv_msg_index].virtual_address);\r
+       rmr_recv_msg[recv_msg_index].segment_length =\r
+               ntoh32(rmr_recv_msg[recv_msg_index].segment_length);\r
+       rmr_recv_msg[recv_msg_index].rmr_context =\r
+               ntoh32(rmr_recv_msg[recv_msg_index].rmr_context);\r
 \r
-       r_iov = rmr_recv_msg[ recv_msg_index ];\r
+       printf("%d Received RMR from remote: "\r
+              "r_iov: r_key_ctx=%x,va="F64x",len=0x%x\n",\r
+              getpid(), rmr_recv_msg[recv_msg_index].rmr_context,\r
+              rmr_recv_msg[recv_msg_index].virtual_address,\r
+              rmr_recv_msg[recv_msg_index].segment_length);\r
 \r
-       printf("%d Received RMR from remote: r_iov: ctx=%x,va=%I64x,len=0x%x\n",\r
-                   getpid(), r_iov.rmr_context,\r
-                  (void*)r_iov.virtual_address,\r
-                   r_iov.segment_length );\r
-\r
-       LOGPRINTF1("%d inbound rdma_write; send msg event SUCCESS!!\n",getpid());\r
+       LOGPRINTF("%d inbound rdma_write; send msg event SUCCESS!!\n",\r
+                getpid());\r
 \r
        printf("%d %s RDMA write buffer contains: %s\n",\r
                        getpid(),\r
@@ -1197,7 +1280,7 @@ do_rdma_write_with_msg( )
 }\r
 \r
 DAT_RETURN\r
-do_rdma_read_with_msg( )\r
+do_rdma_read_with_msg( void )\r
 {\r
        DAT_EVENT               event;\r
        DAT_COUNT               nmore;\r
@@ -1209,19 +1292,19 @@ do_rdma_read_with_msg( )
 \r
        printf("\n %d RDMA READ DATA with SEND MSG\n\n",getpid());\r
 \r
-       if ( recv_msg_index >= MSG_BUF_COUNT )\r
+       if (recv_msg_index >= MSG_BUF_COUNT)\r
                return( DAT_ABORT );\r
 \r
        /* get RMR information from previously received message */\r
-       r_iov = rmr_recv_msg[ recv_msg_index-1 ];\r
+       r_iov = rmr_recv_msg[recv_msg_index-1];\r
 \r
        /* setup rdma read buffer to initial string to be overwritten */\r
-       strcpy( (char*)sbuf, "blah, blah, blah\n" );\r
+       strcpy((char*)sbuf, "blah, blah, blah\n");\r
 \r
-       if ( server )\r
-           strcpy( (char*)rbuf, "server RDMA read data..." );\r
+       if (server)\r
+           strcpy((char*)rbuf, "server RDMA read data...");\r
        else\r
-           strcpy( (char*)rbuf, "client RDMA read data..." );\r
+           strcpy((char*)rbuf, "client RDMA read data...");\r
 \r
        l_iov.lmr_context     = lmr_context_send;\r
        l_iov.virtual_address = (DAT_VADDR)sbuf;\r
@@ -1230,16 +1313,16 @@ do_rdma_read_with_msg( )
        for (i=0;i<MAX_RDMA_RD;i++) {\r
            cookie.as_64 = 0x9999;\r
            start = get_time();\r
-           ret = dat_ep_post_rdma_read(    h_ep,               // ep_handle\r
-                                           1,                  // num_segments\r
-                                           &l_iov,             // LMR\r
-                                           cookie,             // user_cookie\r
-                                           &r_iov,             // RMR\r
-                                           DAT_COMPLETION_DEFAULT_FLAG );\r
+           ret = dat_ep_post_rdma_read(h_ep,           // ep_handle\r
+                                       1,              // num_segments\r
+                                       &l_iov,         // LMR\r
+                                       cookie,         // user_cookie\r
+                                       &r_iov,         // RMR\r
+                                       DAT_COMPLETION_DEFAULT_FLAG );\r
            if (ret != DAT_SUCCESS) {\r
                fprintf(stderr, "%d: ERROR: dat_ep_post_rdma_read() %s\n", \r
                                        getpid(),DT_RetToString(ret));\r
-               return( DAT_ABORT );\r
+               return(DAT_ABORT);\r
            }\r
            \r
            if (polling) {\r
@@ -1247,11 +1330,11 @@ do_rdma_read_with_msg( )
                        rdma_rd_poll_count[i]++;\r
            } \r
            else {\r
-               LOGPRINTF1("%d waiting for rdma_read completion event\n", getpid());\r
+               LOGPRINTF("%d waiting for rdma_read completion event\n", getpid());\r
                if (use_cno) {\r
                        DAT_EVD_HANDLE evd = DAT_HANDLE_NULL;\r
                        ret = dat_cno_wait( h_dto_cno, DTO_TIMEOUT, &evd );\r
-                       LOGPRINTF2("%d cno wait return evd_handle=%p\n", getpid(),evd);\r
+                       LOGPRINTF("%d cno wait return evd_handle=%p\n", getpid(),evd);\r
                        if ( evd != h_dto_req_evd ) {\r
                                fprintf(stderr, \r
                                "%d Error waiting on h_dto_cno: evd != h_dto_req_evd\n", \r
@@ -1275,7 +1358,7 @@ do_rdma_read_with_msg( )
            }\r
            if ((event.event_data.dto_completion_event_data.transfered_length != buf_len ) ||\r
                (event.event_data.dto_completion_event_data.user_cookie.as_64 != 0x9999 )) {\r
-               fprintf(stderr, "%d: ERROR: DTO len %d or cookie " PRIx64 "\n", \r
+               fprintf(stderr, "%d: ERROR: DTO len %d or cookie "F64x"\n", \r
                        getpid(),\r
                        event.event_data.dto_completion_event_data.transfered_length,\r
                        event.event_data.dto_completion_event_data.user_cookie.as_64 );\r
@@ -1290,17 +1373,14 @@ do_rdma_read_with_msg( )
            time.rdma_rd[i] = ((stop - start)*1.0e6);\r
            time.rdma_rd_total += time.rdma_rd[i];\r
 \r
-           LOGPRINTF2("%d rdma_read # %d completed\n", getpid(),i+1);\r
+           LOGPRINTF("%d rdma_read # %d completed\n", getpid(),i+1);\r
        }\r
 \r
        /*\r
-        *  Send RMR information a 2nd time to indicate completion\r
+        *  Send RMR information a 3rd time to indicate completion\r
+        *  NOTE: already swapped to network order in connect_ep\r
         */\r
-       rmr_send_msg.virtual_address = cl_hton64((DAT_VADDR)rbuf);\r
-       rmr_send_msg.segment_length  = cl_hton32(RDMA_BUFFER_SIZE);\r
-       rmr_send_msg.rmr_context     = cl_hton32(rmr_context_recv);\r
-\r
-       printf("%d Sending completion message\n",getpid());\r
+       printf("%d Sending RDMA read completion message\n",getpid());\r
 \r
        ret = send_msg( &rmr_send_msg,\r
                        sizeof( DAT_RMR_TRIPLET ),\r
@@ -1313,7 +1393,7 @@ do_rdma_read_with_msg( )
                                getpid(),DT_RetToString(ret));\r
                return(ret);\r
        } else {\r
-               LOGPRINTF1("%d send_msg completed\n", getpid());\r
+               LOGPRINTF("%d send_msg completed\n", getpid());\r
        }\r
 \r
        /*\r
@@ -1324,11 +1404,11 @@ do_rdma_read_with_msg( )
            while (  dat_evd_dequeue( h_dto_rcv_evd, &event ) == DAT_QUEUE_EMPTY );\r
        }\r
        else {\r
-           LOGPRINTF1("%d waiting for message receive event\n", getpid());\r
+           LOGPRINTF("%d waiting for message receive event\n", getpid());\r
            if (use_cno) {\r
                    DAT_EVD_HANDLE evd = DAT_HANDLE_NULL;\r
                    ret = dat_cno_wait( h_dto_cno, DTO_TIMEOUT, &evd );\r
-                   LOGPRINTF2("%d cno wait return evd_handle=%p\n", getpid(),evd);\r
+                   LOGPRINTF("%d cno wait return evd_handle=%p\n", getpid(),evd);\r
                    if ( evd != h_dto_rcv_evd ) {\r
                            fprintf(stderr, \r
                                   "%d Error waiting on h_dto_cno: evd != h_dto_rcv_evd\n",\r
@@ -1347,16 +1427,16 @@ do_rdma_read_with_msg( )
 \r
        /* validate event number and status */\r
        printf("%d inbound rdma_read; send message arrived!\n",getpid());\r
-       if ( event.event_number != DAT_DTO_COMPLETION_EVENT ) {\r
+       if (event.event_number != DAT_DTO_COMPLETION_EVENT ) {\r
            fprintf(stderr, "%d Error unexpected DTO event : %s\n",\r
                                getpid(),DT_EventToSTr(event.event_number));\r
            return( DAT_ABORT );\r
        }\r
 \r
-       if ( (event.event_data.dto_completion_event_data.transfered_length != sizeof( DAT_RMR_TRIPLET )) ||\r
-            (event.event_data.dto_completion_event_data.user_cookie.as_64 != recv_msg_index) ) {\r
+       if ((event.event_data.dto_completion_event_data.transfered_length != sizeof( DAT_RMR_TRIPLET)) ||\r
+            (event.event_data.dto_completion_event_data.user_cookie.as_64 != recv_msg_index)) {\r
 \r
-           fprintf(stderr,"unexpected event data for receive: len=%d cookie=" PRIx64 " exp %d/%d\n",\r
+           fprintf(stderr,"unexpected event data for receive: len=%d cookie="F64x" exp %d/%d\n",\r
                (int)event.event_data.dto_completion_event_data.transfered_length,\r
                (int)event.event_data.dto_completion_event_data.user_cookie.as_64,\r
                sizeof(DAT_RMR_TRIPLET), recv_msg_index );\r
@@ -1364,20 +1444,22 @@ do_rdma_read_with_msg( )
            return( DAT_ABORT );\r
        }\r
 \r
-       rmr_recv_msg[ recv_msg_index ].virtual_address =\r
-               cl_ntoh64(rmr_recv_msg[ recv_msg_index ].virtual_address);\r
-       rmr_recv_msg[ recv_msg_index ].segment_length =\r
-               cl_ntoh32(rmr_recv_msg[ recv_msg_index ].segment_length);\r
-       rmr_recv_msg[ recv_msg_index ].rmr_context =\r
-               cl_ntoh32(rmr_recv_msg[ recv_msg_index ].rmr_context);\r
-\r
-       r_iov = rmr_recv_msg[ recv_msg_index ];\r
+       /* swap received RMR msg: network order to host order */\r
+       r_iov = rmr_recv_msg[recv_msg_index];\r
+       rmr_recv_msg[recv_msg_index].virtual_address =\r
+               ntoh64(rmr_recv_msg[recv_msg_index].virtual_address);\r
+       rmr_recv_msg[recv_msg_index].segment_length =\r
+               ntoh32(rmr_recv_msg[ recv_msg_index].segment_length);\r
+       rmr_recv_msg[recv_msg_index].rmr_context =\r
+               ntoh32(rmr_recv_msg[recv_msg_index].rmr_context);\r
 \r
-       printf("%d Received RMR from remote: r_iov: ctx=%x,va=%I64x,len=0x%x\n",\r
-               getpid(), (r_iov.rmr_context), \r
-               (void*)r_iov.virtual_address, r_iov.segment_length );\r
+       printf("%d Received RMR from remote: "\r
+              "r_iov: r_key_ctx=%x,va="F64x",len=0x%x\n",\r
+              getpid(), rmr_recv_msg[recv_msg_index].rmr_context,\r
+              rmr_recv_msg[recv_msg_index].virtual_address,\r
+              rmr_recv_msg[recv_msg_index].segment_length);\r
 \r
-       LOGPRINTF1("%d inbound rdma_write; send msg event SUCCESS!!\n",getpid());\r
+       LOGPRINTF("%d inbound rdma_write; send msg event SUCCESS!!\n",getpid());\r
 \r
        printf("%d %s RCV RDMA read buffer contains: %s\n",\r
                        getpid(),\r
@@ -1415,7 +1497,7 @@ do_ping_pong_msg( )
        l_iov.virtual_address = (DAT_VADDR)rcv_buf;\r
        l_iov.segment_length  = buf_len;\r
 \r
-       LOGPRINTF2("%d Pre-posting Receive Message Buffers %p\n",\r
+       LOGPRINTF("%d Pre-posting Receive Message Buffers %p\n",\r
                    getpid(), rcv_buf );\r
 \r
        ret = dat_ep_post_recv( h_ep,\r
@@ -1430,7 +1512,7 @@ do_ping_pong_msg( )
            return(ret);\r
         }\r
        else {\r
-           LOGPRINTF2("%d Posted Receive Message Buffer %p\n",getpid(),rcv_buf);\r
+           LOGPRINTF("%d Posted Receive Message Buffer %p\n",getpid(),rcv_buf);\r
         }\r
 \r
        /* next buffer */\r
@@ -1453,7 +1535,7 @@ do_ping_pong_msg( )
        if ( !server ) {\r
            *snd_buf = 0x55;\r
 \r
-           LOGPRINTF5("%d %s SND buffer %p contains: 0x%x len=%d\n",\r
+           LOGPRINTF("%d %s SND buffer %p contains: 0x%x len=%d\n",\r
                    getpid(), server ? "SERVER:" : "CLIENT:",\r
                    snd_buf, *snd_buf, buf_len );\r
 \r
@@ -1469,23 +1551,23 @@ do_ping_pong_msg( )
                return(ret);\r
            }\r
            else {\r
-               LOGPRINTF1("%d send_msg completed\n", getpid());\r
+               LOGPRINTF("%d send_msg completed\n", getpid());\r
            }\r
        }\r
 \r
        /* Wait for recv message */\r
        if ( polling ) {\r
            poll_count=0;\r
-           LOGPRINTF1("%d Polling for message receive event\n", getpid());\r
+           LOGPRINTF("%d Polling for message receive event\n", getpid());\r
            while (  dat_evd_dequeue( h_dto_rcv_evd, &event ) == DAT_QUEUE_EMPTY )\r
                poll_count++;\r
        }\r
        else {\r
-           LOGPRINTF1("%d waiting for message receive event\n", getpid());\r
+           LOGPRINTF("%d waiting for message receive event\n", getpid());\r
            if (use_cno) {\r
                DAT_EVD_HANDLE evd = DAT_HANDLE_NULL;\r
                ret = dat_cno_wait( h_dto_cno, DTO_TIMEOUT, &evd );\r
-               LOGPRINTF2("%d cno wait return evd_handle=%p\n", getpid(),evd);\r
+               LOGPRINTF("%d cno wait return evd_handle=%p\n", getpid(),evd);\r
                if ( evd != h_dto_rcv_evd )\r
                {\r
                    fprintf(stderr, \r
@@ -1507,7 +1589,7 @@ do_ping_pong_msg( )
            start = get_time();\r
        }\r
        /* validate event number and status */\r
-       LOGPRINTF1("%d inbound message; message arrived!\n",getpid());\r
+       LOGPRINTF("%d inbound message; message arrived!\n",getpid());\r
        if ( event.event_number != DAT_DTO_COMPLETION_EVENT ) {\r
            fprintf(stderr, "%d Error unexpected DTO event : %s\n",\r
                    getpid(),DT_EventToSTr(event.event_number));\r
@@ -1517,7 +1599,7 @@ do_ping_pong_msg( )
            != buf_len) ||\r
            (event.event_data.dto_completion_event_data.user_cookie.as_64\r
            != burst_msg_index) )  {\r
-           fprintf(stderr,"ERR: recv event: len=%d cookie=" PRIx64 " exp %d/%d\n",\r
+           fprintf(stderr,"ERR: recv event: len=%d cookie="F64x" exp %d/%d\n",\r
                (int)event.event_data.dto_completion_event_data.transfered_length,\r
                (int)event.event_data.dto_completion_event_data.user_cookie.as_64,\r
                buf_len, burst_msg_index );\r
@@ -1525,7 +1607,7 @@ do_ping_pong_msg( )
            return( DAT_ABORT );\r
        }\r
 \r
-       LOGPRINTF5("%d %s RCV buffer %p contains: 0x%x len=%d\n",\r
+       LOGPRINTF("%d %s RCV buffer %p contains: 0x%x len=%d\n",\r
                    getpid(), server ? "SERVER:" : "CLIENT:",\r
                    rcv_buf, *rcv_buf, buf_len );\r
 \r
@@ -1535,7 +1617,7 @@ do_ping_pong_msg( )
        if ( server ) {\r
            *snd_buf = 0xaa;\r
 \r
-           LOGPRINTF5("%d %s SND buffer %p contains: 0x%x len=%d\n",\r
+           LOGPRINTF("%d %s SND buffer %p contains: 0x%x len=%d\n",\r
                    getpid(), server ? "SERVER:" : "CLIENT:",\r
                    snd_buf, *snd_buf, buf_len );\r
 \r
@@ -1551,7 +1633,7 @@ do_ping_pong_msg( )
                return(ret);\r
            }\r
            else {\r
-               LOGPRINTF1("%d send_msg completed\n", getpid());\r
+               LOGPRINTF("%d send_msg completed\n", getpid());\r
            }\r
        }\r
 \r
@@ -1595,7 +1677,7 @@ register_rdma_memory(void)
                getpid(),DT_RetToString(ret));\r
        return (ret);\r
     } else {\r
-           LOGPRINTF2("%d Registered Receive RDMA Buffer %p\n",\r
+           LOGPRINTF("%d Registered Receive RDMA Buffer %p\n",\r
                        getpid(),region.for_va);\r
     }\r
 \r
@@ -1618,7 +1700,7 @@ register_rdma_memory(void)
                            getpid(),DT_RetToString(ret));\r
            return (ret);\r
     } else {\r
-           LOGPRINTF2("%d Registered Send RDMA Buffer %p\n",\r
+           LOGPRINTF("%d Registered Send RDMA Buffer %p\n",\r
                    getpid(),region.for_va);\r
     }\r
 \r
@@ -1636,7 +1718,7 @@ unregister_rdma_memory(void)
     /* Unregister Recv Buffer */\r
     if ( h_lmr_recv != DAT_HANDLE_NULL )\r
     {\r
-       LOGPRINTF2("%d Unregister h_lmr %p \n",getpid(),h_lmr_recv);\r
+       LOGPRINTF("%d Unregister h_lmr %p \n",getpid(),h_lmr_recv);\r
         start = get_time();\r
        ret = dat_lmr_free(h_lmr_recv);\r
         stop = get_time();\r
@@ -1648,14 +1730,14 @@ unregister_rdma_memory(void)
            return (ret);\r
        }\r
        else {\r
-           LOGPRINTF1("%d Unregistered Recv Buffer\n",getpid());\r
+           LOGPRINTF("%d Unregistered Recv Buffer\n",getpid());\r
            h_lmr_recv = NULL;\r
        }\r
     }\r
 \r
     /* Unregister Send Buffer */\r
     if ( h_lmr_send != DAT_HANDLE_NULL ) {\r
-       LOGPRINTF2("%d Unregister h_lmr %p \n",getpid(),h_lmr_send);\r
+       LOGPRINTF("%d Unregister h_lmr %p \n",getpid(),h_lmr_send);\r
        ret = dat_lmr_free(h_lmr_send);\r
         if(ret != DAT_SUCCESS) {\r
            fprintf(stderr, "%d Error deregistering send mr: %s\n",\r
@@ -1663,7 +1745,7 @@ unregister_rdma_memory(void)
            return (ret);\r
        }\r
        else {\r
-           LOGPRINTF1("%d Unregistered send Buffer\n",getpid());\r
+           LOGPRINTF("%d Unregistered send Buffer\n",getpid());\r
            h_lmr_send = NULL;\r
        }\r
     }\r
@@ -1677,6 +1759,7 @@ DAT_RETURN
 create_events(void)\r
 {\r
     DAT_RETURN ret;\r
+    DAT_EVD_PARAM param;\r
 \r
     /* create CNO */\r
     if (use_cno) {\r
@@ -1697,7 +1780,7 @@ create_events(void)
            return (ret);\r
        }\r
        else {\r
-           LOGPRINTF2("%d cr_evd created, %p\n", getpid(), h_dto_cno);\r
+           LOGPRINTF("%d cr_evd created, %p\n", getpid(), h_dto_cno);\r
        }\r
     }\r
 \r
@@ -1713,7 +1796,7 @@ create_events(void)
         return (ret);\r
     }\r
     else {\r
-        LOGPRINTF2("%d cr_evd created %p\n", getpid(),h_cr_evd);\r
+        LOGPRINTF("%d cr_evd created %p\n", getpid(),h_cr_evd);\r
     }\r
 \r
     /* create conn EVD */\r
@@ -1728,12 +1811,12 @@ create_events(void)
         return (ret);\r
     }\r
     else {\r
-        LOGPRINTF2("%d con_evd created %p\n", getpid(),h_conn_evd);\r
+        LOGPRINTF("%d con_evd created %p\n", getpid(),h_conn_evd);\r
     }\r
 \r
     /* create dto SND EVD, with CNO if use_cno was set */\r
     ret = dat_evd_create( h_ia,\r
-                         MSG_BUF_COUNT+MAX_RDMA_RD+burst*2,\r
+                         (MSG_BUF_COUNT+MAX_RDMA_RD+burst)*2,\r
                          h_dto_cno,\r
                          DAT_EVD_DTO_FLAG,\r
                          &h_dto_req_evd  );\r
@@ -1743,7 +1826,7 @@ create_events(void)
         return (ret);\r
     }\r
     else {\r
-        LOGPRINTF2("%d dto_req_evd created %p\n", getpid(), h_dto_req_evd );\r
+        LOGPRINTF("%d dto_req_evd created %p\n", getpid(), h_dto_req_evd );\r
     }\r
 \r
     /* create dto RCV EVD, with CNO if use_cno was set */\r
@@ -1758,8 +1841,28 @@ create_events(void)
         return (ret);\r
     }\r
     else {\r
-        LOGPRINTF2("%d dto_rcv_evd created %p\n", getpid(), h_dto_rcv_evd );\r
+        LOGPRINTF("%d dto_rcv_evd created %p\n", getpid(), h_dto_rcv_evd );\r
+    }\r
+\r
+    /* query DTO req EVD and check size */\r
+    ret = dat_evd_query( h_dto_req_evd,\r
+                          DAT_EVD_FIELD_EVD_QLEN,\r
+                          &param  );\r
+    if(ret != DAT_SUCCESS) {\r
+         fprintf(stderr, "%d Error dat_evd_query request evd: %s\n",\r
+                            getpid(),DT_RetToString(ret));\r
+         return (ret);\r
+    }\r
+    else if (param.evd_qlen < (MSG_BUF_COUNT+MAX_RDMA_RD+burst)*2) {\r
+         fprintf(stderr, "%d Error dat_evd qsize too small: %d < %d\n",\r
+                 getpid(), param.evd_qlen, \r
+                 (MSG_BUF_COUNT+MAX_RDMA_RD+burst)*2);\r
+         return (ret);\r
     }\r
+  \r
+    LOGPRINTF("%d dto_req_evd QLEN - requested %d and actual %d\n", \r
+              getpid(), (MSG_BUF_COUNT+MAX_RDMA_RD+burst)*2,\r
+              param.evd_qlen);\r
 \r
     return DAT_SUCCESS;\r
 }\r
@@ -1775,21 +1878,21 @@ destroy_events(void)
 \r
        /* free cr EVD */\r
     if ( h_cr_evd != DAT_HANDLE_NULL ) {\r
-        LOGPRINTF2("%d Free cr EVD %p \n",getpid(),h_cr_evd);\r
+        LOGPRINTF("%d Free cr EVD %p \n",getpid(),h_cr_evd);\r
         ret = dat_evd_free( h_cr_evd );\r
         if(ret != DAT_SUCCESS) {\r
                    fprintf(stderr, "%d Error freeing cr EVD: %s\n",\r
                            getpid(), DT_RetToString(ret));\r
                        return (ret);\r
            } else {\r
-                   LOGPRINTF1("%d Freed cr EVD\n",getpid());\r
+                   LOGPRINTF("%d Freed cr EVD\n",getpid());\r
             h_cr_evd = DAT_HANDLE_NULL;\r
            }\r
     }\r
 \r
     /* free conn EVD */\r
     if ( h_conn_evd != DAT_HANDLE_NULL ) {\r
-        LOGPRINTF2("%d Free conn EVD %p \n",getpid(),h_conn_evd);\r
+        LOGPRINTF("%d Free conn EVD %p \n",getpid(),h_conn_evd);\r
         ret = dat_evd_free( h_conn_evd );\r
         if(ret != DAT_SUCCESS) {\r
            fprintf(stderr, "%d Error freeing conn EVD: %s\n",\r
@@ -1797,14 +1900,14 @@ destroy_events(void)
            return (ret);\r
        }\r
        else {\r
-           LOGPRINTF1("%d Freed conn EVD\n",getpid());\r
+           LOGPRINTF("%d Freed conn EVD\n",getpid());\r
            h_conn_evd = DAT_HANDLE_NULL;\r
        }\r
     }\r
 \r
     /* free RCV dto EVD */\r
     if ( h_dto_rcv_evd != DAT_HANDLE_NULL ) {\r
-        LOGPRINTF2("%d Free RCV dto EVD %p \n",getpid(),h_dto_rcv_evd);\r
+        LOGPRINTF("%d Free RCV dto EVD %p \n",getpid(),h_dto_rcv_evd);\r
         start = get_time();\r
         ret = dat_evd_free( h_dto_rcv_evd );\r
         stop = get_time();\r
@@ -1816,14 +1919,14 @@ destroy_events(void)
            return (ret);\r
         }\r
         else {\r
-           LOGPRINTF1("%d Freed dto EVD\n",getpid());\r
+           LOGPRINTF("%d Freed dto EVD\n",getpid());\r
             h_dto_rcv_evd = DAT_HANDLE_NULL;\r
         }\r
      }\r
 \r
     /* free REQ dto EVD */\r
     if ( h_dto_req_evd != DAT_HANDLE_NULL ) {\r
-        LOGPRINTF2("%d Free REQ dto EVD %p \n",getpid(),h_dto_req_evd);\r
+        LOGPRINTF("%d Free REQ dto EVD %p \n",getpid(),h_dto_req_evd);\r
         ret = dat_evd_free( h_dto_req_evd );\r
         if(ret != DAT_SUCCESS) {\r
            fprintf(stderr, "%d Error freeing dto EVD: %s\n",\r
@@ -1831,14 +1934,14 @@ destroy_events(void)
            return (ret);\r
        }\r
        else {\r
-           LOGPRINTF1("%d Freed dto EVD\n",getpid());\r
+           LOGPRINTF("%d Freed dto EVD\n",getpid());\r
             h_dto_req_evd = DAT_HANDLE_NULL;\r
        }\r
     }\r
 \r
     /* free CNO */\r
     if ( h_dto_cno != DAT_HANDLE_NULL ) {\r
-        LOGPRINTF2("%d Free dto CNO %p \n",getpid(),h_dto_cno);\r
+        LOGPRINTF("%d Free dto CNO %p \n",getpid(),h_dto_cno);\r
         start = get_time();\r
         ret = dat_cno_free( h_dto_cno );\r
         stop = get_time();\r
@@ -1850,7 +1953,7 @@ destroy_events(void)
            return (ret);\r
        }\r
        else {\r
-           LOGPRINTF1("%d Freed dto CNO\n",getpid());\r
+           LOGPRINTF("%d Freed dto CNO\n",getpid());\r
             h_dto_cno = DAT_HANDLE_NULL;\r
        }\r
     }\r
@@ -1926,13 +2029,14 @@ void print_usage(void)
 {\r
     printf("\n DAPL USAGE \n\n");\r
     printf("s: server\n");\r
+    printf("t: performance times\n");\r
     printf("c: use cno\n");\r
     printf("v: verbose\n");\r
     printf("p: polling\n");\r
     printf("d: delay before accept\n");\r
     printf("b: buf length to allocate\n");\r
     printf("B: burst count, rdma and msgs \n");\r
-    printf("h: hostname\n");\r
+    printf("h: hostname/address of server, specified on client\n");\r
     printf("P: provider name (default = OpenIB-cma)\n");\r
     printf("\n");\r
 }\r
index a319339cf7b9eeecf3a56de04146b01fa6c7297d..492f3a8fb8421451818abdd291cf11fe162a6ea0 100644 (file)
@@ -6,12 +6,14 @@ TARGETNAME=dtestxd
 TARGETPATH=..\..\..\..\bin\user\obj$(BUILD_ALT_DIR)\r
 TARGETTYPE=PROGRAM\r
 UMTYPE=console\r
-USE_CRTDLL=1\r
+USE_MSVCRT=1\r
 \r
 SOURCES=dtestx.rc      \\r
                dtestx.c\r
 \r
-INCLUDES=.;..\..\dat\include;$(SDK_INC_PATH);\r
+INCLUDES=.;..\..\dat\include;\\r
+               ../../../../inc;..\..\..\..\inc\user;\\r
+               $(SDK_INC_PATH);\r
 \r
 RCOPTIONS=/I..\..\..\..\inc;\r
 \r
index 5fa26de64ef7cbc268e4268c20fb8aceb527ef45..94fe53a6cda8ac4e61d0794842f089caea468f42 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
- * Copyright (c) 2007 Intel Corporation.  All rights reserved.\r
+ * Copyright (c) 2007-2008 Intel Corporation.  All rights reserved.\r
  *\r
  * This software is available to you under a choice of one of two\r
  * licenses.  You may choose to be licensed under the terms of the GNU\r
 #include <ws2tcpip.h>\r
 #include <io.h>\r
 #include <process.h>\r
+#include <complib/cl_types.h>\r
+#define __BYTE_ORDER __LITTLE_ENDIAN\r
 \r
 #define getpid _getpid\r
-#define PRIx64 "%llx" \r
-#define DAPL_PROVIDER "ibnic0v2d"\r
+#define F64x "%I64x"\r
+#define DAPL_PROVIDER "ibnic0v2"\r
 #else\r
 #include <netdb.h>\r
 #include <sys/socket.h>\r
 #include <netinet/in.h>\r
 #include <netinet/tcp.h>\r
 #include <arpa/inet.h>\r
-#include <endian.h>\r
-#include <byteswap.h>\r
-#define DAPL_PROVIDER "OpenIB-cma"\r
+#include <inttypes.h>\r
+\r
+#define DAPL_PROVIDER "ofa-v2-ib0"\r
+#define F64x "%"PRIx64""\r
+\r
 #endif\r
 \r
 #include "dat/udat.h"\r
 int disconnect_ep(void);\r
 \r
 #define _OK(status, str) \\r
-{ \\r
-       const char  *maj_msg, *min_msg; \\r
-       if (status != DAT_SUCCESS) { \\r
-               dat_strerror(status, &maj_msg, &min_msg); \\r
-               fprintf(stderr, str " returned %s : %s\n", maj_msg, min_msg); \\r
-               exit(1); \\r
-       } \\r
+{\\r
+       const char  *maj_msg, *min_msg;\\r
+       if (status != DAT_SUCCESS) {\\r
+               dat_strerror(status, &maj_msg, &min_msg);\\r
+               fprintf(stderr, str " returned %s : %s\n", maj_msg, min_msg);\\r
+               exit(1);\\r
+       }\\r
 }\r
 \r
-#define _OK2(status, str) \\r
-{ \\r
-       const char  *maj_msg, *min_msg; \\r
-       if (status != DAT_SUCCESS) { \\r
-               dat_strerror(status, &maj_msg, &min_msg); \\r
-               fprintf(stderr, str " returned %s : %s\n", maj_msg, min_msg); \\r
-               exit(1); \\r
-       } \\r
+#define _OK2(status, str)\\r
+{\\r
+       const char  *maj_msg, *min_msg;\\r
+       if (status != DAT_SUCCESS) {\\r
+               dat_strerror(status, &maj_msg, &min_msg);\\r
+               fprintf(stderr, str " returned %s : %s\n", maj_msg, min_msg);\\r
+               exit(1);\\r
+       }\\r
 }\r
 \r
+/* byte swap helpers from Complib */\r
+#if __BYTE_ORDER == __LITTLE_ENDIAN\r
+#define ntoh16(x) (uint16_t)( \\r
+        (((uint16_t)(x) & 0x00FF) << 8) | \\r
+        (((uint16_t)(x) & 0xFF00) >> 8))\r
+#define hton16(x) ntoh16(x)\r
+#define ntoh32(x) (uint32_t)( \\r
+        (((uint32_t)(x) & 0x000000FF) << 24)| \\r
+        (((uint32_t)(x) & 0x0000FF00) << 8) | \\r
+        (((uint32_t)(x) & 0x00FF0000) >> 8) | \\r
+        (((uint32_t)(x) & 0xFF000000) >> 24))\r
+#define hton32(x) ntoh32(x)\r
+#define ntoh64(x) (uint64_t)( \\r
+        (((uint64_t)x & 0x00000000000000FF) << 56) | \\r
+        (((uint64_t)x & 0x000000000000FF00) << 40) | \\r
+        (((uint64_t)x & 0x0000000000FF0000) << 24) | \\r
+        (((uint64_t)x & 0x00000000FF000000) << 8 ) | \\r
+        (((uint64_t)x & 0x000000FF00000000) >> 8 ) | \\r
+        (((uint64_t)x & 0x0000FF0000000000) >> 24) | \\r
+        (((uint64_t)x & 0x00FF000000000000) >> 40) | \\r
+        (((uint64_t)x & 0xFF00000000000000) >> 56))\r
+#define hton64(x) ntoh64(x)\r
+#elif __BYTE_ORDER == __BIG_ENDIAN\r
+#define hton16(x) (x)\r
+#define ntoh16(x) (x)\r
+#define hton32(x) (x)\r
+#define ntoh32(x) (x)\r
+#define hton64(x) (x)\r
+#define ntoh64(x) (x)\r
+#endif  /* __BYTE_ORDER == __BIG_ENDIAN */\r
+\r
 #define DTO_TIMEOUT       (1000*1000*5)\r
 #define CONN_TIMEOUT      (1000*1000*10)\r
 #define SERVER_TIMEOUT    (1000*1000*120)\r
@@ -155,7 +190,8 @@ send_msg(
        _OK(status, "dat_ep_post_send");\r
 \r
        if (! (flags & DAT_COMPLETION_SUPPRESS_FLAG)) {\r
-               status = dat_evd_wait(dto_evd, DTO_TIMEOUT, 1, &event, &nmore);\r
+               status = dat_evd_wait(dto_evd, DTO_TIMEOUT, \r
+                                     1, &event, &nmore);\r
                _OK(status, "dat_evd_wait after dat_ep_post_send");\r
 \r
                if (event.event_number != DAT_DTO_COMPLETION_EVENT) {\r
@@ -178,9 +214,11 @@ connect_ep(char *hostname)
        DAT_EVENT               event;\r
        DAT_COUNT               nmore;\r
        DAT_LMR_TRIPLET         iov;\r
-       DAT_RMR_TRIPLET         r_iov;\r
+       DAT_RMR_TRIPLET         *r_iov;\r
        DAT_DTO_COOKIE          cookie;\r
        int                     i;\r
+        DAT_CR_ARRIVAL_EVENT_DATA *cr_event = \r
+               &event.event_data.cr_arrival_event_data;\r
        DAT_DTO_COMPLETION_EVENT_DATA *dto_event = \r
                &event.event_data.dto_completion_event_data;\r
 \r
@@ -217,7 +255,8 @@ connect_ep(char *hostname)
        ep_attr.ep_provider_specific_count  = 0;\r
        ep_attr.ep_provider_specific        = NULL;\r
 \r
-       status = dat_ep_create(ia, pz, dto_evd, dto_evd, con_evd, &ep_attr, &ep);\r
+       status = dat_ep_create(ia, pz, dto_evd, dto_evd, \r
+                              con_evd, &ep_attr, &ep);\r
        _OK(status, "dat_ep_create");\r
 \r
        for (i = 0; i < REG_MEM_COUNT; i++) {\r
@@ -228,7 +267,8 @@ connect_ep(char *hostname)
                                        region,\r
                                        BUF_SIZE,\r
                                        pz,\r
-                                       DAT_MEM_PRIV_ALL_FLAG|DAT_IB_MEM_PRIV_REMOTE_ATOMIC,\r
+                                       DAT_MEM_PRIV_ALL_FLAG|\r
+                                               DAT_IB_MEM_PRIV_REMOTE_ATOMIC,\r
                                        DAT_VA_TYPE_VA,\r
                                        &lmr[ i ],\r
                                        &lmr_context[ i ],\r
@@ -246,7 +286,8 @@ connect_ep(char *hostname)
                                region,\r
                                BUF_SIZE_ATOMIC,\r
                                pz,\r
-                               DAT_MEM_PRIV_ALL_FLAG|DAT_IB_MEM_PRIV_REMOTE_ATOMIC,\r
+                               DAT_MEM_PRIV_ALL_FLAG|\r
+                                       DAT_IB_MEM_PRIV_REMOTE_ATOMIC,\r
                                DAT_VA_TYPE_VA,\r
                                &lmr_atomic,\r
                                &lmr_atomic_context,\r
@@ -273,9 +314,7 @@ connect_ep(char *hostname)
        strcpy((char*)buf[ RCV_RDMA_BUF_INDEX ], "blah, blah, blah\n");\r
 \r
        if (server) {\r
-\r
-               strcpy((char*)buf[ SND_RDMA_BUF_INDEX ], "server written data");\r
-\r
+               strcpy((char*)buf[ SND_RDMA_BUF_INDEX ],"server written data");\r
                status = dat_psp_create(ia,\r
                                        SERVER_CONN_QUAL,\r
                                         cr_evd,\r
@@ -284,7 +323,8 @@ connect_ep(char *hostname)
                _OK(status, "dat_psp_create");\r
 \r
                printf("Server waiting for connect request\n");\r
-               status = dat_evd_wait(cr_evd, SERVER_TIMEOUT, 1, &event, &nmore);\r
+               status = dat_evd_wait(cr_evd, SERVER_TIMEOUT, \r
+                                     1, &event, &nmore);\r
                _OK(status, "listen dat_evd_wait");\r
 \r
                if (event.event_number != DAT_CONNECTION_REQUEST_EVENT) {\r
@@ -293,37 +333,30 @@ connect_ep(char *hostname)
                        exit(1);\r
                }\r
 \r
-               if ((event.event_data.cr_arrival_event_data.conn_qual != SERVER_CONN_QUAL) ||\r
-                    (event.event_data.cr_arrival_event_data.sp_handle.psp_handle != psp)) {\r
-\r
+               if ((cr_event->conn_qual != SERVER_CONN_QUAL) ||\r
+                       (cr_event->sp_handle.psp_handle != psp)) {\r
                        printf("wrong cr event data\n");\r
                        exit(1);\r
                }\r
 \r
-               cr = event.event_data.cr_arrival_event_data.cr_handle;\r
+               cr = cr_event->cr_handle;\r
                status = dat_cr_accept(cr, ep, 0, (DAT_PVOID)0);\r
 \r
        } else {\r
                struct addrinfo *target;\r
-               int                             rval;\r
 \r
                if (getaddrinfo (hostname, NULL, NULL, &target) != 0) {\r
                        printf("Error getting remote address.\n");\r
                        exit(1);\r
                }\r
 \r
-               rval = ((struct sockaddr_in *)target->ai_addr)->sin_addr.s_addr;\r
                printf ("Server Name: %s \n", hostname);\r
-               printf ("Server Net Address: %d.%d.%d.%d\n",\r
-                   (rval >>  0) & 0xff,\r
-                   (rval >>  8) & 0xff,\r
-                   (rval >> 16) & 0xff,\r
-                   (rval >> 24) & 0xff);\r
+               printf ("Server Net Address: %s\n", inet_ntoa(\r
+                       ((struct sockaddr_in *)target->ai_addr)->sin_addr));\r
 \r
                remote_addr = *((DAT_IA_ADDRESS_PTR)target->ai_addr);\r
-\r
-               strcpy((char*)buf[ SND_RDMA_BUF_INDEX ], "client written data");\r
-\r
+               freeaddrinfo(target);\r
+               strcpy((char*)buf[ SND_RDMA_BUF_INDEX ],"client written data");\r
                status = dat_ep_connect(ep,\r
                                         &remote_addr,\r
                                         SERVER_CONN_QUAL,\r
@@ -340,7 +373,8 @@ connect_ep(char *hostname)
                _OK(status, "connect dat_evd_wait");\r
 \r
        if (event.event_number != DAT_CONNECTION_EVENT_ESTABLISHED) {\r
-               printf("unexpected event after dat_ep_connect: 0x%x\n", event.event_number); \r
+               printf("unexpected event after dat_ep_connect: 0x%x\n", \r
+                       event.event_number); \r
                exit(1);\r
        }\r
 \r
@@ -348,19 +382,22 @@ connect_ep(char *hostname)
 \r
        /*\r
         *  Setup our remote memory and tell the other side about it\r
+         *  Swap to network order.\r
         */\r
-       printf("Sending RMR data to remote\n");\r
-       r_iov.rmr_context    = rmr_context[ RCV_RDMA_BUF_INDEX ];\r
-       r_iov.virtual_address = (DAT_VADDR) buf[ RCV_RDMA_BUF_INDEX ];\r
-       r_iov.segment_length = BUF_SIZE;\r
+        r_iov = (DAT_RMR_TRIPLET*)buf[SEND_BUF_INDEX];\r
+       r_iov->rmr_context = hton32(rmr_context[RCV_RDMA_BUF_INDEX]);\r
+       r_iov->virtual_address = hton64((DAT_VADDR)buf[RCV_RDMA_BUF_INDEX]);\r
+       r_iov->segment_length = hton32(BUF_SIZE);\r
 \r
-       *buf[ SEND_BUF_INDEX ] = r_iov;\r
+        printf("%d Send RMR msg to remote: r_key_ctx=0x%x,va=%p,len=0x%x\n",\r
+               getpid(), hton32(r_iov->rmr_context), \r
+               hton64(r_iov->virtual_address), hton32(r_iov->segment_length)); \r
 \r
-       send_msg(       buf[ SEND_BUF_INDEX ],\r
-                       sizeof(DAT_RMR_TRIPLET),\r
-                       lmr_context[ SEND_BUF_INDEX ],\r
-                       cookie,\r
-                       DAT_COMPLETION_SUPPRESS_FLAG);\r
+       send_msg(buf[SEND_BUF_INDEX],\r
+                sizeof(DAT_RMR_TRIPLET),\r
+                lmr_context[SEND_BUF_INDEX],\r
+                cookie,\r
+                DAT_COMPLETION_SUPPRESS_FLAG);\r
 \r
        /*\r
         *  Wait for their RMR\r
@@ -386,12 +423,17 @@ connect_ep(char *hostname)
                exit(1);\r
        }\r
 \r
-       r_iov = *buf[ RECV_BUF_INDEX ];\r
+       /* swap RMR,address info to host order */\r
+        r_iov = (DAT_RMR_TRIPLET*)buf[RECV_BUF_INDEX];\r
+       r_iov->rmr_context = ntoh32(r_iov->rmr_context);\r
+       r_iov->virtual_address = ntoh64(r_iov->virtual_address);\r
+       r_iov->segment_length = ntoh32(r_iov->segment_length);\r
 \r
-       printf("Received RMR from remote: r_iov: ctx=%x,va=%p,len=%d\n",\r
-               r_iov.rmr_context,\r
-               (void*)iov.virtual_address,\r
-               r_iov.segment_length);\r
+       printf("%d Received RMR from remote: "\r
+               "r_iov: r_key_ctx=%x,va="F64x",len=0x%x\n",\r
+               getpid(), r_iov->rmr_context,\r
+               r_iov->virtual_address,\r
+               r_iov->segment_length);\r
 \r
        return(0);\r
 }\r
@@ -473,25 +515,26 @@ do_immediate()
 \r
        cookie.as_64 = 0x5555;\r
        \r
-       r_iov = *buf[ RECV_BUF_INDEX ];\r
+        /* RMR info already swapped back to host order in connect_ep */\r
+       r_iov = *buf[RECV_BUF_INDEX];\r
 \r
-       iov.lmr_context     = lmr_context[ SND_RDMA_BUF_INDEX ];\r
-       iov.virtual_address = (DAT_VADDR) buf[ SND_RDMA_BUF_INDEX ];\r
+       iov.lmr_context     = lmr_context[SND_RDMA_BUF_INDEX];\r
+       iov.virtual_address = (DAT_VADDR) buf[SND_RDMA_BUF_INDEX];\r
        iov.segment_length  = BUF_SIZE;\r
 \r
        cookie.as_64 = 0x9999;\r
        \r
        status = dat_ib_post_rdma_write_immed(ep,               // ep_handle\r
-                                               1,              // num_segments\r
-                                               &iov,           // LMR\r
-                                               cookie,         // user_cookie\r
-                                               &r_iov,         // RMR\r
-                                               immed_data,\r
-                                               DAT_COMPLETION_DEFAULT_FLAG);\r
+                                             1,                // segments\r
+                                             &iov,             // LMR\r
+                                             cookie,           // user_cookie\r
+                                             &r_iov,           // RMR\r
+                                             immed_data,\r
+                                             DAT_COMPLETION_DEFAULT_FLAG);\r
        _OK(status, "dat_ib_post_rdma_write_immed");\r
 \r
        /*\r
-        *  Collect first event, write completion or the inbound recv with immed\r
+        *  Collect first event, write completion or inbound recv with immed\r
         */\r
        status = dat_evd_wait(dto_evd, DTO_TIMEOUT, 1, &event, &nmore);\r
        _OK(status, "dat_evd_wait after dat_ib_post_rdma_write");\r
@@ -541,7 +584,7 @@ do_immediate()
 \r
 \r
        /*\r
-        *  Collect second event, write completion or inbound recv with immed\r
+        * Collect second event, write completion or inbound recv with immed\r
         */\r
        status = dat_evd_wait(dto_evd, DTO_TIMEOUT, 1, &event, &nmore);\r
        _OK(status, "dat_evd_wait after dat_ib_post_rdma_write");\r
@@ -590,21 +633,21 @@ do_immediate()
                \r
        if ((server) && (immed_data_recv != 0x7777))\r
        {\r
-               printf("ERROR: Server: unexpected immed_data_recv 0x%x/0x%x\n", \r
+               printf("ERROR: Server: unexpected imm_data_recv 0x%x/0x%x\n", \r
                        0x7777,  immed_data_recv);\r
                exit(1);\r
        } \r
        else if ((!server) && (immed_data_recv != 0x1111))\r
        {\r
-               printf("ERROR: Client: unexpected immed_data_recv 0x%x/0x%x\n", \r
+               printf("ERROR: Client: unexpected imm_data_recv 0x%x/0x%x\n", \r
                        0x1111,  immed_data_recv);\r
                exit(1);\r
        }\r
 \r
        if (server)\r
-               printf("Server received immed_data=0x%x\n", immed_data_recv);\r
+               printf("Server received immed_data=0x%x\n",immed_data_recv);\r
        else\r
-               printf("Client received immed_data=0x%x\n", immed_data_recv);\r
+               printf("Client received immed_data=0x%x\n",immed_data_recv);\r
        \r
        printf("rdma buffer %p contains: %s\n", \r
                buf[ RCV_RDMA_BUF_INDEX ], buf[ RCV_RDMA_BUF_INDEX ]);\r
@@ -622,7 +665,7 @@ do_cmp_swap()
        DAT_COUNT               nmore;\r
        DAT_LMR_TRIPLET         l_iov;\r
        DAT_RMR_TRIPLET         r_iov;\r
-       volatile DAT_UINT64     *target = (DAT_UINT64*)buf[ RCV_RDMA_BUF_INDEX ];\r
+       volatile DAT_UINT64     *target = (DAT_UINT64*)buf[RCV_RDMA_BUF_INDEX];\r
        DAT_DTO_COMPLETION_EVENT_DATA *dto_event = \r
                &event.event_data.dto_completion_event_data;\r
        DAT_IB_EXTENSION_EVENT_DATA *ext_event = \r
@@ -630,6 +673,7 @@ do_cmp_swap()
 \r
        printf("\nDoing CMP and SWAP\n");\r
         \r
+        /* RMR info already swapped back to host order in connect_ep */\r
        r_iov = *buf[ RECV_BUF_INDEX ];\r
        \r
        l_iov.lmr_context     = lmr_atomic_context;\r
@@ -643,26 +687,28 @@ do_cmp_swap()
                sleep(1);\r
                /* server does not compare and should not swap */\r
                printf("dtx svr - starting cmp_swap\n");\r
-               status = dat_ib_post_cmp_and_swap(      ep, \r
-                                                       (DAT_UINT64)0x654321, \r
-                                                       (DAT_UINT64)0x6789A, \r
-                                                       &l_iov,\r
-                                                       cookie, \r
-                                                       &r_iov, \r
-                                                       DAT_COMPLETION_DEFAULT_FLAG);\r
+               status = dat_ib_post_cmp_and_swap(\r
+                                               ep, \r
+                                               (DAT_UINT64)0x654321, \r
+                                               (DAT_UINT64)0x6789A, \r
+                                               &l_iov,\r
+                                               cookie, \r
+                                               &r_iov, \r
+                                               DAT_COMPLETION_DEFAULT_FLAG);\r
                printf("dtx svr - done cmp_swap, chk status\n");\r
        } else {\r
                *target = 0x54321;\r
                sleep(1); \r
                printf("dtx cli - starting cmp_swap\n");\r
                /* client does compare and should swap */\r
-               status = dat_ib_post_cmp_and_swap(      ep, \r
-                                                       (DAT_UINT64)0x12345, \r
-                                                       (DAT_UINT64)0x98765,\r
-                                                       &l_iov,\r
-                                                       cookie, \r
-                                                       &r_iov, \r
-                                                       DAT_COMPLETION_DEFAULT_FLAG);\r
+               status = dat_ib_post_cmp_and_swap(\r
+                                               ep, \r
+                                               (DAT_UINT64)0x12345, \r
+                                               (DAT_UINT64)0x98765,\r
+                                               &l_iov,\r
+                                               cookie, \r
+                                               &r_iov, \r
+                                               DAT_COMPLETION_DEFAULT_FLAG);\r
                printf("dtx cli - done cmp_swap, chk status\n");\r
        }\r
        _OK(status, "dat_ib_post_cmp_and_swap");\r
@@ -676,8 +722,8 @@ do_cmp_swap()
 \r
        _OK(dto_event->status, "event status for CMP and SWAP");\r
        if (ext_event->type != DAT_IB_CMP_AND_SWAP) {\r
-           printf("unexpected event data of cmp and swap : type=%d cookie=%d "\r
-               "original 0x%llx\n",\r
+           printf("unexpected event data of cmp_swap: type=%d cookie=%d "\r
+               "original "F64x"\n",\r
                (int)ext_event->type,\r
                (int)dto_event->user_cookie.as_64,\r
                *atomic_buf);\r
@@ -687,9 +733,9 @@ do_cmp_swap()
        sleep(2); /* wait for other side to complete swap */\r
 \r
        if (server) {\r
-           printf("Server got original data        = 0x%llx, expected "\r
+           printf("Server got original data        = "F64x", expected "\r
                        "0x54321\n", *atomic_buf);\r
-           printf("Client final result (on server) = 0x%llx, expected "\r
+           printf("Client final result (on server) = "F64x", expected "\r
                        "0x98765\n", *target);\r
 \r
            if (*atomic_buf != 0x54321 || *target != 0x98765) {\r
@@ -697,9 +743,9 @@ do_cmp_swap()
                exit(1);\r
            }\r
        } else {\r
-           printf("Client got original data        = 0x%llx, expected "\r
+           printf("Client got original data        = "F64x", expected "\r
                        "0x12345\n",*atomic_buf);\r
-           printf("Server final result (on client) = 0x%llx, expected "\r
+           printf("Server final result (on client) = 0x"F64x", expected "\r
                        "0x54321\n", *target);\r
 \r
            if (*atomic_buf != 0x12345 || *target != 0x54321) {\r
@@ -720,7 +766,7 @@ do_fetch_add()
        DAT_COUNT               nmore;\r
        DAT_LMR_TRIPLET         l_iov;\r
        DAT_RMR_TRIPLET         r_iov;\r
-       volatile DAT_UINT64     *target = (DAT_UINT64*)buf[ RCV_RDMA_BUF_INDEX ];\r
+       volatile DAT_UINT64     *target = (DAT_UINT64*)buf[RCV_RDMA_BUF_INDEX];\r
        DAT_DTO_COMPLETION_EVENT_DATA *dto_event = \r
                &event.event_data.dto_completion_event_data;\r
        DAT_IB_EXTENSION_EVENT_DATA *ext_event = \r
@@ -728,6 +774,7 @@ do_fetch_add()
 \r
        printf("\nDoing FETCH and ADD\n");\r
 \r
+        /* RMR info already swapped back to host order in connect_ep */\r
        r_iov = *buf[ RECV_BUF_INDEX ];\r
        \r
        l_iov.lmr_context     = lmr_atomic_context;\r
@@ -741,22 +788,24 @@ do_fetch_add()
                        sleep(1);\r
                *target = 0x10;\r
                sleep(1);\r
-               status = dat_ib_post_fetch_and_add(     ep, \r
-                                                       (DAT_UINT64)0x100,\r
-                                                       &l_iov,\r
-                                                       cookie, \r
-                                                       &r_iov, \r
-                                                       DAT_COMPLETION_DEFAULT_FLAG);\r
+               status = dat_ib_post_fetch_and_add(\r
+                                               ep, \r
+                                               (DAT_UINT64)0x100,\r
+                                               &l_iov,\r
+                                               cookie, \r
+                                               &r_iov, \r
+                                               DAT_COMPLETION_DEFAULT_FLAG);\r
        } else {\r
                /* Wait for server, no swap so nothing to check */\r
                *target = 0x100;\r
                sleep(1);\r
-               status = dat_ib_post_fetch_and_add(     ep, \r
-                                                       (DAT_UINT64)0x10, \r
-                                                       &l_iov,\r
-                                                       cookie, \r
-                                                       &r_iov, \r
-                                                       DAT_COMPLETION_DEFAULT_FLAG);\r
+               status = dat_ib_post_fetch_and_add(\r
+                                               ep, \r
+                                               (DAT_UINT64)0x10, \r
+                                               &l_iov,\r
+                                               cookie, \r
+                                               &r_iov, \r
+                                               DAT_COMPLETION_DEFAULT_FLAG);\r
        }\r
        _OK(status, "dat_ib_post_fetch_and_add");\r
        status = dat_evd_wait(dto_evd, DTO_TIMEOUT, 1, &event, &nmore);\r
@@ -778,29 +827,31 @@ do_fetch_add()
        }\r
 \r
        if (server) {\r
-           printf("Client original data (on server) = 0x%llx, expected "\r
+           printf("Client original data (on server) = "F64x", expected "\r
                        "0x100\n", *atomic_buf);\r
        } else {\r
-           printf("Server original data (on client) = 0x%llx, expected "\r
+           printf("Server original data (on client) = "F64x", expected "\r
                        "0x10\n", *atomic_buf);\r
        }\r
 \r
        sleep(1);       \r
 \r
        if (server) {\r
-               status = dat_ib_post_fetch_and_add(ep, \r
-                                                  (DAT_UINT64)0x100, \r
-                                                  &l_iov,\r
-                                                  cookie, \r
-                                                  &r_iov, \r
-                                                  DAT_COMPLETION_DEFAULT_FLAG);\r
+               status = dat_ib_post_fetch_and_add(\r
+                                               ep, \r
+                                               (DAT_UINT64)0x100, \r
+                                               &l_iov,\r
+                                               cookie, \r
+                                               &r_iov, \r
+                                               DAT_COMPLETION_DEFAULT_FLAG);\r
        } else {\r
-               status = dat_ib_post_fetch_and_add(ep, \r
-                                                  (DAT_UINT64)0x10,\r
-                                                  &l_iov,\r
-                                                  cookie, \r
-                                                  &r_iov, \r
-                                                  DAT_COMPLETION_DEFAULT_FLAG);\r
+               status = dat_ib_post_fetch_and_add(\r
+                                               ep, \r
+                                               (DAT_UINT64)0x10,\r
+                                               &l_iov,\r
+                                               cookie, \r
+                                               &r_iov, \r
+                                                DAT_COMPLETION_DEFAULT_FLAG);\r
        }\r
 \r
        status = dat_evd_wait(dto_evd, DTO_TIMEOUT, 1, &event, &nmore);\r
@@ -824,9 +875,9 @@ do_fetch_add()
        sleep(1); /* wait for other side to complete fetch_add */\r
 \r
        if (server) {\r
-           printf("Server got original data         = 0x%llx, expected "\r
+           printf("Server got original data         = "F64x", expected "\r
                        "0x200\n", *atomic_buf);\r
-           printf("Client final result (on server)  = 0x%llx, expected "\r
+           printf("Client final result (on server)  = "F64x", expected "\r
                        "0x30\n", *target);\r
 \r
            if (*atomic_buf != 0x200 || *target != 0x30) {\r
@@ -834,9 +885,9 @@ do_fetch_add()
                exit(1);\r
            }\r
        } else {\r
-           printf("Server side original data        = 0x%llx, expected "\r
+           printf("Server side original data        = "F64x", expected "\r
                        "0x20\n", *atomic_buf);\r
-           printf("Server final result (on client)  = 0x%llx, expected "\r
+           printf("Server final result (on client)  = "F64x", expected "\r
                        "0x300\n", *target);\r
 \r
            if (*atomic_buf != 0x20 || *target != 0x300) {\r
@@ -874,7 +925,7 @@ main(int argc, char **argv)
 \r
                i = WSAStartup ( MAKEWORD(2,2), &wsaData );\r
                if ( i != 0 ) {\r
-                       printf("%s WSAStartup(2.2) failed? (0x%x)\n",argv[0],i);\r
+                       printf("%s WSAStartup(2.2) fail? (0x%x)\n",argv[0],i);\r
                        fflush(stdout);\r
                        exit(1);\r
                }\r