[Pkg-ofed-commits] [dapl] 01/06: New upstream version 2.1.9

Ana Beatriz Guerrero López ana at moszumanska.debian.org
Sun Oct 30 11:17:06 UTC 2016


This is an automated email from the git hooks/post-receive script.

ana pushed a commit to branch master
in repository dapl.

commit dffe7a26916212b89217cd61f74de2b4e8eb374f
Author: Ana Beatriz Guerrero Lopez <ana at debian.org>
Date:   Sun Oct 30 11:40:05 2016 +0100

    New upstream version 2.1.9
---
 AUTHORS                                          |   0
 COPYING                                          |   0
 ChangeLog                                        | 203 ++++++++++++++++
 INSTALL                                          |   0
 LICENSE.txt                                      |   0
 LICENSE2.txt                                     |   0
 LICENSE3.txt                                     |   0
 NEWS                                             |   0
 README                                           |   0
 README.mcm                                       |   0
 config.h.in                                      |   0
 config/ltmain.sh                                 |   0
 configure                                        |  20 +-
 configure.in                                     |   4 +-
 dapl.spec                                        |  16 +-
 dapl.spec.in                                     |  14 +-
 dapl/common/dapl_cno_util.c                      |   4 -
 dapl/common/dapl_cookie.c                        |   0
 dapl/common/dapl_cookie.h                        |   0
 dapl/common/dapl_cr_accept.c                     |   0
 dapl/common/dapl_cr_callback.c                   |   0
 dapl/common/dapl_cr_handoff.c                    |   0
 dapl/common/dapl_cr_query.c                      |   0
 dapl/common/dapl_cr_util.c                       |   0
 dapl/common/dapl_cr_util.h                       |   0
 dapl/common/dapl_debug.c                         |   0
 dapl/common/dapl_ep_create.c                     |   0
 dapl/common/dapl_ep_create_with_srq.c            |   0
 dapl/common/dapl_ep_disconnect.c                 |   0
 dapl/common/dapl_ep_dup_connect.c                |   0
 dapl/common/dapl_ep_free.c                       |   0
 dapl/common/dapl_ep_get_status.c                 |   0
 dapl/common/dapl_ep_modify.c                     |   0
 dapl/common/dapl_ep_post_rdma_read.c             |   0
 dapl/common/dapl_ep_post_rdma_write.c            |   0
 dapl/common/dapl_ep_post_recv.c                  |   0
 dapl/common/dapl_ep_post_send.c                  |   0
 dapl/common/dapl_ep_query.c                      |   0
 dapl/common/dapl_ep_recv_query.c                 |   0
 dapl/common/dapl_ep_reset.c                      |   0
 dapl/common/dapl_ep_set_watermark.c              |   0
 dapl/common/dapl_ep_util.c                       |   0
 dapl/common/dapl_ep_util.h                       |   0
 dapl/common/dapl_evd_connection_callb.c          |   0
 dapl/common/dapl_evd_cq_async_error_callb.c      |   0
 dapl/common/dapl_evd_dequeue.c                   |   0
 dapl/common/dapl_evd_post_se.c                   |   0
 dapl/common/dapl_evd_qp_async_error_callb.c      |   0
 dapl/common/dapl_evd_resize.c                    |   0
 dapl/common/dapl_evd_un_async_error_callb.c      |   0
 dapl/common/dapl_evd_util.c                      |   0
 dapl/common/dapl_evd_util.h                      |   0
 dapl/common/dapl_get_consumer_context.c          |   0
 dapl/common/dapl_get_handle_type.c               |   0
 dapl/common/dapl_hash.c                          |   2 +-
 dapl/common/dapl_hash.h                          |   0
 dapl/common/dapl_hca_util.c                      |   0
 dapl/common/dapl_hca_util.h                      |   0
 dapl/common/dapl_ia_close.c                      |   0
 dapl/common/dapl_ia_open.c                       |   0
 dapl/common/dapl_ia_util.h                       |   0
 dapl/common/dapl_init.h                          |   0
 dapl/common/dapl_llist.c                         |   0
 dapl/common/dapl_lmr_free.c                      |   0
 dapl/common/dapl_lmr_query.c                     |   0
 dapl/common/dapl_lmr_sync_rdma_read.c            |   0
 dapl/common/dapl_lmr_sync_rdma_write.c           |   0
 dapl/common/dapl_lmr_util.c                      |   0
 dapl/common/dapl_lmr_util.h                      |   0
 dapl/common/dapl_mr_util.c                       |   0
 dapl/common/dapl_mr_util.h                       |   0
 dapl/common/dapl_name_service.c                  |   0
 dapl/common/dapl_name_service.h                  |   0
 dapl/common/dapl_provider.h                      |   0
 dapl/common/dapl_psp_create.c                    |   0
 dapl/common/dapl_psp_create_any.c                |   0
 dapl/common/dapl_psp_free.c                      |   0
 dapl/common/dapl_psp_query.c                     |   0
 dapl/common/dapl_pz_create.c                     |   0
 dapl/common/dapl_pz_free.c                       |   0
 dapl/common/dapl_pz_query.c                      |   0
 dapl/common/dapl_pz_util.c                       |   0
 dapl/common/dapl_pz_util.h                       |   0
 dapl/common/dapl_ring_buffer_util.c              |   0
 dapl/common/dapl_ring_buffer_util.h              |   0
 dapl/common/dapl_rmr_free.c                      |   4 +-
 dapl/common/dapl_rmr_query.c                     |   0
 dapl/common/dapl_rmr_util.c                      |   0
 dapl/common/dapl_rmr_util.h                      |   0
 dapl/common/dapl_rsp_create.c                    |   0
 dapl/common/dapl_rsp_free.c                      |   0
 dapl/common/dapl_rsp_query.c                     |   0
 dapl/common/dapl_set_consumer_context.c          |   0
 dapl/common/dapl_sp_util.c                       |   0
 dapl/common/dapl_sp_util.h                       |   0
 dapl/common/dapl_srq_create.c                    |   0
 dapl/common/dapl_srq_free.c                      |   0
 dapl/common/dapl_srq_post_recv.c                 |   0
 dapl/common/dapl_srq_query.c                     |   0
 dapl/common/dapl_srq_resize.c                    |   0
 dapl/common/dapl_srq_set_lw.c                    |   3 -
 dapl/common/dapl_srq_util.c                      |   0
 dapl/common/dapl_srq_util.h                      |   0
 dapl/common/dapl_timer_util.c                    |   0
 dapl/common/dapl_timer_util.h                    |   0
 dapl/include/dapl_debug.h                        |   0
 dapl/include/dapl_ipoib_names.h                  |   0
 dapl/include/dapl_vendor.h                       |   0
 dapl/openib_cma/cm.c                             |   0
 dapl/openib_cma/dapl_ib_util.h                   |   1 +
 dapl/openib_cma/device.c                         |   0
 dapl/openib_cma/linux/openib_osd.h               |   0
 dapl/openib_common/collectives/fca_provider.c    |   0
 dapl/openib_common/collectives/fca_provider.h    |   0
 dapl/openib_common/collectives/ib_collectives.h  |   0
 dapl/openib_common/cq.c                          |   0
 dapl/openib_common/dapl_ib_common.h              |   7 +-
 dapl/openib_common/dapl_ib_dto.h                 |   0
 dapl/openib_common/ib_extensions.c               |   5 +-
 dapl/openib_common/mem.c                         |   0
 dapl/openib_common/qp.c                          |   0
 dapl/openib_common/srq.c                         |   0
 dapl/openib_common/util.c                        |  72 ++++--
 dapl/openib_mcm/cm.c                             |   0
 dapl/openib_mcm/dapl_ib_util.h                   |   1 +
 dapl/openib_mcm/device.c                         |  10 +
 dapl/openib_mcm/linux/openib_osd.h               |   0
 dapl/openib_mcm/mix.c                            |   9 +-
 dapl/openib_mcm/proxy.c                          |  20 +-
 dapl/openib_scm/cm.c                             |  55 +++--
 dapl/openib_scm/dapl_ib_util.h                   |   1 +
 dapl/openib_scm/device.c                         |   0
 dapl/openib_scm/linux/openib_osd.h               |   0
 dapl/openib_ucm/cm.c                             |  18 +-
 dapl/openib_ucm/dapl_ib_util.h                   |   1 +
 dapl/openib_ucm/device.c                         |   4 +-
 dapl/openib_ucm/linux/openib_osd.h               |   0
 dapl/svc/mcm.c                                   |  28 +--
 dapl/svc/mix.c                                   |  12 +-
 dapl/svc/mpxy_in.c                               |  14 +-
 dapl/svc/mpxy_out.c                              |   7 +-
 dapl/svc/mpxyd.c                                 |  24 +-
 dapl/svc/mpxyd.h                                 |   3 +-
 dapl/svc/util.c                                  |   0
 dapl/udapl/dapl_cno_create.c                     |   0
 dapl/udapl/dapl_cno_free.c                       |   0
 dapl/udapl/dapl_cno_modify_agent.c               |   0
 dapl/udapl/dapl_cno_query.c                      |   0
 dapl/udapl/dapl_cno_wait.c                       |   0
 dapl/udapl/dapl_evd_clear_unwaitable.c           |   0
 dapl/udapl/dapl_evd_create.c                     |   0
 dapl/udapl/dapl_evd_disable.c                    |   0
 dapl/udapl/dapl_evd_enable.c                     |   0
 dapl/udapl/dapl_evd_modify_cno.c                 |   0
 dapl/udapl/dapl_evd_query.c                      |   0
 dapl/udapl/dapl_evd_set_unwaitable.c             |   0
 dapl/udapl/dapl_evd_wait.c                       |   0
 dapl/udapl/dapl_init.c                           |   0
 dapl/udapl/dapl_lmr_create.c                     |   0
 dapl/udapl/libdaplomcm.map                       |   0
 dapl/udapl/linux/dapl_osd.c                      |   0
 dapl/udapl/linux/dapl_osd.h                      |   0
 dat/common/dat_dictionary.c                      |   0
 dat/common/dat_dictionary.h                      |   0
 dat/common/dat_dr.c                              |   0
 dat/common/dat_dr.h                              |   0
 dat/common/dat_init.c                            |   0
 dat/common/dat_init.h                            |   0
 dat/common/dat_sr.h                              |   0
 dat/common/dat_strerror.c                        |   0
 dat/include/dat2/dat_error.h                     |   0
 dat/include/dat2/dat_platform_specific.h         |   0
 dat/include/dat2/dat_registry.h                  |   0
 dat/include/dat2/dat_vendor_specific.h           |   0
 dat/include/dat2/udat_config.h                   |   0
 dat/include/dat2/udat_vendor_specific.h          |   0
 dat/udat/linux/dat_osd.c                         |   0
 dat/udat/linux/dat_osd.h                         |   0
 dat/udat/udat_api.c                              |   0
 dat/udat/udat_sr_parser.c                        |   0
 dat/udat/udat_sr_parser.h                        |   0
 doc/dat.conf                                     |   0
 doc/mpxyd.conf                                   |   0
 m4/libtool.m4                                    |   0
 m4/ltoptions.m4                                  |   0
 m4/ltsugar.m4                                    |   0
 m4/ltversion.m4                                  |   0
 m4/lt~obsolete.m4                                |   0
 man/dapltest.1                                   |   0
 man/dat.conf.5                                   |   0
 mpxyd.init.in                                    |   0
 test/dapltest/README                             |   0
 test/dapltest/cmd/dapl_fft_cmd.c                 |   0
 test/dapltest/cmd/dapl_getopt.c                  |   0
 test/dapltest/cmd/dapl_limit_cmd.c               |   0
 test/dapltest/cmd/dapl_main.c                    |   0
 test/dapltest/cmd/dapl_netaddr.c                 |   0
 test/dapltest/cmd/dapl_params.c                  |   0
 test/dapltest/cmd/dapl_performance_cmd.c         |   2 +-
 test/dapltest/cmd/dapl_qos_util.c                |   0
 test/dapltest/cmd/dapl_quit_cmd.c                |   2 +-
 test/dapltest/cmd/dapl_server_cmd.c              |   2 +-
 test/dapltest/cmd/dapl_transaction_cmd.c         |   2 +-
 test/dapltest/common/dapl_endian.c               |   0
 test/dapltest/common/dapl_global.c               |   0
 test/dapltest/common/dapl_performance_cmd_util.c |   0
 test/dapltest/common/dapl_quit_cmd_util.c        |   0
 test/dapltest/common/dapl_transaction_cmd_util.c |   0
 test/dapltest/include/dapl_bpool.h               |   0
 test/dapltest/include/dapl_client_info.h         |   0
 test/dapltest/include/dapl_common.h              |   0
 test/dapltest/include/dapl_execute.h             |   0
 test/dapltest/include/dapl_fft_cmd.h             |   0
 test/dapltest/include/dapl_fft_util.h            |   2 -
 test/dapltest/include/dapl_getopt.h              |   0
 test/dapltest/include/dapl_global.h              |   0
 test/dapltest/include/dapl_limit_cmd.h           |   0
 test/dapltest/include/dapl_mdep.h                |   0
 test/dapltest/include/dapl_memlist.h             |   0
 test/dapltest/include/dapl_params.h              |   0
 test/dapltest/include/dapl_performance_cmd.h     |   0
 test/dapltest/include/dapl_performance_stats.h   |   0
 test/dapltest/include/dapl_performance_test.h    |   0
 test/dapltest/include/dapl_proto.h               |   4 +
 test/dapltest/include/dapl_quit_cmd.h            |   0
 test/dapltest/include/dapl_server_cmd.h          |   0
 test/dapltest/include/dapl_server_info.h         |   0
 test/dapltest/include/dapl_tdep.h                |   0
 test/dapltest/include/dapl_tdep_print.h          |   0
 test/dapltest/include/dapl_test_data.h           |   0
 test/dapltest/include/dapl_transaction_cmd.h     |   0
 test/dapltest/include/dapl_transaction_stats.h   |   0
 test/dapltest/include/dapl_transaction_test.h    |   0
 test/dapltest/include/dapl_version.h             |   0
 test/dapltest/mdep/linux/dapl_mdep_user.c        |   2 -
 test/dapltest/mdep/linux/dapl_mdep_user.h        |   2 +-
 test/dapltest/test/dapl_bpool.c                  |   9 -
 test/dapltest/test/dapl_client.c                 |   0
 test/dapltest/test/dapl_client_info.c            |   0
 test/dapltest/test/dapl_cnxn.c                   |   0
 test/dapltest/test/dapl_execute.c                |   0
 test/dapltest/test/dapl_fft_connmgt.c            |   0
 test/dapltest/test/dapl_fft_endpoint.c           |   0
 test/dapltest/test/dapl_fft_hwconn.c             |   0
 test/dapltest/test/dapl_fft_mem.c                |   6 -
 test/dapltest/test/dapl_fft_pz.c                 |   2 -
 test/dapltest/test/dapl_fft_queryinfo.c          |   0
 test/dapltest/test/dapl_fft_test.c               |   0
 test/dapltest/test/dapl_fft_util.c               |   4 -
 test/dapltest/test/dapl_limit.c                  |   0
 test/dapltest/test/dapl_memlist.c                |   0
 test/dapltest/test/dapl_performance_client.c     |   4 -
 test/dapltest/test/dapl_performance_server.c     |   0
 test/dapltest/test/dapl_performance_stats.c      |   0
 test/dapltest/test/dapl_performance_util.c       |   0
 test/dapltest/test/dapl_quit_util.c              |   0
 test/dapltest/test/dapl_server.c                 |   0
 test/dapltest/test/dapl_server_info.c            |   0
 test/dapltest/test/dapl_test_data.c              |   0
 test/dapltest/test/dapl_test_util.c              |   9 +-
 test/dapltest/test/dapl_thread.c                 |   0
 test/dapltest/test/dapl_transaction_stats.c      |   0
 test/dapltest/test/dapl_transaction_test.c       |   0
 test/dapltest/test/dapl_transaction_util.c       |   0
 test/dapltest/test/dapl_util.c                   |   0
 test/dapltest/udapl/udapl_tdep.c                 |   0
 test/dtest/README                                |   0
 test/dtest/dtest.c                               |  85 +++----
 test/dtest/dtestcm.c                             | 284 +++++++++++++++++++----
 test/dtest/dtestsrq.c                            |  69 +++---
 test/dtest/dtestx.c                              | 129 +++++-----
 271 files changed, 819 insertions(+), 362 deletions(-)

diff --git a/AUTHORS b/AUTHORS
old mode 100755
new mode 100644
diff --git a/COPYING b/COPYING
old mode 100755
new mode 100644
diff --git a/ChangeLog b/ChangeLog
old mode 100755
new mode 100644
index f59ee56..dc4b688
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,206 @@
+commit 919ca0478d384a501d797cc37ea7ca72d59ac879
+Author: Amir Hanania <amir.hanania at intel.com>
+Date:   Tue May 3 17:43:44 2016 -0700
+
+    In case of MCM get the GID from the tp struct which was initialized in open device.
+    
+    Signed-off-by: Amir Hanania <amir.hanania at intel.com>
+
+commit 1a68be05b3de9f29cb95affe3af5455ea9c76549
+Author: Amir Hanania <amir.hanania at intel.com>
+Date:   Tue May 3 17:43:25 2016 -0700
+
+    ib_hca_handle in MFO mode is N/A and access it caused a seg fault.
+    Set MFO mode as not iwarp device.
+    
+    Signed-off-by: Amir Hanania <amir.hanania at intel.com>
+
+commit 847ee67e59abd93aa6f4b216af00c99d8d9765ec
+Author: Arlin Davis <arlin.r.davis at intel.com>
+Date:   Mon May 2 15:13:27 2016 -0700
+
+    mpxyd: modify_qp uses wrong md->dev_attr with MTU changes
+    
+    Signed-off-by: Arlin Davis <arlin.r.davis at intel.com>
+
+commit 9e5429b6c6c55ea787c2bdb76b2d53afb3f6712b
+Author: Arlin Davis <arlin.r.davis at intel.com>
+Date:   Fri Apr 29 09:30:46 2016 -0700
+
+    rpmbuild: fix specfile, don't overwrite build options
+    
+    Signed-off-by: Arlin Davis <arlin.r.davis at intel.com>
+
+commit 2d08dc4b69822b678a875a80f7cbfa770b52bd99
+Author: Arlin Davis <arlin.r.davis at intel.com>
+Date:   Fri Apr 29 09:22:01 2016 -0700
+
+    openib: new provider specific attribute - port GID
+    
+    The IB GID is returned with IA query, provider specific
+    option for scm, ucm, cma, and mcm openib providers.
+    Includes subnet prefix and interface ID.
+    
+    DAT_IB_GID = fe80:0000:0000:0000:0002:c903:0032:2f31
+    
+    dtest -v can be used for testing example.
+    
+    Signed-off-by: Arlin Davis <arlin.r.davis at intel.com>
+
+commit 92d1bc4bf3089595012c11fa42d3da124490b4a0
+Author: Arlin Davis <arlin.r.davis at intel.com>
+Date:   Thu Apr 14 18:46:12 2016 -0700
+
+    Release 2.1.9
+    
+    Signed-off-by: Arlin Davis <arlin.r.davis at intel.com>
+
+commit 6b48f0e17bd062f5bcfb1cc1ba6197e03987651b
+Author: Arlin Davis <arlin.r.davis at intel.com>
+Date:   Tue Apr 12 13:58:34 2016 -0700
+
+    dtestcm: exchange provider IA address info via sockets
+    
+    Signed-off-by: Arlin Davis <arlin.r.davis at intel.com>
+
+commit 58e06a8e78e5b9ef94f3e0a507ed37e35c4af87c
+Author: Arlin Davis <arlin.r.davis at intel.com>
+Date:   Tue Apr 12 13:56:02 2016 -0700
+
+    ucm: increase default REQ/RTU timers on scaling threshold
+    
+    Signed-off-by: Arlin Davis <arlin.r.davis at intel.com>
+
+commit 12f3d778acdf0e984af839221636beb04a5be7b0
+Author: Arlin Davis <arlin.r.davis at intel.com>
+Date:   Wed Apr 6 15:41:44 2016 -0700
+
+    mpxyd: m_req_event assert during large io streams, HST to MIC
+    
+    When proxy-in (PI) WR queue is full and client is blocked on
+    new WR entries, the WR completion processing can
+    incorrectly reference a PI WR field after the client is
+    given remote access.
+    
+    m_qp = (struct mcm_qp *)m_wr_rx->context;
+    assert(m_qp);
+    
+    After data is forwarded to the appropriate MIC, the proxy
+    service will send a RW_imm WC message. This releases
+    the m_wr_rx entry for re-use by remote mcm provider client.
+    At the same time, the proxy can be processing the RW_imm
+    completion and incorrectly use the wr_rx->context field for
+    m_qp reference. Change the proxy_in event processing code
+    to avoid dependencies on any wr_rx content.
+    
+    Signed-off-by: Arlin Davis <arlin.r.davis at intel.com>
+
+commit 79b885fac295f6dbe9d2dc772b87755ba5b90734
+Author: Arlin Davis <arlin.r.davis at intel.com>
+Date:   Wed Apr 6 14:02:59 2016 -0700
+
+    mcm: HST->MXS IO streams can overrun MPXYD proxy-in WR queue
+    
+    MPXYD proxy-in service cannot consume HST->MIC WR's fast
+    enough on 100Gb/s fabrics and from server based clients. This
+    results in post_send failing with DAT_INSUFFICIENT_RESOURCES.
+    Add retry mechanism, with limited retries, for the
+    host side mcm provider via dat_ep_post_send.
+    
+    Signed-off-by: Arlin Davis <arlin.r.davis at intel.com>
+
+commit ae7fad33d42ca92d709a041a1234dd98756668b9
+Author: Arlin Davis <arlin.r.davis at intel.com>
+Date:   Tue Apr 5 14:04:12 2016 -0700
+
+    mpxyd: cleanup warnings in MIC proxy code
+    
+    Signed-off-by: Arlin Davis <arlin.r.davis at intel.com>
+
+commit cc927cd244d940d25de8f9e176c7dfdda6b91189
+Author: Arlin Davis <arlin.r.davis at intel.com>
+Date:   Tue Apr 5 14:03:41 2016 -0700
+
+    openib: cleanup warnings in openib providers
+    
+    Signed-off-by: Arlin Davis <arlin.r.davis at intel.com>
+
+commit 0b553b6bccde2c6635d169064bc6b6a8355ddef9
+Author: Arlin Davis <arlin.r.davis at intel.com>
+Date:   Tue Apr 5 14:02:27 2016 -0700
+
+    common: cleanup warnings in common code base
+    
+    Signed-off-by: Arlin Davis <arlin.r.davis at intel.com>
+
+commit b361e2abfcb09b57a1cff57b2a1eb919e00149db
+Author: Arlin Davis <arlin.r.davis at intel.com>
+Date:   Tue Apr 5 14:00:33 2016 -0700
+
+    dapltest: cleanup warnings, unused variables, etc
+    
+    Signed-off-by: Arlin Davis <arlin.r.davis at intel.com>
+
+commit a0c9ca3b0624453e337e863b83d3c9826e502c38
+Author: Arlin Davis <arlin.r.davis at intel.com>
+Date:   Thu Mar 17 16:06:35 2016 -0700
+
+    scm: backward compatibility issue with MTU negotiation
+    
+    The scm provider builds the CM reply message on stack
+    and doesnt memset to zero so resv fields are unknown.
+    The client cannot check mtu/resv field for MTU adjustments.
+    Bump provider CM message version to DCM_VER_MTU and add
+    check for appropriate version.
+    
+    Signed-off-by: Arlin Davis <arlin.r.davis at intel.com>
+
+commit 2847e3b2e10b77bdba26a78c09ed3a5223e08456
+Author: Arlin Davis <arlin.r.davis at intel.com>
+Date:   Mon Mar 14 09:46:14 2016 -0700
+
+    mcm: fix mtu interop issues when MIC and HOST differ
+    
+    result of commit: ab67173b8024e14009c266d76ab9ec0bdd0c5d1f
+    
+    New MCM provider on MIC side needs to open in compat mode
+    with MTU set to 2048. It needs to allow proxy, if new, to
+    adjust to active MTU. If old proxy is on host side, 2048
+    is returned as normal and new MCM provider remains in
+    compat mode with MTU at 2048.
+    
+    New proxy on host side needs to support an old version of
+    MCM provider and adjust MTU only if MIC side changes
+    dev_attr.mtu settings. It will bump up to active_MTU
+    only if the MCM provider is new and sets the MIX_OP_SET
+    bit on the mic->host proxy device open call.
+    
+    Proxy open device MUST set new dev attributes in client SMD
+    device object and not in the shared MD device object since
+    there can be multiple clients with different attribute
+    settings from MIC side.
+    
+    MCM provider MUST query and setup MTU in open instead of query
+    so subsequent queries don't override negotiated setting.
+    
+    Signed-off-by: Arlin Davis <arlin.r.davis at intel.com>
+
+commit 6316f8317d4ecb0e6b47e94ea0782356f201bcb9
+Author: Arlin Davis <arlin.r.davis at intel.com>
+Date:   Fri Mar 4 13:15:05 2016 -0800
+
+    dtest: clean up warnings, keep variables and functions local
+    
+    Signed-off-by: Arlin Davis <arlin.r.davis at intel.com>
+
+commit c9a7fd2e658efa9021cc386d1b8ec3691a903959
+Author: Arlin Davis <arlin.r.davis at intel.com>
+Date:   Wed Feb 17 15:35:30 2016 -0800
+
+    Release 2.1.8
+    
+    Signed-off-by: Arlin Davis <arlin.r.davis at intel.com>
+
 commit 58d757c07c8a3fcf81bdd0529f633bdc5251a06c
 Author: Arlin Davis <arlin.r.davis at intel.com>
 Date:   Tue Feb 16 13:12:16 2016 -0800
diff --git a/INSTALL b/INSTALL
old mode 100755
new mode 100644
diff --git a/LICENSE.txt b/LICENSE.txt
old mode 100755
new mode 100644
diff --git a/LICENSE2.txt b/LICENSE2.txt
old mode 100755
new mode 100644
diff --git a/LICENSE3.txt b/LICENSE3.txt
old mode 100755
new mode 100644
diff --git a/NEWS b/NEWS
old mode 100755
new mode 100644
diff --git a/README b/README
old mode 100755
new mode 100644
diff --git a/README.mcm b/README.mcm
old mode 100755
new mode 100644
diff --git a/config.h.in b/config.h.in
old mode 100755
new mode 100644
diff --git a/config/ltmain.sh b/config/ltmain.sh
old mode 100755
new mode 100644
diff --git a/configure b/configure
index fca96a4..18c59e9 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.67 for dapl 2.1.8.
+# Generated by GNU Autoconf 2.67 for dapl 2.1.9.
 #
 # Report bugs to <linux-rdma at vger.kernel.org>.
 #
@@ -562,8 +562,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='dapl'
 PACKAGE_TARNAME='dapl'
-PACKAGE_VERSION='2.1.8'
-PACKAGE_STRING='dapl 2.1.8'
+PACKAGE_VERSION='2.1.9'
+PACKAGE_STRING='dapl 2.1.9'
 PACKAGE_BUGREPORT='linux-rdma at vger.kernel.org'
 PACKAGE_URL=''
 
@@ -1318,7 +1318,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures dapl 2.1.8 to adapt to many kinds of systems.
+\`configure' configures dapl 2.1.9 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1388,7 +1388,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of dapl 2.1.8:";;
+     short | recursive ) echo "Configuration of dapl 2.1.9:";;
    esac
   cat <<\_ACEOF
 
@@ -1509,7 +1509,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-dapl configure 2.1.8
+dapl configure 2.1.9
 generated by GNU Autoconf 2.67
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -1935,7 +1935,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by dapl $as_me 2.1.8, which was
+It was created by dapl $as_me 2.1.9, which was
 generated by GNU Autoconf 2.67.  Invocation command line was
 
   $ $0 $@
@@ -2803,7 +2803,7 @@ fi
 # Define the identity of the package.
 
  PACKAGE=dapl
- VERSION=2.1.8
+ VERSION=2.1.9
 
 
 cat >>confdefs.h <<_ACEOF
@@ -13281,7 +13281,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by dapl $as_me 2.1.8, which was
+This file was extended by dapl $as_me 2.1.9, which was
 generated by GNU Autoconf 2.67.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -13347,7 +13347,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-dapl config.status 2.1.8
+dapl config.status 2.1.9
 configured by $0, generated by GNU Autoconf 2.67,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.in b/configure.in
old mode 100755
new mode 100644
index 56c99e5..3c140ac
--- a/configure.in
+++ b/configure.in
@@ -1,12 +1,12 @@
 dnl Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.57)
-AC_INIT(dapl, 2.1.8, linux-rdma at vger.kernel.org)
+AC_INIT(dapl, 2.1.9, linux-rdma at vger.kernel.org)
 AC_CONFIG_SRCDIR([dat/udat/udat.c])
 AC_CONFIG_AUX_DIR(config)
 AC_CONFIG_MACRO_DIR([m4])
 AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(dapl, 2.1.8)
+AM_INIT_AUTOMAKE(dapl, 2.1.9)
 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
 
 AM_PROG_LIBTOOL
diff --git a/dapl.spec b/dapl.spec
index 74761ca..a2c9524 100644
--- a/dapl.spec
+++ b/dapl.spec
@@ -31,14 +31,10 @@
 # uDAT and uDAPL 2.0 Registry RPM SPEC file
 #
 # $Id: $
-# don't fail when not given extra FLAGS:
-%{!?_CPPFLAGS: %define _CPPFLAGS ""}
-%{!?_LDFLAGS: %define _LDFLAGS ""}
-%{!?_CONF: %define _CONF ""}
 
 Name: dapl
-Version: 2.1.8
-Release: 1%{?dist}
+Version: 2.1.9
+Release: 2%{?dist}
 Summary: A Library for userspace access to RDMA devices using OS Agnostic DAT APIs, proxy daemon for offloading RDMA 
 
 Group: System Environment/Libraries
@@ -87,7 +83,7 @@ Useful test suites to validate uDAPL library API's.
 %setup -q
 
 %build
-%configure CPPFLAGS=%{_CPPFLAGS} LDFLAGS=%{_LDFLAGS} %{_CONF}
+%configure
 
 make %{?_smp_mflags}
 
@@ -153,6 +149,12 @@ fi
 mv /tmp/%{version}-dat.conf %{_sysconfdir}/dat.conf
 
 %changelog
+* Fri Apr 29 2016 Arlin Davis <ardavis at ichips.intel.com> - 2.1.9
+- DAT/DAPL Version 2.1.9 Release 2, OFED 3.18-2 GA, MPSS 3.7.1 
+
+* Thu Apr 14 2016 Arlin Davis <ardavis at ichips.intel.com> - 2.1.9
+- DAT/DAPL Version 2.1.9 Release 1, OFED 3.18-2 GA, MPSS 3.7 
+
 * Tue Feb 16 2016 Arlin Davis <ardavis at ichips.intel.com> - 2.1.8
 - DAT/DAPL Version 2.1.8 Release 1, OFED 3.18-2, MPSS 3.7 
 
diff --git a/dapl.spec.in b/dapl.spec.in
old mode 100755
new mode 100644
index fbec001..f3a6ff2
--- a/dapl.spec.in
+++ b/dapl.spec.in
@@ -31,14 +31,10 @@
 # uDAT and uDAPL 2.0 Registry RPM SPEC file
 #
 # $Id: $
-# don't fail when not given extra FLAGS:
-%{!?_CPPFLAGS: %define _CPPFLAGS ""}
-%{!?_LDFLAGS: %define _LDFLAGS ""}
-%{!?_CONF: %define _CONF ""}
 
 Name: dapl
 Version: @VERSION@
-Release: 1%{?dist}
+Release: 2%{?dist}
 Summary: A Library for userspace access to RDMA devices using OS Agnostic DAT APIs, proxy daemon for offloading RDMA 
 
 Group: System Environment/Libraries
@@ -87,7 +83,7 @@ Useful test suites to validate uDAPL library API's.
 %setup -q
 
 %build
-%configure CPPFLAGS=%{_CPPFLAGS} LDFLAGS=%{_LDFLAGS} %{_CONF}
+%configure
 
 make %{?_smp_mflags}
 
@@ -153,6 +149,12 @@ fi
 mv /tmp/%{version}-dat.conf %{_sysconfdir}/dat.conf
 
 %changelog
+* Fri Apr 29 2016 Arlin Davis <ardavis at ichips.intel.com> - 2.1.9
+- DAT/DAPL Version 2.1.9 Release 2, OFED 3.18-2 GA, MPSS 3.7.1 
+
+* Thu Apr 14 2016 Arlin Davis <ardavis at ichips.intel.com> - 2.1.9
+- DAT/DAPL Version 2.1.9 Release 1, OFED 3.18-2 GA, MPSS 3.7 
+
 * Tue Feb 16 2016 Arlin Davis <ardavis at ichips.intel.com> - 2.1.8
 - DAT/DAPL Version 2.1.8 Release 1, OFED 3.18-2, MPSS 3.7 
 
diff --git a/dapl/common/dapl_cno_util.c b/dapl/common/dapl_cno_util.c
index cad9747..75fdcc9 100755
--- a/dapl/common/dapl_cno_util.c
+++ b/dapl/common/dapl_cno_util.c
@@ -147,10 +147,6 @@ void dapl_cno_dealloc(IN DAPL_CNO * cno_ptr)
  */
 void dapl_internal_cno_trigger(IN DAPL_CNO * cno_ptr, IN DAPL_EVD * evd_ptr)
 {
-	DAT_RETURN dat_status;
-
-	dat_status = DAT_SUCCESS;
-
 	dapl_os_assert(cno_ptr->header.magic == DAPL_MAGIC_CNO);
 	/* The spec allows NULL EVDs. kDAPL doesn't have CNOs, they
 	 * are strictly used behind the scenes
diff --git a/dapl/common/dapl_cookie.c b/dapl/common/dapl_cookie.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_cookie.h b/dapl/common/dapl_cookie.h
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_cr_accept.c b/dapl/common/dapl_cr_accept.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_cr_callback.c b/dapl/common/dapl_cr_callback.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_cr_handoff.c b/dapl/common/dapl_cr_handoff.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_cr_query.c b/dapl/common/dapl_cr_query.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_cr_util.c b/dapl/common/dapl_cr_util.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_cr_util.h b/dapl/common/dapl_cr_util.h
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_debug.c b/dapl/common/dapl_debug.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_ep_create.c b/dapl/common/dapl_ep_create.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_ep_create_with_srq.c b/dapl/common/dapl_ep_create_with_srq.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_ep_disconnect.c b/dapl/common/dapl_ep_disconnect.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_ep_dup_connect.c b/dapl/common/dapl_ep_dup_connect.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_ep_free.c b/dapl/common/dapl_ep_free.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_ep_get_status.c b/dapl/common/dapl_ep_get_status.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_ep_modify.c b/dapl/common/dapl_ep_modify.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_ep_post_rdma_read.c b/dapl/common/dapl_ep_post_rdma_read.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_ep_post_rdma_write.c b/dapl/common/dapl_ep_post_rdma_write.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_ep_post_recv.c b/dapl/common/dapl_ep_post_recv.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_ep_post_send.c b/dapl/common/dapl_ep_post_send.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_ep_query.c b/dapl/common/dapl_ep_query.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_ep_recv_query.c b/dapl/common/dapl_ep_recv_query.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_ep_reset.c b/dapl/common/dapl_ep_reset.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_ep_set_watermark.c b/dapl/common/dapl_ep_set_watermark.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_ep_util.c b/dapl/common/dapl_ep_util.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_ep_util.h b/dapl/common/dapl_ep_util.h
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_evd_connection_callb.c b/dapl/common/dapl_evd_connection_callb.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_evd_cq_async_error_callb.c b/dapl/common/dapl_evd_cq_async_error_callb.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_evd_dequeue.c b/dapl/common/dapl_evd_dequeue.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_evd_post_se.c b/dapl/common/dapl_evd_post_se.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_evd_qp_async_error_callb.c b/dapl/common/dapl_evd_qp_async_error_callb.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_evd_resize.c b/dapl/common/dapl_evd_resize.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_evd_un_async_error_callb.c b/dapl/common/dapl_evd_un_async_error_callb.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_evd_util.c b/dapl/common/dapl_evd_util.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_evd_util.h b/dapl/common/dapl_evd_util.h
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_get_consumer_context.c b/dapl/common/dapl_get_consumer_context.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_get_handle_type.c b/dapl/common/dapl_get_handle_type.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_hash.c b/dapl/common/dapl_hash.c
old mode 100755
new mode 100644
index 0811d7c..b9679c3
--- a/dapl/common/dapl_hash.c
+++ b/dapl/common/dapl_hash.c
@@ -363,7 +363,7 @@ dapls_hash_create(IN DAT_COUNT table_size, OUT DAPL_HASH_TABLE ** pp_table)
 	*pp_table = p_table;
 
       bail:
-	return DAT_SUCCESS;
+	return dat_status;
 }
 
 /*
diff --git a/dapl/common/dapl_hash.h b/dapl/common/dapl_hash.h
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_hca_util.c b/dapl/common/dapl_hca_util.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_hca_util.h b/dapl/common/dapl_hca_util.h
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_ia_close.c b/dapl/common/dapl_ia_close.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_ia_open.c b/dapl/common/dapl_ia_open.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_ia_util.h b/dapl/common/dapl_ia_util.h
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_init.h b/dapl/common/dapl_init.h
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_llist.c b/dapl/common/dapl_llist.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_lmr_free.c b/dapl/common/dapl_lmr_free.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_lmr_query.c b/dapl/common/dapl_lmr_query.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_lmr_sync_rdma_read.c b/dapl/common/dapl_lmr_sync_rdma_read.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_lmr_sync_rdma_write.c b/dapl/common/dapl_lmr_sync_rdma_write.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_lmr_util.c b/dapl/common/dapl_lmr_util.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_lmr_util.h b/dapl/common/dapl_lmr_util.h
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_mr_util.c b/dapl/common/dapl_mr_util.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_mr_util.h b/dapl/common/dapl_mr_util.h
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_name_service.c b/dapl/common/dapl_name_service.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_name_service.h b/dapl/common/dapl_name_service.h
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_provider.h b/dapl/common/dapl_provider.h
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_psp_create.c b/dapl/common/dapl_psp_create.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_psp_create_any.c b/dapl/common/dapl_psp_create_any.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_psp_free.c b/dapl/common/dapl_psp_free.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_psp_query.c b/dapl/common/dapl_psp_query.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_pz_create.c b/dapl/common/dapl_pz_create.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_pz_free.c b/dapl/common/dapl_pz_free.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_pz_query.c b/dapl/common/dapl_pz_query.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_pz_util.c b/dapl/common/dapl_pz_util.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_pz_util.h b/dapl/common/dapl_pz_util.h
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_ring_buffer_util.c b/dapl/common/dapl_ring_buffer_util.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_ring_buffer_util.h b/dapl/common/dapl_ring_buffer_util.h
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_rmr_free.c b/dapl/common/dapl_rmr_free.c
old mode 100755
new mode 100644
index d3abecb..5a95eb0
--- a/dapl/common/dapl_rmr_free.c
+++ b/dapl/common/dapl_rmr_free.c
@@ -56,7 +56,6 @@
 DAT_RETURN DAT_API dapl_rmr_free(IN DAT_RMR_HANDLE rmr_handle)
 {
 	DAPL_RMR *rmr;
-	DAPL_PZ *pz;
 	DAT_RETURN dat_status;
 
 	dat_status = DAT_SUCCESS;
@@ -68,8 +67,7 @@ DAT_RETURN DAT_API dapl_rmr_free(IN DAT_RMR_HANDLE rmr_handle)
 	}
 
 	rmr = (DAPL_RMR *) rmr_handle;
-	pz = (DAPL_PZ *) rmr->param.pz_handle;
-	DAPL_CNTR(pz->header.owner_ia, DCNT_IA_RMR_FREE);
+	DAPL_CNTR(rmr->pz->header.owner_ia, DCNT_IA_RMR_FREE);
 
 	/*
 	 * If the user did not perform an unbind op, release
diff --git a/dapl/common/dapl_rmr_query.c b/dapl/common/dapl_rmr_query.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_rmr_util.c b/dapl/common/dapl_rmr_util.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_rmr_util.h b/dapl/common/dapl_rmr_util.h
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_rsp_create.c b/dapl/common/dapl_rsp_create.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_rsp_free.c b/dapl/common/dapl_rsp_free.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_rsp_query.c b/dapl/common/dapl_rsp_query.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_set_consumer_context.c b/dapl/common/dapl_set_consumer_context.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_sp_util.c b/dapl/common/dapl_sp_util.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_sp_util.h b/dapl/common/dapl_sp_util.h
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_srq_create.c b/dapl/common/dapl_srq_create.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_srq_free.c b/dapl/common/dapl_srq_free.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_srq_post_recv.c b/dapl/common/dapl_srq_post_recv.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_srq_query.c b/dapl/common/dapl_srq_query.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_srq_resize.c b/dapl/common/dapl_srq_resize.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_srq_set_lw.c b/dapl/common/dapl_srq_set_lw.c
old mode 100755
new mode 100644
index 8202e4f..22dd294
--- a/dapl/common/dapl_srq_set_lw.c
+++ b/dapl/common/dapl_srq_set_lw.c
@@ -66,7 +66,6 @@
 DAT_RETURN DAT_API
 dapl_srq_set_lw(IN DAT_SRQ_HANDLE srq_handle, IN DAT_COUNT low_watermark)
 {
-	DAPL_SRQ *srq_ptr;
 	DAT_RETURN dat_status;
 
 	dat_status = DAT_SUCCESS;
@@ -80,8 +79,6 @@ dapl_srq_set_lw(IN DAT_SRQ_HANDLE srq_handle, IN DAT_COUNT low_watermark)
 		goto bail;
 	}
 
-	srq_ptr = (DAPL_SRQ *) srq_handle;
-
 	dat_status = DAT_ERROR(DAT_NOT_IMPLEMENTED, DAT_NO_SUBTYPE);
 
       bail:
diff --git a/dapl/common/dapl_srq_util.c b/dapl/common/dapl_srq_util.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_srq_util.h b/dapl/common/dapl_srq_util.h
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_timer_util.c b/dapl/common/dapl_timer_util.c
old mode 100755
new mode 100644
diff --git a/dapl/common/dapl_timer_util.h b/dapl/common/dapl_timer_util.h
old mode 100755
new mode 100644
diff --git a/dapl/include/dapl_debug.h b/dapl/include/dapl_debug.h
old mode 100755
new mode 100644
diff --git a/dapl/include/dapl_ipoib_names.h b/dapl/include/dapl_ipoib_names.h
old mode 100755
new mode 100644
diff --git a/dapl/include/dapl_vendor.h b/dapl/include/dapl_vendor.h
old mode 100755
new mode 100644
diff --git a/dapl/openib_cma/cm.c b/dapl/openib_cma/cm.c
old mode 100755
new mode 100644
diff --git a/dapl/openib_cma/dapl_ib_util.h b/dapl/openib_cma/dapl_ib_util.h
index 3738dc0..b886832 100755
--- a/dapl/openib_cma/dapl_ib_util.h
+++ b/dapl/openib_cma/dapl_ib_util.h
@@ -110,6 +110,7 @@ typedef struct _ib_hca_transport
 	ib_cm_attr_t		ib_cm;  /* dev attr for QP and CM */
 	uint64_t		guid;
 	char			guid_str[32];
+	char 			gid_str[48];
 	ib_named_attr_t		na;
 #ifdef DAT_IB_COLLECTIVES
 	/* Collective member device and address information */
diff --git a/dapl/openib_cma/device.c b/dapl/openib_cma/device.c
old mode 100755
new mode 100644
diff --git a/dapl/openib_cma/linux/openib_osd.h b/dapl/openib_cma/linux/openib_osd.h
old mode 100755
new mode 100644
diff --git a/dapl/openib_common/collectives/fca_provider.c b/dapl/openib_common/collectives/fca_provider.c
old mode 100755
new mode 100644
diff --git a/dapl/openib_common/collectives/fca_provider.h b/dapl/openib_common/collectives/fca_provider.h
old mode 100755
new mode 100644
diff --git a/dapl/openib_common/collectives/ib_collectives.h b/dapl/openib_common/collectives/ib_collectives.h
old mode 100755
new mode 100644
diff --git a/dapl/openib_common/cq.c b/dapl/openib_common/cq.c
old mode 100755
new mode 100644
diff --git a/dapl/openib_common/dapl_ib_common.h b/dapl/openib_common/dapl_ib_common.h
old mode 100755
new mode 100644
index 8ff898f..78b89ea
--- a/dapl/openib_common/dapl_ib_common.h
+++ b/dapl/openib_common/dapl_ib_common.h
@@ -105,9 +105,13 @@ typedef	struct ibv_context	*ib_hca_handle_t;
 typedef ib_hca_handle_t		dapl_ibal_ca_t;
 
 /* QP info to exchange, wire protocol version for these CM's */
+/* Version 7, RDMA READ attributes */
 /* Version 8, 24-bit port space and rtns value */
-#define DCM_VER 8
+/* Version 9, MTU negotiation per QP */
+#define DCM_VER 9
+#define DCM_VER_MTU 9
 #define DCM_VER_XPS 8 /* extended port space, rtns */
+#define DCM_VER_RR  7 /* RDMA Read attributes */
 #define DCM_VER_MIN 6 /* backward compatibility limit */
 
 /* CM private data areas, same for all operations */
@@ -175,6 +179,7 @@ typedef struct _ib_named_attr
 	 const char *i_data;
 	 const char *f_add;
 	 const char *c_swap;
+	 const char *gid;
 
 } ib_named_attr_t;
 
diff --git a/dapl/openib_common/dapl_ib_dto.h b/dapl/openib_common/dapl_ib_dto.h
old mode 100755
new mode 100644
diff --git a/dapl/openib_common/ib_extensions.c b/dapl/openib_common/ib_extensions.c
old mode 100755
new mode 100644
index 427c708..9f7d09f
--- a/dapl/openib_common/ib_extensions.c
+++ b/dapl/openib_common/ib_extensions.c
@@ -210,7 +210,6 @@ dapl_extensions(IN DAT_HANDLE dat_handle,
 	{
 		DAT_IB_ADDR_HANDLE *dat_ah;
 		uint16_t lid;
-		int ret;
 
 		dapl_dbg_log(DAPL_DBG_TYPE_RTN,
 			     " UD ah_free extension call\n");
@@ -232,7 +231,7 @@ dapl_extensions(IN DAT_HANDLE dat_handle,
 
 			errno = 0;
 			if (!((DAPL_EP *)ep)->qp_handle->ah[lid])
-				ret = ibv_destroy_ah(dat_ah->ah);
+				ibv_destroy_ah(dat_ah->ah);
 
 			status = dapl_convert_errno(errno, "destroy_ah");
 		}
@@ -504,7 +503,6 @@ dapli_post_ext(IN DAT_EP_HANDLE ep_handle,
 	       IN DAT_COMPLETION_FLAGS flags, IN DAT_IB_ADDR_HANDLE * ah)
 {
 	DAPL_EP *ep_ptr;
-	ib_qp_handle_t qp_ptr;
 	DAPL_COOKIE *cookie = NULL;
 	DAT_RETURN dat_status = DAT_SUCCESS;
 
@@ -518,7 +516,6 @@ dapli_post_ext(IN DAT_EP_HANDLE ep_handle,
 		return (DAT_ERROR(DAT_INVALID_HANDLE, DAT_INVALID_HANDLE_EP));
 
 	ep_ptr = (DAPL_EP *) ep_handle;
-	qp_ptr = ep_ptr->qp_handle;
 
 	/*
 	 * Synchronization ok since this buffer is only used for send
diff --git a/dapl/openib_common/mem.c b/dapl/openib_common/mem.c
old mode 100755
new mode 100644
diff --git a/dapl/openib_common/qp.c b/dapl/openib_common/qp.c
old mode 100755
new mode 100644
diff --git a/dapl/openib_common/srq.c b/dapl/openib_common/srq.c
old mode 100755
new mode 100644
diff --git a/dapl/openib_common/util.c b/dapl/openib_common/util.c
old mode 100755
new mode 100644
index ec5d72f..557c7a7
--- a/dapl/openib_common/util.c
+++ b/dapl/openib_common/util.c
@@ -343,6 +343,18 @@ const char *dapl_ib_port_num_str(unsigned long num)
 	}
 }
 
+const char *dapl_ib_gid_str(union ibv_gid *gid, char *str)
+{
+	sprintf(str, "%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x",
+		gid->raw[0], gid->raw[1], gid->raw[2], gid->raw[3],
+		gid->raw[4], gid->raw[5], gid->raw[6], gid->raw[7],
+		gid->raw[8], gid->raw[9], gid->raw[10],gid->raw[11],
+		gid->raw[12],gid->raw[13],gid->raw[14],gid->raw[15]);
+
+	return str;
+}
+
+
 /*
  * dapls_ib_query_hca
  *
@@ -370,6 +382,7 @@ DAT_RETURN dapls_ib_query_hca(IN DAPL_HCA * hca_ptr,
 	ib_hca_transport_t *tp = &hca_ptr->ib_trans;
 	struct ibv_device_attr dev_attr;
 	struct ibv_port_attr port_attr;
+	union ibv_gid port_gid;
 
 	/* local IP address of device, set during ia_open */
 	if (ip_addr)
@@ -424,13 +437,6 @@ DAT_RETURN dapls_ib_query_hca(IN DAPL_HCA * hca_ptr,
 	dev_attr.max_qp_wr = DAPL_MIN(dev_attr.max_qp_wr,
 				      dapl_os_get_env_val("DAPL_WR_MAX", dev_attr.max_qp_wr));
 
-	/* MTU to active by default, reset if env set and <= active_mtu */
-	if (getenv("DAPL_IB_MTU"))
-		tp->ib_cm.mtu = DAPL_MIN(port_attr.active_mtu,
-					 dapl_ib_mtu(dapl_os_get_env_val("DAPL_IB_MTU", DCM_IB_MTU)));
-	else
-		tp->ib_cm.mtu = port_attr.active_mtu;
-
 #ifdef _OPENIB_MCM_
 	/* Adjust for CCL Proxy; limited sge's, no READ support, reduce QP and RDMA limits */
 	dev_attr.max_sge = DAPL_MIN(dev_attr.max_sge, DAT_MIX_SGE_MAX);
@@ -438,6 +444,13 @@ DAT_RETURN dapls_ib_query_hca(IN DAPL_HCA * hca_ptr,
 				      dapl_os_get_env_val("DAPL_MCM_WR_MAX", DAT_MIX_WR_MAX));
 	port_attr.max_msg_sz = DAPL_MIN(port_attr.max_msg_sz,
 					dapl_os_get_env_val("DAPL_MCM_MSG_MAX", DAT_MIX_RDMA_MAX));
+#else
+	/* MTU to active by default, reset if env set and <= active_mtu */
+	if (getenv("DAPL_IB_MTU"))
+		tp->ib_cm.mtu = DAPL_MIN(port_attr.active_mtu,
+					 dapl_ib_mtu(dapl_os_get_env_val("DAPL_IB_MTU", DCM_IB_MTU)));
+	else
+		tp->ib_cm.mtu = port_attr.active_mtu;
 #endif
 
 	if (ia_attr != NULL) {
@@ -498,19 +511,21 @@ DAT_RETURN dapls_ib_query_hca(IN DAPL_HCA * hca_ptr,
 		ia_attr->num_vendor_attr = 0;
 		ia_attr->vendor_attr = NULL;
 #ifdef DAT_EXTENSIONS
+		ia_attr->extension_supported = DAT_EXTENSION_IB;
+		ia_attr->extension_version = DAT_IB_EXTENSION_VERSION;
+		tp->na.ib_ext = "TRUE";
+		tp->na.i_data = "TRUE";
+		tp->na.f_add  = "TRUE";
+		tp->na.c_swap = "TRUE";
+#ifdef _OPENIB_MCM_
+		if (!MXF_EP(&hca_ptr->ib_trans.addr))
+#endif
 		if (hca_ptr->ib_hca_handle->device->transport_type == IBV_TRANSPORT_IWARP) {
 			ia_attr->extension_supported = DAT_EXTENSION_NONE;
 			tp->na.ib_ext = "FALSE";
 			tp->na.i_data = "FALSE";
 			tp->na.f_add  = "FALSE";
 			tp->na.c_swap = "FALSE";
-		} else {
-			ia_attr->extension_supported = DAT_EXTENSION_IB;
-			ia_attr->extension_version = DAT_IB_EXTENSION_VERSION;
-			tp->na.ib_ext = "TRUE";
-			tp->na.i_data = "TRUE";
-			tp->na.f_add  = "TRUE";
-			tp->na.c_swap = "TRUE";
 		}
 #endif
 		/* save key device attributes for CM exchange */
@@ -523,20 +538,28 @@ DAT_RETURN dapls_ib_query_hca(IN DAPL_HCA * hca_ptr,
 		tp->na.mtu = dapl_ib_mtu_str(tp->ib_cm.mtu);
 		tp->na.port = dapl_ib_port_str(port_attr.state);
 		tp->na.port_num = dapl_ib_port_num_str(hca_ptr->port_num);
-		if (!tp->guid) {
+
+		if (!tp->na.gid) {
 #ifdef _OPENIB_MCM_
-			if (MFO_EP(&hca_ptr->ib_trans.addr) && tp->self.node)
+			if (MFO_EP(&hca_ptr->ib_trans.addr) && tp->self.node) {
 				tp->guid = ntohll(dev_attr.node_guid);
+				memcpy(&port_gid, tp->addr.gid, sizeof(port_gid));
+			}
 			else
 #endif
+			{
 				tp->guid = ntohll(ibv_get_device_guid(tp->ib_dev));
-		}
+				/* get gid and init named attribute */
+				ibv_query_gid(hca_ptr->ib_hca_handle, (uint8_t)hca_ptr->port_num, 0, &port_gid);
+			}
 
-		sprintf(tp->guid_str, "%04x:%04x:%04x:%04x",
-			(unsigned) (tp->guid >> 48) & 0xffff,
-			(unsigned) (tp->guid >> 32) & 0xffff,
-			(unsigned) (tp->guid >> 16) & 0xffff,
-			(unsigned) (tp->guid >>  0) & 0xffff);
+			tp->na.gid = dapl_ib_gid_str(&port_gid, tp->gid_str);
+			sprintf(tp->guid_str, "%04x:%04x:%04x:%04x",
+				(unsigned) (tp->guid >> 48) & 0xffff,
+				(unsigned) (tp->guid >> 32) & 0xffff,
+				(unsigned) (tp->guid >> 16) & 0xffff,
+				(unsigned) (tp->guid >>  0) & 0xffff);
+		}
 
 #ifdef _OPENIB_MCM_
 		/* initialized at open */
@@ -834,6 +857,9 @@ DAT_NAMED_ATTR ib_attrs[] = {
 	 "DAT_IB_NODE_GUID", "xxxx:xxxx:xxxx:xxxx"}
 	,
 	{
+	 "DAT_IB_GID", "xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx"}
+	,
+	{
 	 "DAT_IB_TRANSPORT_MTU", "2048"}
 	,
 	{
@@ -924,6 +950,8 @@ void dapls_query_provider_specific_attr(IN DAPL_IA * ia_ptr,
 			ib_attrs[i].value = ia_ptr->hca_ptr->ib_trans.na.read;
 		else if (!strcmp(ib_attrs[i].name, "DAT_IB_NODE_GUID"))
 			ib_attrs[i].value = ia_ptr->hca_ptr->ib_trans.guid_str;
+		else if (!strcmp(ib_attrs[i].name, "DAT_IB_GID"))
+			ib_attrs[i].value = ia_ptr->hca_ptr->ib_trans.na.gid;
 		else if (!strcmp(ib_attrs[i].name, "DAT_IB_TRANSPORT_MTU"))
 			ib_attrs[i].value = ia_ptr->hca_ptr->ib_trans.na.mtu;
 		else if (!strcmp(ib_attrs[i].name, "DAT_IB_PORT_STATUS"))
diff --git a/dapl/openib_mcm/cm.c b/dapl/openib_mcm/cm.c
old mode 100755
new mode 100644
diff --git a/dapl/openib_mcm/dapl_ib_util.h b/dapl/openib_mcm/dapl_ib_util.h
old mode 100755
new mode 100644
index 89d3650..e2a00ae
--- a/dapl/openib_mcm/dapl_ib_util.h
+++ b/dapl/openib_mcm/dapl_ib_util.h
@@ -133,6 +133,7 @@ typedef struct _ib_hca_transport
 	uint64_t		sys_guid;	/* system image guid, network order */
 	uint64_t		guid;		/* host order */
 	char 			guid_str[32];
+	char 			gid_str[48];
 	char 			fam_str[8];
 	char 			mod_str[8];
 	char 			ver_str[8];
diff --git a/dapl/openib_mcm/device.c b/dapl/openib_mcm/device.c
old mode 100755
new mode 100644
index 86c4565..2e30221
--- a/dapl/openib_mcm/device.c
+++ b/dapl/openib_mcm/device.c
@@ -342,6 +342,16 @@ DAT_RETURN dapls_ib_open_hca(IN IB_HCA_NAME hca_name,
 		goto err2;
 	}
 
+	/* Set MTU here, don't set in query; MCM, needs to sync with proxy on MIC */
+	if (getenv("DAPL_IB_MTU")) {
+		hca_ptr->ib_trans.ib_cm.mtu =
+			DAPL_MIN(port_attr.active_mtu,
+				 dapl_ib_mtu(dapl_os_get_env_val("DAPL_IB_MTU",
+						 	 	 DCM_IB_MTU)));
+	} else {
+		hca_ptr->ib_trans.ib_cm.mtu = port_attr.active_mtu;
+	}
+
 	if (dapli_mix_open(&hca_ptr->ib_trans, hca_name,
 			   hca_ptr->port_num, flags & DAPL_OPEN_QUERY)) {
 		dapl_log(DAPL_DBG_TYPE_ERR,
diff --git a/dapl/openib_mcm/linux/openib_osd.h b/dapl/openib_mcm/linux/openib_osd.h
old mode 100755
new mode 100644
diff --git a/dapl/openib_mcm/mix.c b/dapl/openib_mcm/mix.c
old mode 100755
new mode 100644
index 5d96eb5..bfbb889
--- a/dapl/openib_mcm/mix.c
+++ b/dapl/openib_mcm/mix.c
@@ -171,8 +171,13 @@ int dapli_mix_open(ib_hca_transport_t *tp, char *name, int port, int query_only)
 	msg.port = port;
 	strcpy((char*)&msg.name, name);
 
-	if (getenv("DAPL_IB_MTU"))
+	if (getenv("DAPL_IB_MTU")) {
 		msg.hdr.flags |= MIX_OP_MTU;
+		msg.dev_attr.mtu = tp->ib_cm.mtu; /* set to env value */
+	} else {
+		msg.hdr.flags |= MIX_OP_SET; /* ok for proxy to set MTU */
+		msg.dev_attr.mtu = IBV_MTU_2048; /* compat mode */
+	}
 
 	/* send any overridden attributes to proxy */
 	msg.dev_attr.ack_timer = tp->ib_cm.ack_timer;
@@ -183,7 +188,6 @@ int dapli_mix_open(ib_hca_transport_t *tp, char *name, int port, int query_only)
 	msg.dev_attr.hop_limit = tp->ib_cm.hop_limit;
 	msg.dev_attr.tclass = tp->ib_cm.tclass;
 	msg.dev_attr.sl = tp->ib_cm.sl;
-	msg.dev_attr.mtu = tp->ib_cm.mtu;
 	msg.dev_attr.rd_atom_in = tp->ib_cm.rd_atom_in;
 	msg.dev_attr.rd_atom_out = tp->ib_cm.rd_atom_out;
 	msg.dev_attr.pkey_idx = tp->ib_cm.pkey_idx;
@@ -237,6 +241,7 @@ int dapli_mix_open(ib_hca_transport_t *tp, char *name, int port, int query_only)
 	tp->ib_cm.pkey_idx = msg.dev_attr.pkey_idx;
 	tp->ib_cm.pkey = msg.dev_attr.pkey;
 	tp->ib_cm.max_inline = msg.dev_attr.max_inline;
+	tp->ib_cm.mtu = msg.dev_attr.mtu; /* proxy sets active_MTU mode */
 	tp->dev_id = msg.hdr.req_id;
 
 	if (MFO_EP(&tp->addr))
diff --git a/dapl/openib_mcm/proxy.c b/dapl/openib_mcm/proxy.c
old mode 100755
new mode 100644
index 5abb8b1..4e05ecc
--- a/dapl/openib_mcm/proxy.c
+++ b/dapl/openib_mcm/proxy.c
@@ -39,6 +39,7 @@
  * be direct so there is no need for PI service on this MCM providers host side.
  */
 #define MCM_MP_SIG_RATE 5
+#define MCM_MP_RETRY 	100000
 
 int mcm_send_pi(struct dcm_ib_qp *m_qp,
 		int len,
@@ -48,7 +49,7 @@ int mcm_send_pi(struct dcm_ib_qp *m_qp,
 	struct ibv_send_wr wr_imm;
 	struct ibv_sge sge;
 	struct mcm_wr_rx m_wr_rx;
-	int i, l_len, seg_len, ret = 0, wr_idx;
+	int i, l_len, seg_len, retry_cnt, ret = 0, wr_idx=0;
 	struct wrc_idata wrc;
 	uint32_t wr_flags, l_off, r_off = 0;
 	uint64_t l_addr;
@@ -84,9 +85,22 @@ int mcm_send_pi(struct dcm_ib_qp *m_qp,
 
 			dapl_os_lock(&m_qp->lock);
 			if (((m_qp->wr_hd + 1) & m_qp->wrc_rem.wr_end) == m_qp->wr_tl) { /* full */
-				ret = ENOMEM;
 				dapl_os_unlock(&m_qp->lock);
-				goto bail;
+				retry_cnt = MCM_MP_RETRY;
+retry_wr:
+				sched_yield();
+				dapl_os_lock(&m_qp->tp->cqlock);
+				mcm_dto_event(m_qp->rcv_cq); /* process CQ, free WR slots */
+				dapl_os_unlock(&m_qp->tp->cqlock);
+
+				dapl_os_lock(&m_qp->lock); /* retry */
+				if (((m_qp->wr_hd + 1) & m_qp->wrc_rem.wr_end) == m_qp->wr_tl) {
+					dapl_os_unlock(&m_qp->lock);
+					if (--retry_cnt)
+						goto retry_wr;
+					ret = ENOMEM;
+					goto bail;
+				}
 			}
 			m_qp->wr_hd = (m_qp->wr_hd + 1) & m_qp->wrc_rem.wr_end; /* move hd */
 			wr_idx = m_qp->wr_hd;
diff --git a/dapl/openib_scm/cm.c b/dapl/openib_scm/cm.c
old mode 100755
new mode 100644
index 35164ef..29b45df
--- a/dapl/openib_scm/cm.c
+++ b/dapl/openib_scm/cm.c
@@ -592,12 +592,14 @@ static void dapli_socket_connected(dp_ib_cm_handle_t cm_ptr, int err)
 
 	dapl_log(DAPL_DBG_TYPE_CM,
 		 " CONN_REQ: (%d) SRC lid=0x%x,"
-		 " qpn=0x%x, psize=%d GID %s\n",
+		 " qpn=0x%x, psize=%d GID %s rd_in %d rtns %d mtu %d rsv %d\n",
 		 exp, ntohs(cm_ptr->msg.saddr.ib.lid),
 		 ntohl(cm_ptr->msg.saddr.ib.qpn),
 		 ntohs(cm_ptr->msg.p_size),
 		 inet_ntop(AF_INET6, &cm_ptr->hca->ib_trans.gid,
-		           gid_str, sizeof(gid_str)));
+		           gid_str, sizeof(gid_str)),
+		 cm_ptr->msg.rd_in, cm_ptr->msg.rtns,
+		 cm_ptr->msg.mtu, cm_ptr->msg.resv[0]);
 
 	DAPL_CNTR(((DAPL_IA *)dapl_llist_peek_head(&cm_ptr->hca->ia_list_head)), DCNT_IA_CM_REQ_TX);
 	return;
@@ -743,8 +745,10 @@ static void dapli_socket_connect_rtu(dp_ib_cm_handle_t cm_ptr)
 		exp += SCM_BC_DIFF;
 	}
 
-	dapl_log(DAPL_DBG_TYPE_CM, " CONN_REP_IN: ver %d cm_sz %d, p_sz %d\n",
-		ntohs(cm_ptr->msg.ver), exp, ntohs(cm_ptr->msg.p_size));
+	dapl_log(DAPL_DBG_TYPE_CM,
+		 " CONN_REP_IN: ver %d cm_sz %d, p_sz %d rd_in %d mtu %d rsv %d\n",
+		 ntohs(cm_ptr->msg.ver), exp, ntohs(cm_ptr->msg.p_size),
+		 cm_ptr->msg.rd_in, cm_ptr->msg.mtu, cm_ptr->msg.resv[0]);
 
 	if (len != exp || ntohs(cm_ptr->msg.ver) < DCM_VER_MIN) {
 		int err = dapl_socket_errno();
@@ -844,13 +848,13 @@ static void dapli_socket_connect_rtu(dp_ib_cm_handle_t cm_ptr)
 	}
 
 	/* rdma_out, initiator, cannot exceed remote rdma_in max */
-	if (ntohs(cm_ptr->msg.ver) >= 7)
+	if (ntohs(cm_ptr->msg.ver) >= DCM_VER_RR)
 		ep_ptr->param.ep_attr.max_rdma_read_out =
 				DAPL_MIN(ep_ptr->param.ep_attr.max_rdma_read_out,
 					 cm_ptr->msg.rd_in);
 
 	/* Set QP MTU, if negotiated. 2K for compatibility */
-	ep_ptr->qp_handle->mtu = cm_ptr->msg.mtu ?
+	ep_ptr->qp_handle->mtu = (ntohs(cm_ptr->msg.ver) >= DCM_VER_MTU) ?
 				 DAPL_MIN(cm_ptr->msg.mtu, cm_ptr->hca->ib_trans.ib_cm.mtu):
 				 getenv("DAPL_IB_MTU") ? cm_ptr->hca->ib_trans.ib_cm.mtu : IBV_MTU_2048;
 
@@ -1186,14 +1190,17 @@ static void dapli_socket_accept_data(ib_cm_srvc_handle_t acm_ptr)
 
 	DAPL_CNTR(((DAPL_IA *)dapl_llist_peek_head(&acm_ptr->hca->ia_list_head)), DCNT_IA_CM_REQ_RX);
 
-	dapl_dbg_log(DAPL_DBG_TYPE_CM,
-		     " ACCEPT: DST %s %x lid=0x%x, qpn=0x%x, psz=%d\n",
-		     inet_ntoa(((struct sockaddr_in *)
-				&acm_ptr->msg.daddr.so)->sin_addr), 
-		     ntohs(((struct sockaddr_in *)
-			     &acm_ptr->msg.daddr.so)->sin_port),
-		     ntohs(acm_ptr->msg.saddr.ib.lid), 
-		     ntohl(acm_ptr->msg.saddr.ib.qpn), exp);
+	dapl_log(DAPL_DBG_TYPE_CM,
+		 " ACCEPT: DST %s %x lid=0x%x, qpn=0x%x, psz=%d"
+		 " rd_in %d mtu %d rsv %d \n",
+		 inet_ntoa(((struct sockaddr_in *)
+			     &acm_ptr->msg.daddr.so)->sin_addr),
+		 ntohs(((struct sockaddr_in *)
+		         &acm_ptr->msg.daddr.so)->sin_port),
+		 ntohs(acm_ptr->msg.saddr.ib.lid),
+		 ntohl(acm_ptr->msg.saddr.ib.qpn), exp,
+		 acm_ptr->msg.rd_in, acm_ptr->msg.mtu,
+		 acm_ptr->msg.resv[0]);
 
 #ifdef DAT_EXTENSIONS
 	if (acm_ptr->msg.saddr.ib.qp_type == IBV_QPT_UD) {
@@ -1274,7 +1281,7 @@ dapli_socket_accept_usr(DAPL_EP * ep_ptr,
 	}
 #endif
 	/* rdma_out, initiator, cannot exceed remote rdma_in max */
-	if (ntohs(cm_ptr->msg.ver) >= 7)
+	if (ntohs(cm_ptr->msg.ver) >= DCM_VER_RR)
 		ep_ptr->param.ep_attr.max_rdma_read_out =
 				DAPL_MIN(ep_ptr->param.ep_attr.max_rdma_read_out,
 					 cm_ptr->msg.rd_in);
@@ -1283,7 +1290,7 @@ dapli_socket_accept_usr(DAPL_EP * ep_ptr,
 		exp += SCM_BC_DIFF;
 
 	/* Set QP MTU, if negotiated. 2K for compatibility */
-	ep_ptr->qp_handle->mtu = cm_ptr->msg.mtu ?
+	ep_ptr->qp_handle->mtu = (ntohs(cm_ptr->msg.ver) >= DCM_VER_MTU) ?
 				 DAPL_MIN(cm_ptr->msg.mtu, cm_ptr->hca->ib_trans.ib_cm.mtu):
 				 getenv("DAPL_IB_MTU") ? cm_ptr->hca->ib_trans.ib_cm.mtu : IBV_MTU_2048;
 
@@ -1323,6 +1330,7 @@ dapli_socket_accept_usr(DAPL_EP * ep_ptr,
 		       sizeof(union dcm_addr));
 
 	/* send our QP info, IA address, pdata. Don't overwrite dst data */
+	(void)dapl_os_memzero(&local, sizeof(ib_cm_msg_t));
 	local.ver = htons(DCM_VER);
 	local.op = htons(DCM_REP);
 	local.rd_in = ep_ptr->param.ep_attr.max_rdma_read_in;
@@ -1725,6 +1733,7 @@ dapls_ib_reject_connection(IN dp_ib_cm_handle_t cm_ptr,
 			   IN DAT_COUNT psize, IN const DAT_PVOID pdata)
 {
 	struct iovec iov[2];
+	int len;
 
 	dapl_dbg_log(DAPL_DBG_TYPE_EP,
 		     " reject(cm %p reason %x, pdata %p, psize %d)\n",
@@ -1746,15 +1755,23 @@ dapls_ib_reject_connection(IN dp_ib_cm_handle_t cm_ptr,
 	if (psize) {
 		iov[1].iov_base = pdata;
 		iov[1].iov_len = psize;
-		writev(cm_ptr->socket, iov, 2);
+		len = writev(cm_ptr->socket, iov, 2);
 	} else {
-		writev(cm_ptr->socket, iov, 1);
+		len = writev(cm_ptr->socket, iov, 1);
+	}
+
+	if (len != iov[0].iov_len + psize) {
+		dapl_log(DAPL_DBG_TYPE_WARN,
+			 " CONN_REJ writev ERR %s len = %d, exp %d\n",
+			 strerror(errno), len,
+			 iov[0].iov_len + psize);
+		goto bail;
 	}
 
 	DAPL_CNTR(((DAPL_IA *)dapl_llist_peek_head(&cm_ptr->hca->ia_list_head)),
 			  reason == IB_CM_REJ_REASON_CONSUMER_REJ ?
 			  DCNT_IA_CM_USER_REJ_TX : DCNT_IA_CM_ERR_REJ_TX);
-
+bail:
 	/* release and cleanup CM object */
 	dapli_cm_free(cm_ptr);
 	return DAT_SUCCESS;
diff --git a/dapl/openib_scm/dapl_ib_util.h b/dapl/openib_scm/dapl_ib_util.h
old mode 100755
new mode 100644
index ad5bc60..d2473ae
--- a/dapl/openib_scm/dapl_ib_util.h
+++ b/dapl/openib_scm/dapl_ib_util.h
@@ -99,6 +99,7 @@ typedef struct _ib_hca_transport
 	DAPL_SOCKET		scm[2];
 	uint64_t		guid;
 	char 			guid_str[32];
+	char 			gid_str[48];
 	ib_named_attr_t		na;
 #ifdef DAT_IB_COLLECTIVES
 	/* Collective member device and address information */
diff --git a/dapl/openib_scm/device.c b/dapl/openib_scm/device.c
old mode 100755
new mode 100644
diff --git a/dapl/openib_scm/linux/openib_osd.h b/dapl/openib_scm/linux/openib_osd.h
old mode 100755
new mode 100644
diff --git a/dapl/openib_ucm/cm.c b/dapl/openib_ucm/cm.c
old mode 100755
new mode 100644
index 88dd890..14b75bc
--- a/dapl/openib_ucm/cm.c
+++ b/dapl/openib_ucm/cm.c
@@ -1695,9 +1695,10 @@ ud_bail:
 	if (cm->msg.daddr.ib.qp_type == IBV_QPT_UD) {
 		DAT_IB_EXTENSION_EVENT_DATA xevent;
 		uint16_t lid = ntohs(cm->msg.daddr.ib.lid);
-		
+
 		if (event == IB_CME_CONNECTED) {
 			struct ibv_ah **r_ah = cm->ep->qp_handle->ah;
+			uint32_t qpn = 0;
 
 			/* post EVENT, modify_qp, AH already created?, ucm msg */
 			xevent.status = 0;
@@ -1720,12 +1721,13 @@ ud_bail:
 			}
 			xevent.remote_ah.ah = r_ah[lid];
 
+			/* remote ia_addr reference includes ucm qpn, not IB qpn */
+			qpn = cm->msg.daddr.ib.qpn;
+			cm->msg.daddr.ib.qpn = cm->msg.dqpn;
 			dapl_os_memcpy(&xevent.remote_ah.ia_addr,
 				       &cm->msg.daddr,
 				       sizeof(union dcm_addr));
-
-			/* remote ia_addr reference includes ucm qpn, not IB qpn */
-			((union dcm_addr*)&xevent.remote_ah.ia_addr)->ib.qpn = cm->msg.dqpn;
+			cm->msg.daddr.ib.qpn = qpn;
 
 			dapl_dbg_log(DAPL_DBG_TYPE_EP,
 				     " ACTIVE: UD xevent ah %p qpn %x lid %x\n",
@@ -1910,6 +1912,7 @@ static void ucm_accept_rtu(dp_ib_cm_handle_t cm, ib_cm_msg_t *msg)
 		DAT_IB_EXTENSION_EVENT_DATA xevent;
 		uint16_t lid = ntohs(cm->msg.daddr.ib.lid);
 		struct ibv_ah **r_ah = cm->ep->qp_handle->ah;
+		uint32_t qpn;
 		
 		/* post EVENT, modify_qp, AH already created?, ucm msg */
 		xevent.status = 0;
@@ -1932,12 +1935,13 @@ static void ucm_accept_rtu(dp_ib_cm_handle_t cm, ib_cm_msg_t *msg)
 		}
 		xevent.remote_ah.ah = r_ah[lid];
 
+		/* remote ia_addr reference includes ucm qpn, not IB qpn */
+		qpn = cm->msg.daddr.ib.qpn;
+		cm->msg.daddr.ib.qpn = cm->msg.dqpn;
 		dapl_os_memcpy(&xevent.remote_ah.ia_addr,
 			       &cm->msg.daddr,
 			        sizeof(union dcm_addr));
-
-		/* remote ia_addr reference includes ucm qpn, not IB qpn */
-		((union dcm_addr*)&xevent.remote_ah.ia_addr)->ib.qpn = cm->msg.dqpn;
+		cm->msg.daddr.ib.qpn = qpn;
 
 		dapl_dbg_log(DAPL_DBG_TYPE_EP,
 			     " PASSIVE: UD xevent ah %p qpn %x lid %x\n",
diff --git a/dapl/openib_ucm/dapl_ib_util.h b/dapl/openib_ucm/dapl_ib_util.h
old mode 100755
new mode 100644
index 1abe1dc..89f3e70
--- a/dapl/openib_ucm/dapl_ib_util.h
+++ b/dapl/openib_ucm/dapl_ib_util.h
@@ -151,6 +151,7 @@ typedef struct _ib_hca_transport
 	uint8_t			*sid;  /* Sevice IDs, port space, bitarray? */
 	uint64_t		guid;
 	char 			guid_str[32];
+	char 			gid_str[48];
 	ib_named_attr_t		na;
 #ifdef DAT_IB_COLLECTIVES
 	/* Collective member device and address information */
diff --git a/dapl/openib_ucm/device.c b/dapl/openib_ucm/device.c
old mode 100755
new mode 100644
index 71fee5f..174dd8d
--- a/dapl/openib_ucm/device.c
+++ b/dapl/openib_ucm/device.c
@@ -533,8 +533,8 @@ static int ucm_service_create(IN DAPL_HCA *hca)
 		tp->cqe = dapl_os_get_env_val("DAPL_UCM_CQ_SIZE", DCM_CQ_SIZE);
 		tp->burst = dapl_os_get_env_val("DAPL_UCM_TX_BURST", DCM_TX_BURST);
 	} else {
-		tp->rep_time = dapl_os_get_env_val("DAPL_UCM_REP_TIME", DCM_REP_TIME*10);
-		tp->rtu_time = dapl_os_get_env_val("DAPL_UCM_RTU_TIME", DCM_RTU_TIME*10);
+		tp->rep_time = dapl_os_get_env_val("DAPL_UCM_REP_TIME", DCM_REP_TIME*20);
+		tp->rtu_time = dapl_os_get_env_val("DAPL_UCM_RTU_TIME", DCM_RTU_TIME*20);
 		tp->qpe = dapl_os_get_env_val("DAPL_UCM_QP_SIZE", DCM_QP_SIZE*10);
 		tp->cqe = dapl_os_get_env_val("DAPL_UCM_CQ_SIZE", DCM_CQ_SIZE*10);
 		tp->burst = dapl_os_get_env_val("DAPL_UCM_TX_BURST", DCM_TX_BURST*2);
diff --git a/dapl/openib_ucm/linux/openib_osd.h b/dapl/openib_ucm/linux/openib_osd.h
old mode 100755
new mode 100644
diff --git a/dapl/svc/mcm.c b/dapl/svc/mcm.c
old mode 100755
new mode 100644
index 7be40b8..7b24866
--- a/dapl/svc/mcm.c
+++ b/dapl/svc/mcm.c
@@ -347,12 +347,12 @@ int mcm_modify_qp(struct ibv_qp	*qp_handle,
 		qp_attr.dest_qp_num = ntohl(qpn);
 		qp_attr.rq_psn = 1;
 		qp_attr.path_mtu = m_qp->mtu ?
-				   min(m_qp->mtu, m_qp->smd->md->dev_attr.mtu):
-				   m_qp->smd->md->dev_attr.mtu;
+				   min(m_qp->mtu, m_qp->smd->dev_attr.mtu):
+				   m_qp->smd->dev_attr.mtu;
 		qp_attr.max_dest_rd_atomic = 16;
-		qp_attr.min_rnr_timer = m_qp->smd->md->dev_attr.rnr_timer;
+		qp_attr.min_rnr_timer = m_qp->smd->dev_attr.rnr_timer;
 		qp_attr.ah_attr.dlid = ntohs(lid);
-		if (gid && m_qp->smd->md->dev_attr.global) {
+		if (gid && m_qp->smd->dev_attr.global) {
 			mlog(1," Global Routing: GID %s \n",
 			     inet_ntop(AF_INET6, gid, gid_str, sizeof(gid_str)));
 			qp_attr.ah_attr.is_global = 1;
@@ -361,18 +361,18 @@ int mcm_modify_qp(struct ibv_qp	*qp_handle,
 			qp_attr.ah_attr.grh.dgid.global.interface_id =
 				gid->global.interface_id;
 			qp_attr.ah_attr.grh.hop_limit =
-				m_qp->smd->md->dev_attr.hop_limit;
+				m_qp->smd->dev_attr.hop_limit;
 			qp_attr.ah_attr.grh.traffic_class =
-				m_qp->smd->md->dev_attr.tclass;
+				m_qp->smd->dev_attr.tclass;
 		}
-		qp_attr.ah_attr.sl = m_qp->smd->md->dev_attr.sl;
+		qp_attr.ah_attr.sl = m_qp->smd->dev_attr.sl;
 		qp_attr.ah_attr.src_path_bits = 0;
 		qp_attr.ah_attr.port_num = m_qp->smd->md->port;
 
 		mlog(8,	" QPS_RTR: l_qpn %x type %d r_qpn 0x%x gid %p (%d) lid 0x%x"
 			" port %d qp %p qp_state %d rd_atomic %d rnr_timer %d\n",
 			qp_handle->qp_num, qp_handle->qp_type,
-			ntohl(qpn), gid, m_qp->smd->md->dev_attr.global,
+			ntohl(qpn), gid, m_qp->smd->dev_attr.global,
 			ntohs(lid), m_qp->smd->md->port, qp_handle,
 			qp_handle->state, qp_attr.max_dest_rd_atomic,
 			qp_attr.min_rnr_timer);
@@ -385,9 +385,9 @@ int mcm_modify_qp(struct ibv_qp	*qp_handle,
 			IBV_QP_RNR_RETRY |
 			IBV_QP_MAX_QP_RD_ATOMIC;
 		qp_attr.sq_psn = 1;
-		qp_attr.timeout = m_qp->smd->md->dev_attr.ack_timer;
-		qp_attr.retry_cnt = m_qp->smd->md->dev_attr.ack_retry;
-		qp_attr.rnr_retry = m_qp->smd->md->dev_attr.rnr_retry;
+		qp_attr.timeout = m_qp->smd->dev_attr.ack_timer;
+		qp_attr.retry_cnt = m_qp->smd->dev_attr.ack_retry;
+		qp_attr.rnr_retry = m_qp->smd->dev_attr.rnr_retry;
 		qp_attr.max_rd_atomic = 16;
 
 		mlog(8,	" QPS_RTS: psn %x rd_atomic %d ack %d "
@@ -406,7 +406,7 @@ int mcm_modify_qp(struct ibv_qp	*qp_handle,
 				IBV_ACCESS_REMOTE_READ |
 				IBV_ACCESS_REMOTE_ATOMIC |
 				IBV_ACCESS_MW_BIND;
-		qp_attr.pkey_index = m_qp->smd->md->dev_attr.pkey_idx;
+		qp_attr.pkey_index = m_qp->smd->dev_attr.pkey_idx;
 		qp_attr.port_num = m_qp->smd->md->port;
 		qp_attr.qkey = 0;
 
@@ -428,7 +428,7 @@ int mcm_modify_qp(struct ibv_qp	*qp_handle,
 				mlog(0,	" QPS_RTR: ERR %s l_qpn %x type %d r_qpn 0x%x gid %p (%d) lid 0x%x"
 					" port %d ep %p qp_state %d \n",
 					strerror(ret), qp_handle->qp_num, qp_handle->qp_type,
-					ntohl(qpn), gid, m_qp->smd->md->dev_attr.global,
+					ntohl(qpn), gid, m_qp->smd->dev_attr.global,
 					ntohs(lid), m_qp->smd->md->port, m_qp, m_qp->qp_attr2.cur_state);
 				break;
 			case IBV_QPS_RTS:
@@ -1493,7 +1493,7 @@ int mcm_cm_req_out(mcm_cm_t *m_cm)
 	m_cm->state = MCM_REP_PENDING;
 	m_cm->msg.op = htons(MCM_REQ);
 	m_cm->timer = mcm_time_us(); /* reset reply timer */
-	m_cm->msg.mtu = m_cm->smd->md->dev_attr.mtu; /* local MTU to peer */
+	m_cm->msg.mtu = m_cm->smd->dev_attr.mtu; /* local MTU to peer */
 
 	if (mcm_send(m_cm->md, &m_cm->msg, &m_cm->msg.p_data, ntohs(m_cm->msg.p_size)))
 		return -1;
diff --git a/dapl/svc/mix.c b/dapl/svc/mix.c
old mode 100755
new mode 100644
index 8e4e622..38e7599
--- a/dapl/svc/mix.c
+++ b/dapl/svc/mix.c
@@ -67,7 +67,7 @@ extern int mcm_cpu_model;
 static void mix_get_prov_attr(mcm_scif_dev_t *smd, dat_mix_prov_attr_t *pr_attr)
 {
 	memset(pr_attr, 0, sizeof(dat_mix_prov_attr_t));
-	memcpy(&pr_attr->dev_attr, &smd->md->dev_attr, sizeof(dat_mix_dev_attr_t));
+	memcpy(&pr_attr->dev_attr, &smd->dev_attr, sizeof(dat_mix_dev_attr_t));
 
 	mcm_get_attr(pr_attr);  /* CM attributes */
 	pr_attr->max_msg_sz = mix_max_msg_mb * 1024 * 1024;
@@ -1642,8 +1642,8 @@ int mix_cm_rep_in(mcm_cm_t *m_cm, dat_mcm_msg_t *pkt, int pkt_len)
 
 	/* Set QP MTU, if negotiated. 2K for compatibility */
 	m_cm->m_qp->mtu = pkt->mtu ?
-			  min(pkt->mtu, m_cm->md->dev_attr.mtu):
-			  m_cm->md->mtu_env ? m_cm->md->mtu_env : IBV_MTU_2048;
+			  min(pkt->mtu, m_cm->smd->dev_attr.mtu):
+			  m_cm->smd->mtu_env ? m_cm->smd->mtu_env : IBV_MTU_2048;
 	m_cm->msg.mtu = m_cm->m_qp->mtu; /* forward negotiated MTU */
 
 	mlog(2, " WRC: m_qp %p - WR 0x%Lx rkey 0x%x ln %d, sz %d end %d"
@@ -1821,7 +1821,7 @@ int mix_cm_req_in(mcm_cm_t *cm, dat_mcm_msg_t *pkt, int pkt_len)
 		 mcm_map_str(acm->msg.daddr2.ep_map),
 		 acm->md->addr.lid == acm->msg.daddr1.lid ? "platform":"fabric",
 		 ntohll(acm->msg.sys_guid), &msg, sizeof(dat_mcm_msg_t),
-		 cm->md->dev_attr.mtu, pkt->mtu);
+		 cm->smd->dev_attr.mtu, pkt->mtu);
 
 	if (pkt->p_size)
 		memcpy(acm->msg.p_data, pkt->p_data, ntohs(pkt->p_size));
@@ -2109,8 +2109,8 @@ static int mix_cm_rep_out(mcm_scif_dev_t *smd, dat_mix_cm_t *pmsg, scif_epd_t sc
 
 	/* Set QP MTU, if negotiated. 2K for compatibility */
 	m_cm->m_qp->mtu = m_cm->msg.mtu ?
-			  min(m_cm->msg.mtu, m_cm->md->dev_attr.mtu):
-			  m_cm->md->mtu_env ? m_cm->md->mtu_env : IBV_MTU_2048;
+			  min(m_cm->msg.mtu, smd->dev_attr.mtu):
+			  smd->mtu_env ? smd->mtu_env : IBV_MTU_2048;
 
 	if (qp) {
 		if (mcm_modify_qp(qp, IBV_QPS_RTR, dqpn, dlid, dgid))
diff --git a/dapl/svc/mpxy_in.c b/dapl/svc/mpxy_in.c
old mode 100755
new mode 100644
index bb48c69..9f38b29
--- a/dapl/svc/mpxy_in.c
+++ b/dapl/svc/mpxy_in.c
@@ -553,7 +553,6 @@ static int m_pi_send_wc(struct mcm_qp *m_qp, struct mcm_wr_rx *wr_rx, int status
 			wr_rx->wr.wr.rdma.remote_addr, wr_rx->wr.wr.rdma.rkey);
 		return ret;
 	}
-	m_qp->pi_rw_cnt++;
 
 	mlog(4," WC_rem hd %d tl %d, m_qp %p qpn 0x%x, m_cm %p\n",
 		m_qp->wc_hd_rem, m_qp->wc_tl_rem, m_qp, ib_qp->qp_num, m_qp->cm);
@@ -566,8 +565,8 @@ static void m_pi_post_writeto(struct mcm_qp *m_qp, struct mcm_wr_rx *wr_sig)
 	mcm_scif_dev_t *smd = m_qp->smd;
 	struct mcm_wr_rx *wr_rx;
 	struct mcm_sr *m_sr = NULL;
-	off_t l_off, l_off_wr, r_off;
-	int ret, i, l_start, l_end, l_len, sg_len, w_len, num_sge, wr_idx, wr_cnt = 0;
+	off_t l_off, l_off_wr, r_off = 0;
+	int ret, i, l_start, l_end, l_len, sg_len = 0, w_len, num_sge = 0, wr_idx, wr_cnt = 0;
 	int wt_flag;
 
 	wr_idx = m_qp->wr_tl_r_wt; /* from WT tail, process RR's posted until reaching wr_last */
@@ -801,15 +800,6 @@ void m_pi_req_event(struct mcm_qp *m_qp, struct mcm_wr_rx *wr_rx, struct ibv_wc
 		mpxy_unlock(&m_qp->rxlock);
 		write(m_qp->smd->md->mc->rx_pipe[1], "w", sizeof "w"); /* signal rx_thread */
 		sched_yield();
-	} else {
-		mlog(4, " WR_rx[%d] %p flgs %x %s complete - WR tl %d tl_wt %d hd %d\n",
-			  wr_rx->w_idx, wr_rx, wr_rx->flags,
-			  wc->opcode == IBV_WC_RDMA_READ ? "RR":"RW_IMM WC",
-			  m_qp->wr_tl_r, m_qp->wr_tl_r_wt, m_qp->wr_hd_r);
-
-		mpxy_lock(&m_qp->rxlock);
-		m_qp->pi_rw_cnt--; /* pending WC post_send */
-		mpxy_unlock(&m_qp->rxlock);
 	}
 }
 
diff --git a/dapl/svc/mpxy_out.c b/dapl/svc/mpxy_out.c
old mode 100755
new mode 100644
index 5c82703..1cff1d2
--- a/dapl/svc/mpxy_out.c
+++ b/dapl/svc/mpxy_out.c
@@ -1100,13 +1100,14 @@ retry:
 		       wc[i].vendor_err, wc[i].byte_len, wr_type);
 
 		/* Proxy_in -> */
-		if ((wr_type == WRID_RX_RR) || (wr_type == WRID_RX_RW_IMM)) {
+		if (wr_type == WRID_RX_RW_IMM) {  /* RW_imm WC */
+			continue;
+		}
+		if (wr_type == WRID_RX_RR) {
 			m_wr_rx = (struct mcm_wr_rx *)WRID_ADDR(wc[i].wr_id);
 			assert(m_wr_rx);
 			m_qp = (struct mcm_qp *)m_wr_rx->context;
 			assert(m_qp);
-			mlog(4," wr_rx_id[%d of %d] wr_rx %p m_qp %p\n",
-				i+1, ret, m_wr_rx, m_qp);
 			m_pi_req_event(m_qp, m_wr_rx, &wc[i], wr_type);
 			continue;
 
diff --git a/dapl/svc/mpxyd.c b/dapl/svc/mpxyd.c
old mode 100755
new mode 100644
index 668efa5..d6de5be
--- a/dapl/svc/mpxyd.c
+++ b/dapl/svc/mpxyd.c
@@ -229,7 +229,7 @@ static struct ibv_context *open_ib_device(struct mcm_ib_dev *md, char *name, int
 					ibctx = NULL;
 					goto bail;
 				}
-
+				md->dev_attr.mtu = port_attr.active_mtu;
 				md->dev_attr.rd_atom_in = device_attr.max_qp_rd_atom;
 				md->dev_attr.rd_atom_out = device_attr.max_qp_init_rd_atom;
 				md->ibdev = iblist[i];
@@ -788,10 +788,23 @@ found:
 	msg->hdr.status = MIX_SUCCESS;
 	msg->dev_attr.rd_atom_in = md->dev_attr.rd_atom_in;
 	msg->dev_attr.rd_atom_out = md->dev_attr.rd_atom_out;
+
+	/* MIC side changed MTU via DAPL_IB_MTU, cover new and old clients */
+	if ((msg->hdr.flags & MIX_OP_MTU) ||
+	    (msg->dev_attr.mtu != IBV_MTU_2048)) {
+		smd->mtu_env = msg->dev_attr.mtu;
+		smd->dev_attr.mtu = msg->dev_attr.mtu; /* set new MTU per MIC */
+	} else if (msg->hdr.flags & MIX_OP_SET) {
+		smd->dev_attr.mtu = md->dev_attr.mtu; /* MIC set to active_MTU */
+	} else {
+		smd->dev_attr.mtu = IBV_MTU_2048; /* run compat_mode */
+	}
+	msg->dev_attr.mtu = smd->dev_attr.mtu; /* return MTU settings */
+
 	if (!(mcm_ib_inline_data(md->ibctx))  || !mcm_ib_inline)
 		msg->dev_attr.max_inline = 0;
 
-	memcpy(&md->dev_attr, &msg->dev_attr, sizeof(dat_mix_dev_attr_t));
+	memcpy(&smd->dev_attr, &msg->dev_attr, sizeof(dat_mix_dev_attr_t)); /* save to smd */
 	memcpy(&msg->dev_addr, &md->addr, sizeof(dat_mcm_addr_t)); /* proxy CM lid */
 
 	/* intra-node: restore MIC lid, gid */
@@ -799,10 +812,6 @@ found:
 		msg->dev_addr.lid = md->m_lid;
 		memcpy(msg->dev_addr.gid, md->m_gid, 16);
 	}
-
-	/* MTU changed via DAPL_IB_MTU */
-	if (msg->hdr.flags & MIX_OP_MTU)
-		md->mtu_env = md->dev_attr.mtu;
 err:
 	if (!smd) {
 		mlog(1, " WARN: open failed for %s - %d\n", msg->name, msg->port);
@@ -825,7 +834,8 @@ err:
 	mlog(1, " MIC client: mdev[%d] %p->%p mic%d[%d] -> %s[%d] port %d lid %x %s mtu %d (%d)\n",
 		md->smd_list.tid, md, smd, mc->scif_id-1, mc->numa_node, msg->name,
 		md->numa_node, msg->port, ntohs(msg->dev_addr.lid), mcm_map_str(md->addr.ep_map),
-		md->dev_attr.mtu, md->mtu_env);
+		smd ? smd->dev_attr.mtu:md->dev_attr.mtu,
+		smd ? smd->mtu_env:0);
 bail:
 	mpxy_unlock(&mc->oplock);
 	mpxy_unlock(&mc->cmlock);
diff --git a/dapl/svc/mpxyd.h b/dapl/svc/mpxyd.h
old mode 100755
new mode 100644
index ec31cc0..709aa46
--- a/dapl/svc/mpxyd.h
+++ b/dapl/svc/mpxyd.h
@@ -132,7 +132,6 @@ typedef struct mcm_ib_dev {
 	int 			numa_node;
 	int			indata;
 	void			*cntrs;
-	uint8_t			mtu_env;
 
 } mcm_ib_dev_t;
 
@@ -369,6 +368,8 @@ typedef struct mcm_scif_dev {
 	int			m_buf_hd_r;	/* Proxy Buffer WC queue hd */
 	int			m_buf_end_r;	/* Proxy Buffer WC queue end */
 	char			*cmd_buf;	/* operation command buffer  */
+	struct dat_mix_dev_attr	dev_attr;	/* Manage attributes per MIC client open */
+	uint8_t			mtu_env;	/* mtu override with DAPL_IB_MTU */
 #ifdef MCM_PROFILE
 	uint16_t		m_hd_ro;	/* HD,TL tracking */
 	uint16_t		m_tl_ro;
diff --git a/dapl/svc/util.c b/dapl/svc/util.c
old mode 100755
new mode 100644
diff --git a/dapl/udapl/dapl_cno_create.c b/dapl/udapl/dapl_cno_create.c
old mode 100755
new mode 100644
diff --git a/dapl/udapl/dapl_cno_free.c b/dapl/udapl/dapl_cno_free.c
old mode 100755
new mode 100644
diff --git a/dapl/udapl/dapl_cno_modify_agent.c b/dapl/udapl/dapl_cno_modify_agent.c
old mode 100755
new mode 100644
diff --git a/dapl/udapl/dapl_cno_query.c b/dapl/udapl/dapl_cno_query.c
old mode 100755
new mode 100644
diff --git a/dapl/udapl/dapl_cno_wait.c b/dapl/udapl/dapl_cno_wait.c
old mode 100755
new mode 100644
diff --git a/dapl/udapl/dapl_evd_clear_unwaitable.c b/dapl/udapl/dapl_evd_clear_unwaitable.c
old mode 100755
new mode 100644
diff --git a/dapl/udapl/dapl_evd_create.c b/dapl/udapl/dapl_evd_create.c
old mode 100755
new mode 100644
diff --git a/dapl/udapl/dapl_evd_disable.c b/dapl/udapl/dapl_evd_disable.c
old mode 100755
new mode 100644
diff --git a/dapl/udapl/dapl_evd_enable.c b/dapl/udapl/dapl_evd_enable.c
old mode 100755
new mode 100644
diff --git a/dapl/udapl/dapl_evd_modify_cno.c b/dapl/udapl/dapl_evd_modify_cno.c
old mode 100755
new mode 100644
diff --git a/dapl/udapl/dapl_evd_query.c b/dapl/udapl/dapl_evd_query.c
old mode 100755
new mode 100644
diff --git a/dapl/udapl/dapl_evd_set_unwaitable.c b/dapl/udapl/dapl_evd_set_unwaitable.c
old mode 100755
new mode 100644
diff --git a/dapl/udapl/dapl_evd_wait.c b/dapl/udapl/dapl_evd_wait.c
old mode 100755
new mode 100644
diff --git a/dapl/udapl/dapl_init.c b/dapl/udapl/dapl_init.c
old mode 100755
new mode 100644
diff --git a/dapl/udapl/dapl_lmr_create.c b/dapl/udapl/dapl_lmr_create.c
old mode 100755
new mode 100644
diff --git a/dapl/udapl/libdaplomcm.map b/dapl/udapl/libdaplomcm.map
old mode 100755
new mode 100644
diff --git a/dapl/udapl/linux/dapl_osd.c b/dapl/udapl/linux/dapl_osd.c
old mode 100755
new mode 100644
diff --git a/dapl/udapl/linux/dapl_osd.h b/dapl/udapl/linux/dapl_osd.h
old mode 100755
new mode 100644
diff --git a/dat/common/dat_dictionary.c b/dat/common/dat_dictionary.c
old mode 100755
new mode 100644
diff --git a/dat/common/dat_dictionary.h b/dat/common/dat_dictionary.h
old mode 100755
new mode 100644
diff --git a/dat/common/dat_dr.c b/dat/common/dat_dr.c
old mode 100755
new mode 100644
diff --git a/dat/common/dat_dr.h b/dat/common/dat_dr.h
old mode 100755
new mode 100644
diff --git a/dat/common/dat_init.c b/dat/common/dat_init.c
old mode 100755
new mode 100644
diff --git a/dat/common/dat_init.h b/dat/common/dat_init.h
old mode 100755
new mode 100644
diff --git a/dat/common/dat_sr.h b/dat/common/dat_sr.h
old mode 100755
new mode 100644
diff --git a/dat/common/dat_strerror.c b/dat/common/dat_strerror.c
old mode 100755
new mode 100644
diff --git a/dat/include/dat2/dat_error.h b/dat/include/dat2/dat_error.h
old mode 100755
new mode 100644
diff --git a/dat/include/dat2/dat_platform_specific.h b/dat/include/dat2/dat_platform_specific.h
old mode 100755
new mode 100644
diff --git a/dat/include/dat2/dat_registry.h b/dat/include/dat2/dat_registry.h
old mode 100755
new mode 100644
diff --git a/dat/include/dat2/dat_vendor_specific.h b/dat/include/dat2/dat_vendor_specific.h
old mode 100755
new mode 100644
diff --git a/dat/include/dat2/udat_config.h b/dat/include/dat2/udat_config.h
old mode 100755
new mode 100644
diff --git a/dat/include/dat2/udat_vendor_specific.h b/dat/include/dat2/udat_vendor_specific.h
old mode 100755
new mode 100644
diff --git a/dat/udat/linux/dat_osd.c b/dat/udat/linux/dat_osd.c
old mode 100755
new mode 100644
diff --git a/dat/udat/linux/dat_osd.h b/dat/udat/linux/dat_osd.h
old mode 100755
new mode 100644
diff --git a/dat/udat/udat_api.c b/dat/udat/udat_api.c
old mode 100755
new mode 100644
diff --git a/dat/udat/udat_sr_parser.c b/dat/udat/udat_sr_parser.c
old mode 100755
new mode 100644
diff --git a/dat/udat/udat_sr_parser.h b/dat/udat/udat_sr_parser.h
old mode 100755
new mode 100644
diff --git a/doc/dat.conf b/doc/dat.conf
old mode 100755
new mode 100644
diff --git a/doc/mpxyd.conf b/doc/mpxyd.conf
old mode 100755
new mode 100644
diff --git a/m4/libtool.m4 b/m4/libtool.m4
old mode 100755
new mode 100644
diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4
old mode 100755
new mode 100644
diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4
old mode 100755
new mode 100644
diff --git a/m4/ltversion.m4 b/m4/ltversion.m4
old mode 100755
new mode 100644
diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4
old mode 100755
new mode 100644
diff --git a/man/dapltest.1 b/man/dapltest.1
old mode 100755
new mode 100644
diff --git a/man/dat.conf.5 b/man/dat.conf.5
old mode 100755
new mode 100644
diff --git a/mpxyd.init.in b/mpxyd.init.in
old mode 100755
new mode 100644
diff --git a/test/dapltest/README b/test/dapltest/README
old mode 100755
new mode 100644
diff --git a/test/dapltest/cmd/dapl_fft_cmd.c b/test/dapltest/cmd/dapl_fft_cmd.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/cmd/dapl_getopt.c b/test/dapltest/cmd/dapl_getopt.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/cmd/dapl_limit_cmd.c b/test/dapltest/cmd/dapl_limit_cmd.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/cmd/dapl_main.c b/test/dapltest/cmd/dapl_main.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/cmd/dapl_netaddr.c b/test/dapltest/cmd/dapl_netaddr.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/cmd/dapl_params.c b/test/dapltest/cmd/dapl_params.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/cmd/dapl_performance_cmd.c b/test/dapltest/cmd/dapl_performance_cmd.c
old mode 100755
new mode 100644
index de38abf..b6049af
--- a/test/dapltest/cmd/dapl_performance_cmd.c
+++ b/test/dapltest/cmd/dapl_performance_cmd.c
@@ -282,7 +282,7 @@ void DT_Performance_Cmd_Print(Performance_Cmd_t * cmd)
 	DT_Mdep_printf("-------------------------------------\n");
 	DT_Mdep_printf("PerfCmd.server_name              : %s\n",
 		       cmd->server_name);
-	DT_Mdep_printf("PerfCmd.server_port_number       : %d\n",
+	DT_Mdep_printf("PerfCmd.server_port_number       : %lu\n",
 		       cmd->port);
 	DT_Mdep_printf("PerfCmd.dapl_name                : %s\n",
 		       cmd->dapl_name);
diff --git a/test/dapltest/cmd/dapl_qos_util.c b/test/dapltest/cmd/dapl_qos_util.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/cmd/dapl_quit_cmd.c b/test/dapltest/cmd/dapl_quit_cmd.c
old mode 100755
new mode 100644
index ba8e708..8711a5c
--- a/test/dapltest/cmd/dapl_quit_cmd.c
+++ b/test/dapltest/cmd/dapl_quit_cmd.c
@@ -136,5 +136,5 @@ void DT_Quit_Cmd_Print(Quit_Cmd_t * cmd)
 {
 	DT_Mdep_printf("Quit_Cmd.server_name: %s\n", cmd->server_name);
 	DT_Mdep_printf("Quit_Cmd.device_name: %s\n", cmd->device_name);
-	DT_Mdep_printf("Quit_Cmd.port: %s\n", cmd->port);
+	DT_Mdep_printf("Quit_Cmd.port: %lu\n", cmd->port);
 }
diff --git a/test/dapltest/cmd/dapl_server_cmd.c b/test/dapltest/cmd/dapl_server_cmd.c
old mode 100755
new mode 100644
index 219b8de..a7fdea5
--- a/test/dapltest/cmd/dapl_server_cmd.c
+++ b/test/dapltest/cmd/dapl_server_cmd.c
@@ -117,5 +117,5 @@ void DT_Server_Cmd_Print(Server_Cmd_t * Server_Cmd)
 {
 	DT_Mdep_printf("Server_Cmd.debug:       %d\n", Server_Cmd->debug);
 	DT_Mdep_printf("Server_Cmd.dapl_name: %s\n", Server_Cmd->dapl_name);
-	DT_Mdep_printf("Server_Cmd.port:       %d\n", Server_Cmd->port);
+	DT_Mdep_printf("Server_Cmd.port:       %lu\n", Server_Cmd->port);
 }
diff --git a/test/dapltest/cmd/dapl_transaction_cmd.c b/test/dapltest/cmd/dapl_transaction_cmd.c
old mode 100755
new mode 100644
index 80b493d..7f1800b
--- a/test/dapltest/cmd/dapl_transaction_cmd.c
+++ b/test/dapltest/cmd/dapl_transaction_cmd.c
@@ -422,7 +422,7 @@ void DT_Transaction_Cmd_Print(Transaction_Cmd_t * cmd)
 	DT_Mdep_printf("-------------------------------------\n");
 	DT_Mdep_printf("TransCmd.server_name              : %s\n",
 		       cmd->server_name);
-	DT_Mdep_printf("TransCmd.server_port_number       : %d\n",
+	DT_Mdep_printf("TransCmd.server_port_number       : %lu\n",
 		       cmd->port);
 	DT_Mdep_printf("TransCmd.num_iterations           : %d\n",
 		       cmd->num_iterations);
diff --git a/test/dapltest/common/dapl_endian.c b/test/dapltest/common/dapl_endian.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/common/dapl_global.c b/test/dapltest/common/dapl_global.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/common/dapl_performance_cmd_util.c b/test/dapltest/common/dapl_performance_cmd_util.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/common/dapl_quit_cmd_util.c b/test/dapltest/common/dapl_quit_cmd_util.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/common/dapl_transaction_cmd_util.c b/test/dapltest/common/dapl_transaction_cmd_util.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/include/dapl_bpool.h b/test/dapltest/include/dapl_bpool.h
old mode 100755
new mode 100644
diff --git a/test/dapltest/include/dapl_client_info.h b/test/dapltest/include/dapl_client_info.h
old mode 100755
new mode 100644
diff --git a/test/dapltest/include/dapl_common.h b/test/dapltest/include/dapl_common.h
old mode 100755
new mode 100644
diff --git a/test/dapltest/include/dapl_execute.h b/test/dapltest/include/dapl_execute.h
old mode 100755
new mode 100644
diff --git a/test/dapltest/include/dapl_fft_cmd.h b/test/dapltest/include/dapl_fft_cmd.h
old mode 100755
new mode 100644
diff --git a/test/dapltest/include/dapl_fft_util.h b/test/dapltest/include/dapl_fft_util.h
old mode 100755
new mode 100644
index 17675cf..7b22e7e
--- a/test/dapltest/include/dapl_fft_util.h
+++ b/test/dapltest/include/dapl_fft_util.h
@@ -38,14 +38,12 @@
     else { \
 	DT_assert_fail(test_num, #x, __FILE__, __BASE_FILE__, __LINE__); \
 	DT_Tdep_PT_Printf(test_num,"Error = %d, %s\n", rc, DT_RetToString(rc)); \
-	res = 0; \
 	goto cleanup; \
     }
 
 #define DT_assert(test_num, x)   if(x) ; \
     else { \
 	DT_assert_fail(test_num, #x, __FILE__, __BASE_FILE__, __LINE__); \
-	res = 0; \
 	goto cleanup; \
     }
 
diff --git a/test/dapltest/include/dapl_getopt.h b/test/dapltest/include/dapl_getopt.h
old mode 100755
new mode 100644
diff --git a/test/dapltest/include/dapl_global.h b/test/dapltest/include/dapl_global.h
old mode 100755
new mode 100644
diff --git a/test/dapltest/include/dapl_limit_cmd.h b/test/dapltest/include/dapl_limit_cmd.h
old mode 100755
new mode 100644
diff --git a/test/dapltest/include/dapl_mdep.h b/test/dapltest/include/dapl_mdep.h
old mode 100755
new mode 100644
diff --git a/test/dapltest/include/dapl_memlist.h b/test/dapltest/include/dapl_memlist.h
old mode 100755
new mode 100644
diff --git a/test/dapltest/include/dapl_params.h b/test/dapltest/include/dapl_params.h
old mode 100755
new mode 100644
diff --git a/test/dapltest/include/dapl_performance_cmd.h b/test/dapltest/include/dapl_performance_cmd.h
old mode 100755
new mode 100644
diff --git a/test/dapltest/include/dapl_performance_stats.h b/test/dapltest/include/dapl_performance_stats.h
old mode 100755
new mode 100644
diff --git a/test/dapltest/include/dapl_performance_test.h b/test/dapltest/include/dapl_performance_test.h
old mode 100755
new mode 100644
diff --git a/test/dapltest/include/dapl_proto.h b/test/dapltest/include/dapl_proto.h
old mode 100755
new mode 100644
index fb5a293..0e1038c
--- a/test/dapltest/include/dapl_proto.h
+++ b/test/dapltest/include/dapl_proto.h
@@ -123,6 +123,10 @@ void            DT_transaction_stats_set_ready (DT_Tdep_Print_Head* phead,
 void            DT_transaction_stats2_set_ready (DT_Tdep_Print_Head* phead, 
 					Transaction_Stats_t* transaction_stats);
 
+void		DT_transaction_stats_reset_wait_count(DT_Tdep_Print_Head * phead,
+					Transaction_Stats_t * transaction_stats,
+					unsigned int num);
+
 bool            DT_transaction_stats_wait_for_all (DT_Tdep_Print_Head* phead,
 					Transaction_Stats_t* transaction_stats);
 
diff --git a/test/dapltest/include/dapl_quit_cmd.h b/test/dapltest/include/dapl_quit_cmd.h
old mode 100755
new mode 100644
diff --git a/test/dapltest/include/dapl_server_cmd.h b/test/dapltest/include/dapl_server_cmd.h
old mode 100755
new mode 100644
diff --git a/test/dapltest/include/dapl_server_info.h b/test/dapltest/include/dapl_server_info.h
old mode 100755
new mode 100644
diff --git a/test/dapltest/include/dapl_tdep.h b/test/dapltest/include/dapl_tdep.h
old mode 100755
new mode 100644
diff --git a/test/dapltest/include/dapl_tdep_print.h b/test/dapltest/include/dapl_tdep_print.h
old mode 100755
new mode 100644
diff --git a/test/dapltest/include/dapl_test_data.h b/test/dapltest/include/dapl_test_data.h
old mode 100755
new mode 100644
diff --git a/test/dapltest/include/dapl_transaction_cmd.h b/test/dapltest/include/dapl_transaction_cmd.h
old mode 100755
new mode 100644
diff --git a/test/dapltest/include/dapl_transaction_stats.h b/test/dapltest/include/dapl_transaction_stats.h
old mode 100755
new mode 100644
diff --git a/test/dapltest/include/dapl_transaction_test.h b/test/dapltest/include/dapl_transaction_test.h
old mode 100755
new mode 100644
diff --git a/test/dapltest/include/dapl_version.h b/test/dapltest/include/dapl_version.h
old mode 100755
new mode 100644
diff --git a/test/dapltest/mdep/linux/dapl_mdep_user.c b/test/dapltest/mdep/linux/dapl_mdep_user.c
old mode 100755
new mode 100644
index d2b45bd..9dd40e3
--- a/test/dapltest/mdep/linux/dapl_mdep_user.c
+++ b/test/dapltest/mdep/linux/dapl_mdep_user.c
@@ -433,11 +433,9 @@ int DT_Mdep_wait_object_init(IN DT_WAIT_OBJECT * wait_obj)
 
 int DT_Mdep_wait_object_wait(IN DT_WAIT_OBJECT * wait_obj, IN int timeout_val)
 {
-	int dat_status;
 	int pthread_status;
 	struct timespec future;
 
-	dat_status = 0;
 	pthread_status = 0;
 
 	if (timeout_val != DAT_TIMEOUT_INFINITE) {
diff --git a/test/dapltest/mdep/linux/dapl_mdep_user.h b/test/dapltest/mdep/linux/dapl_mdep_user.h
index 772f2dd..2eeed91 100755
--- a/test/dapltest/mdep/linux/dapl_mdep_user.h
+++ b/test/dapltest/mdep/linux/dapl_mdep_user.h
@@ -203,6 +203,6 @@ do { \
 /*
  * Release processor to reschedule
  */
-#define DT_Mdep_yield pthread_yield
+#define DT_Mdep_yield sched_yield
 
 #endif
diff --git a/test/dapltest/test/dapl_bpool.c b/test/dapltest/test/dapl_bpool.c
old mode 100755
new mode 100644
index e06f2fc..9ee32f7
--- a/test/dapltest/test/dapl_bpool.c
+++ b/test/dapltest/test/dapl_bpool.c
@@ -246,17 +246,8 @@ DT_Bpool_Destroy(Per_Test_Data_t * pt_ptr,
 	if (bpool_ptr) {
 		if (bpool_ptr->alloc_ptr) {
 			if (bpool_ptr->rmr_handle) {
-				DAT_LMR_TRIPLET iov;
-				DAT_RMR_COOKIE cookie;
 				DAT_RETURN ret;
 
-				iov.virtual_address = bpool_ptr->reg_addr;
-				iov.segment_length = 0;	/* un-bind */
-				iov.lmr_context = bpool_ptr->lmr_context;
-				cookie.as_64 = (DAT_UINT64) 0UL;
-				cookie.as_ptr =
-				    (DAT_PVOID) (uintptr_t) bpool_ptr->reg_addr;
-
 				/*
 				 * Do not attempt to unbind here. The remote node
 				 * is going through the same logic and may disconnect
diff --git a/test/dapltest/test/dapl_client.c b/test/dapltest/test/dapl_client.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/test/dapl_client_info.c b/test/dapltest/test/dapl_client_info.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/test/dapl_cnxn.c b/test/dapltest/test/dapl_cnxn.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/test/dapl_execute.c b/test/dapltest/test/dapl_execute.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/test/dapl_fft_connmgt.c b/test/dapltest/test/dapl_fft_connmgt.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/test/dapl_fft_endpoint.c b/test/dapltest/test/dapl_fft_endpoint.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/test/dapl_fft_hwconn.c b/test/dapltest/test/dapl_fft_hwconn.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/test/dapl_fft_mem.c b/test/dapltest/test/dapl_fft_mem.c
old mode 100755
new mode 100644
index 4a89d4e..dda9545
--- a/test/dapltest/test/dapl_fft_mem.c
+++ b/test/dapltest/test/dapl_fft_mem.c
@@ -47,7 +47,6 @@ int DT_mem_generic(Params_t * params_ptr, FFT_Cmd_t * cmd, int flag)
 	int res;
 	DAT_VLEN buffer_size;
 	DAT_IA_HANDLE ia_handle;
-	DAT_PZ_HANDLE pz_handle;
 	DT_Tdep_Print_Head *phead;
 	phead = params_ptr->phead;
 	rc = 0;
@@ -58,7 +57,6 @@ int DT_mem_generic(Params_t * params_ptr, FFT_Cmd_t * cmd, int flag)
 	reg_addr = 0;
 	alloc_ptr = 0;
 	ia_handle = 0;
-	pz_handle = 0;
 
 	DT_fft_init_client(params_ptr, cmd, &conn);
 	DT_assert(phead, NULL != conn.ia_handle);
@@ -78,10 +76,6 @@ int DT_mem_generic(Params_t * params_ptr, FFT_Cmd_t * cmd, int flag)
 
 	ia_handle = conn.ia_handle;
 
-	if (flag != 3) {
-		pz_handle = conn.pz_handle;
-	}
-
 	if (flag != 4) {
 		DT_Tdep_PT_Printf(phead, "Registering memory\n");
 		rc = DT_Tdep_lmr_create(ia_handle, DAT_MEM_TYPE_VIRTUAL, region, buffer_size, conn.pz_handle, DAT_MEM_PRIV_ALL_FLAG, &lmr_handle, &lmr_context, NULL,	/* FIXME */
diff --git a/test/dapltest/test/dapl_fft_pz.c b/test/dapltest/test/dapl_fft_pz.c
old mode 100755
new mode 100644
index 77f818b..8faa359
--- a/test/dapltest/test/dapl_fft_pz.c
+++ b/test/dapltest/test/dapl_fft_pz.c
@@ -39,7 +39,6 @@ int DT_pz_case0(Params_t * params_ptr, FFT_Cmd_t * cmd)
 	char *dev_name;
 	DAT_IA_HANDLE ia_handle;
 	DAT_PZ_HANDLE pz_handle;
-	DAT_EVD_HANDLE evd_handle;
 	DAT_RETURN rc;
 	int res;
 	DT_Tdep_Print_Head *phead;
@@ -51,7 +50,6 @@ int DT_pz_case0(Params_t * params_ptr, FFT_Cmd_t * cmd)
 	res = 1;
 	ia_handle = 0;
 	pz_handle = 0;
-	evd_handle = DAT_HANDLE_NULL;
 	dev_name = cmd->device_name;
 
 	rc = DT_ia_open(dev_name, &ia_handle);
diff --git a/test/dapltest/test/dapl_fft_queryinfo.c b/test/dapltest/test/dapl_fft_queryinfo.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/test/dapl_fft_test.c b/test/dapltest/test/dapl_fft_test.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/test/dapl_fft_util.c b/test/dapltest/test/dapl_fft_util.c
old mode 100755
new mode 100644
index 5afd9fb..e89e5cb
--- a/test/dapltest/test/dapl_fft_util.c
+++ b/test/dapltest/test/dapl_fft_util.c
@@ -144,7 +144,6 @@ void DT_fft_init_conn_struct(FFT_Connection_t * conn)
 void DT_fft_init_client(Params_t * params_ptr, FFT_Cmd_t * cmd,
 			FFT_Connection_t * conn)
 {
-	int res;
 	DAT_RETURN rc = 0;
 	DT_Tdep_Print_Head *phead;
 	phead = params_ptr->phead;
@@ -248,7 +247,6 @@ int DT_fft_destroy_conn_struct(Params_t * params_ptr, FFT_Connection_t * conn)
 void DT_fft_init_server(Params_t * params_ptr, FFT_Cmd_t * cmd,
 			FFT_Connection_t * conn)
 {
-	int res;
 	DAT_RETURN rc = 0;
 	DT_Tdep_Print_Head *phead;
 	phead = params_ptr->phead;
@@ -290,7 +288,6 @@ void DT_fft_init_server(Params_t * params_ptr, FFT_Cmd_t * cmd,
 /* helper function that allows a server to listen for a connection */
 void DT_fft_listen(Params_t * params_ptr, FFT_Connection_t * conn)
 {
-	int res;
 	DAT_RETURN rc = 0;
 	DT_Tdep_Print_Head *phead;
 	phead = params_ptr->phead;
@@ -320,7 +317,6 @@ void DT_fft_listen(Params_t * params_ptr, FFT_Connection_t * conn)
 int DT_fft_connect(Params_t * params_ptr, FFT_Connection_t * conn)
 {
 	int wait_count;
-	int res;
 	DAT_RETURN rc = 0;
 	DT_Tdep_Print_Head *phead;
 	phead = params_ptr->phead;
diff --git a/test/dapltest/test/dapl_limit.c b/test/dapltest/test/dapl_limit.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/test/dapl_memlist.c b/test/dapltest/test/dapl_memlist.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/test/dapl_performance_client.c b/test/dapltest/test/dapl_performance_client.c
old mode 100755
new mode 100644
index 169a212..62fcce1
--- a/test/dapltest/test/dapl_performance_client.c
+++ b/test/dapltest/test/dapl_performance_client.c
@@ -42,7 +42,6 @@ DT_Performance_Test_Client(Params_t * params_ptr,
 	Performance_Test_t *test_ptr = NULL;
 	int connected = 1;
 	DT_Tdep_Print_Head *phead;
-	DAT_RETURN rc;
 
 	phead = pt_ptr->Params.phead;
 
@@ -275,7 +274,6 @@ DT_Performance_Test_Client_Phase2(DT_Tdep_Print_Head * phead,
 	Performance_Test_Op_t *op;
 	DT_Mdep_TimeStamp pre_ts;
 	DT_Mdep_TimeStamp post_ts;
-	unsigned long int bytes;
 	unsigned int i;
 
 	/*
@@ -286,8 +284,6 @@ DT_Performance_Test_Client_Phase2(DT_Tdep_Print_Head * phead,
 	op = &ep_context->op;
 	iov = DT_Bpool_GetIOV(op->bp, 0);
 
-	bytes = op->seg_size * op->num_segs;
-
 	/* Prep the inputs */
 	for (i = 0; i < op->num_segs; i++) {
 		iov[i].virtual_address = (DAT_VADDR) (uintptr_t)
diff --git a/test/dapltest/test/dapl_performance_server.c b/test/dapltest/test/dapl_performance_server.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/test/dapl_performance_stats.c b/test/dapltest/test/dapl_performance_stats.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/test/dapl_performance_util.c b/test/dapltest/test/dapl_performance_util.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/test/dapl_quit_util.c b/test/dapltest/test/dapl_quit_util.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/test/dapl_server.c b/test/dapltest/test/dapl_server.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/test/dapl_server_info.c b/test/dapltest/test/dapl_server_info.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/test/dapl_test_data.c b/test/dapltest/test/dapl_test_data.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/test/dapl_test_util.c b/test/dapltest/test/dapl_test_util.c
old mode 100755
new mode 100644
index f649b28..89b60b6
--- a/test/dapltest/test/dapl_test_util.c
+++ b/test/dapltest/test/dapl_test_util.c
@@ -239,10 +239,6 @@ DT_cr_event_wait(DT_Tdep_Print_Head * phead,
 		 DAT_EVD_HANDLE evd_handle,
 		 DAT_CR_ARRIVAL_EVENT_DATA * cr_stat_p)
 {
-	int err_cnt;
-
-	err_cnt = 0;
-
 	for (;;) {
 		DAT_RETURN ret;
 		DAT_EVENT event;
@@ -415,7 +411,7 @@ DT_dto_event_poll(DT_Tdep_Print_Head * phead,
 		  DAT_EVD_HANDLE evd_handle,
 		  DAT_DTO_COMPLETION_EVENT_DATA * dto_statusp)
 {
-	for (;;DT_Mdep_yield()) {
+	do {
 		DAT_RETURN ret;
 		DAT_EVENT event;
 
@@ -450,7 +446,8 @@ DT_dto_event_poll(DT_Tdep_Print_Head * phead,
 		DT_Tdep_PT_Printf(phead,
 				  "Warning: dto_event_poll swallowing %s event\n",
 				  DT_EventToSTr(event.event_number));
-	}
+
+	} while (!DT_Mdep_yield());
 
 	return (false);
 }
diff --git a/test/dapltest/test/dapl_thread.c b/test/dapltest/test/dapl_thread.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/test/dapl_transaction_stats.c b/test/dapltest/test/dapl_transaction_stats.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/test/dapl_transaction_test.c b/test/dapltest/test/dapl_transaction_test.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/test/dapl_transaction_util.c b/test/dapltest/test/dapl_transaction_util.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/test/dapl_util.c b/test/dapltest/test/dapl_util.c
old mode 100755
new mode 100644
diff --git a/test/dapltest/udapl/udapl_tdep.c b/test/dapltest/udapl/udapl_tdep.c
old mode 100755
new mode 100644
diff --git a/test/dtest/README b/test/dtest/README
old mode 100755
new mode 100644
diff --git a/test/dtest/dtest.c b/test/dtest/dtest.c
index e61e000..a9f3cb2 100755
--- a/test/dtest/dtest.c
+++ b/test/dtest/dtest.c
@@ -166,12 +166,11 @@ static DAT_RMR_TRIPLET *p_rmr_rcv;
 static DAT_RMR_TRIPLET *p_rmr_snd;
 
 /* rdma pointers */
-char *rbuf = NULL;
-char *sbuf = NULL;
-int status;
+static char *rbuf = NULL;
+static char *sbuf = NULL;
 
 /* timers */
-double start, stop, total_us, total_sec;
+static double start, stop;
 
 struct dt_time {
 	double total;
@@ -194,7 +193,7 @@ struct dt_time {
 	double conn;
 };
 
-struct dt_time ts;
+static struct dt_time ts;
 
 /* defaults */
 static int all_data_sizes = 0;
@@ -233,28 +232,29 @@ static int data_check = 0;
 /* forward prototypes */
 const char *DT_RetToStr(DAT_RETURN ret_value);
 const char *DT_EventToStr(DAT_EVENT_NUMBER event_code);
-void print_usage(void);
-double get_time(void);
-void init_data(void);
 
-DAT_RETURN send_msg(void *data,
+static void print_usage(void);
+static double get_time(void);
+static void init_data(void);
+
+static DAT_RETURN send_msg(void *data,
 		    DAT_COUNT size,
 		    DAT_LMR_CONTEXT context,
 		    DAT_DTO_COOKIE cookie, DAT_COMPLETION_FLAGS flags);
 
-DAT_RETURN connect_ep(char *hostname,
+static DAT_RETURN connect_ep(char *hostname,
 		      DAT_CONN_QUAL conn_id,
 		      struct sockaddr *ser_sa);
-void disconnect_ep(void);
-DAT_RETURN register_rdma_memory(void);
-DAT_RETURN unregister_rdma_memory(void);
-DAT_RETURN create_events(void);
-DAT_RETURN destroy_events(void);
-DAT_RETURN do_rdma_write_imm_with_msg(void);
-DAT_RETURN do_rdma_write_with_msg(void);
-DAT_RETURN do_rdma_write_ping_pong(int p2, int bytes);
-DAT_RETURN do_rdma_read_with_msg(void);
-DAT_RETURN do_ping_pong_msg(void);
+static void disconnect_ep(void);
+static DAT_RETURN register_rdma_memory(void);
+static DAT_RETURN unregister_rdma_memory(void);
+static DAT_RETURN create_events(void);
+static DAT_RETURN destroy_events(void);
+static DAT_RETURN do_rdma_write_imm_with_msg(void);
+static DAT_RETURN do_rdma_write_with_msg(void);
+static DAT_RETURN do_rdma_write_ping_pong(int p2, int bytes);
+static DAT_RETURN do_rdma_read_with_msg(void);
+static DAT_RETURN do_ping_pong_msg(void);
 
 #define LOGPRINTF if (verbose) printf
 #define CONN_PORT 15828
@@ -262,7 +262,7 @@ DAT_RETURN do_ping_pong_msg(void);
 /* The Format of the message we pass through sockets */
 #define CONN_MSG_FMT "%04hx:%08x:%08x:%08x:%s"
 
-void flush_evds(void)
+static void flush_evds(void)
 {
 	DAT_EVENT event;
 
@@ -359,7 +359,7 @@ static void print_ia_address(struct sockaddr *sa)
 	}
 }
 
-int conn_client_connect(const char *servername, int port)
+static int conn_client_connect(const char *servername, int port)
 {
 
 	struct addrinfo *res, *t;
@@ -402,7 +402,7 @@ int conn_client_connect(const char *servername, int port)
 	return sockfd;
 }
 
-int conn_server_connect(int port)
+static int conn_server_connect(int port)
 {
 	struct addrinfo *res, *t;
 	struct addrinfo hints = {
@@ -1129,7 +1129,7 @@ finish:
 	return (0);
 }
 
-double get_time(void)
+static double get_time(void)
 {
 	struct timeval tp;
 
@@ -1137,13 +1137,13 @@ double get_time(void)
 	return ((double)tp.tv_sec + (double)tp.tv_usec * 1e-6);
 }
 
-void init_data(void)
+static void init_data(void)
 {
 	memset(rbuf, 'a', buf_len);
 	memset(sbuf, 'b', buf_len);
 }
 
-DAT_RETURN
+static DAT_RETURN
 send_msg(void *data,
 	 DAT_COUNT size,
 	 DAT_LMR_CONTEXT context,
@@ -1202,7 +1202,7 @@ send_msg(void *data,
 
 		}
 		if (event.event_data.dto_completion_event_data.status !=
-		    DAT_SUCCESS) {
+		    DAT_DTO_SUCCESS) {
 			fprintf(stderr, "%d: ERROR: DTO event status %s\n",
 				getpid(), DT_RetToStr(ret));
 			return (DAT_ABORT);
@@ -1212,6 +1212,7 @@ send_msg(void *data,
 	return DAT_SUCCESS;
 }
 
+static
 DAT_RETURN connect_ep(char *hostname,
 		      DAT_CONN_QUAL conn_id,
 		      struct sockaddr *ser_sa)
@@ -1609,7 +1610,7 @@ no_resolution:
 	return (DAT_SUCCESS);
 }
 
-void disconnect_ep(void)
+static void disconnect_ep(void)
 {
 	DAT_RETURN ret;
 	DAT_EVENT event;
@@ -1695,7 +1696,7 @@ void disconnect_ep(void)
 	return;
 }
 
-DAT_RETURN do_rdma_write_with_msg(void)
+static DAT_RETURN do_rdma_write_with_msg(void)
 {
 	DAT_EVENT event;
 	DAT_DTO_COMPLETION_EVENT_DATA *dto_event;
@@ -1862,7 +1863,7 @@ acked:
 	return (DAT_SUCCESS);
 }
 
-DAT_RETURN do_rdma_write_imm_with_msg(void)
+static DAT_RETURN do_rdma_write_imm_with_msg(void)
 {
 	DAT_EVENT event;
 	DAT_LMR_TRIPLET l_iov[MSG_IOV_COUNT];
@@ -2041,9 +2042,9 @@ acked:
 }
 
 #define PAT_NUM 5
-unsigned char pat[PAT_NUM] = { 0, 0xff, 0x55, 0xaa, 0 };
+static unsigned char pat[PAT_NUM] = { 0, 0xff, 0x55, 0xaa, 0 };
 
-void set_pat(unsigned int len, unsigned int pat_num)
+static void set_pat(unsigned int len, unsigned int pat_num)
 {
 	if (len <= 1)
 		return;
@@ -2089,7 +2090,7 @@ void set_pat(unsigned int len, unsigned int pat_num)
 
 
 /* always uni-direction */
-DAT_RETURN do_rdma_write_ping_pong(int p2, int bytes)
+static DAT_RETURN do_rdma_write_ping_pong(int p2, int bytes)
 {
 	DAT_EVENT event;
 	DAT_LMR_TRIPLET l_iov[MSG_IOV_COUNT];
@@ -2215,7 +2216,7 @@ DAT_RETURN do_rdma_write_ping_pong(int p2, int bytes)
 	return (DAT_SUCCESS);
 }
 
-DAT_RETURN do_rdma_read_with_msg(void)
+static DAT_RETURN do_rdma_read_with_msg(void)
 {
 	DAT_EVENT event;
 	DAT_LMR_TRIPLET l_iov;
@@ -2287,7 +2288,7 @@ DAT_RETURN do_rdma_read_with_msg(void)
 			return (DAT_ABORT);
 		}
 		if (event.event_data.dto_completion_event_data.status !=
-		    DAT_SUCCESS) {
+		    DAT_DTO_SUCCESS) {
 			fprintf(stderr, "%d: ERROR: DTO event status %s\n",
 				getpid(), DT_RetToStr(ret));
 			return (DAT_ABORT);
@@ -2385,7 +2386,7 @@ DAT_RETURN do_rdma_read_with_msg(void)
 	return (DAT_SUCCESS);
 }
 
-DAT_RETURN do_ping_pong_msg()
+static DAT_RETURN do_ping_pong_msg()
 {
 	DAT_EVENT event;
 	DAT_DTO_COOKIE cookie;
@@ -2540,7 +2541,7 @@ DAT_RETURN do_ping_pong_msg()
 }
 
 /* Register RDMA Receive buffer */
-DAT_RETURN register_rdma_memory(void)
+static DAT_RETURN register_rdma_memory(void)
 {
 	DAT_RETURN ret;
 	DAT_REGION_DESCRIPTION region;
@@ -2600,7 +2601,7 @@ DAT_RETURN register_rdma_memory(void)
 /*
  * Unregister RDMA memory
  */
-DAT_RETURN unregister_rdma_memory(void)
+static DAT_RETURN unregister_rdma_memory(void)
 {
 	DAT_RETURN ret;
 
@@ -2641,7 +2642,7 @@ DAT_RETURN unregister_rdma_memory(void)
  /*
   * Create CNO, CR, CONN, and DTO events
   */
-DAT_RETURN create_events(void)
+static DAT_RETURN create_events(void)
 {
 	DAT_RETURN ret;
 	DAT_EVD_PARAM param;
@@ -2751,7 +2752,7 @@ DAT_RETURN create_events(void)
  * Destroy CR, CONN, CNO, and DTO events
  */
 
-DAT_RETURN destroy_events(void)
+static DAT_RETURN destroy_events(void)
 {
 	DAT_RETURN ret;
 
@@ -2839,7 +2840,7 @@ DAT_RETURN destroy_events(void)
  * Map DAT_RETURN values to readable strings,
  * but don't assume the values are zero-based or contiguous.
  */
-char errmsg[512] = { 0 };
+static char errmsg[512] = { 0 };
 const char *DT_RetToStr(DAT_RETURN ret_value)
 {
 	const char *major_msg, *minor_msg;
@@ -2894,7 +2895,7 @@ const char *DT_EventToStr(DAT_EVENT_NUMBER event_code)
 	return ("Invalid_DAT_EVENT_NUMBER");
 }
 
-void print_usage(void)
+static void print_usage(void)
 {
 	printf("\n DAPL USAGE \n\n");
 	printf("s: server\n");
diff --git a/test/dtest/dtestcm.c b/test/dtest/dtestcm.c
old mode 100755
new mode 100644
index ffba8a4..93ea48c
--- a/test/dtest/dtestcm.c
+++ b/test/dtest/dtestcm.c
@@ -65,6 +65,7 @@
 #else // _WIN32 || _WIN64
 
 #include <endian.h>
+#include <errno.h>
 #include <byteswap.h>
 #include <netdb.h>
 #include <sys/types.h>
@@ -120,14 +121,11 @@ static DAT_EVD_HANDLE h_cr_evd = DAT_HANDLE_NULL;
 static DAT_EVD_HANDLE h_conn_evd = DAT_HANDLE_NULL;
 
 static DAT_EP_ATTR ep_attr;
-char hostname[256] = { 0 };
-char provider[64] = DAPL_PROVIDER;
-char addr_str[INET_ADDRSTRLEN];
-
-int status;
+static char hostname[256] = { 0 };
+static char provider[64] = DAPL_PROVIDER;
 
 /* timers */
-double start, stop, total_us, total_sec;
+static double start, stop;
 
 struct dt_time {
 	double total;
@@ -147,7 +145,7 @@ struct dt_time {
 	double conn;
 };
 
-struct dt_time ts;
+static struct dt_time ts;
 
 /* defaults */
 static int connected = 0;
@@ -168,17 +166,21 @@ static DAT_SOCK_ADDR6 remote;
 /* forward prototypes */
 const char *DT_RetToString(DAT_RETURN ret_value);
 const char *DT_EventToSTr(DAT_EVENT_NUMBER event_code);
-void print_usage(void);
-double get_time(void);
-DAT_RETURN conn_client(void);
-DAT_RETURN conn_server(void);
-DAT_RETURN disconnect_eps(void);
-DAT_RETURN create_events(void);
-DAT_RETURN destroy_events(void);
+static void print_usage(void);
+static double get_time(void);
+static DAT_RETURN conn_client(void);
+static DAT_RETURN conn_server(struct sockaddr *ser_sa);
+static DAT_RETURN disconnect_eps(void);
+static DAT_RETURN create_events(void);
+static DAT_RETURN destroy_events(void);
+
+#define CONN_PORT 15828
+#define CONN_MSG_SIZE 128
+#define CONN_MSG_FMT "%04hx:%08x:%08x:%08x:%s"
 
 #define LOGPRINTF if (verbose) printf
 
-void flush_evds(void)
+static void flush_evds(void)
 {
 	DAT_EVENT event;
 
@@ -198,11 +200,11 @@ static void print_ia_address(struct sockaddr *sa)
 	switch(sa->sa_family) {
 	case AF_INET:
 		inet_ntop(AF_INET, &((struct sockaddr_in *)sa)->sin_addr, str, INET6_ADDRSTRLEN);
-		printf("%d Local Address AF_INET - %s port %d\n", getpid(), str, SERVER_CONN_QUAL);
+		printf("%d Local IA Address - %s port %d\n", getpid(), str, SERVER_CONN_QUAL);
 		break;
 	case AF_INET6:
 		inet_ntop(AF_INET6, &((struct sockaddr_in6 *)sa)->sin6_addr, str, INET6_ADDRSTRLEN);
-		printf("%d Local Address AF_INET6 - %s flowinfo(QPN)=0x%x, port(LID)=0x%x\n",
+		printf("%d Local IA Address - %s flowinfo(QPN)=0x%x, port(LID)=0x%x\n",
 			getpid(), str,
 			ntohl(((struct sockaddr_in6 *)sa)->sin6_flowinfo),
 			ntohs(((struct sockaddr_in6 *)sa)->sin6_port));
@@ -212,6 +214,204 @@ static void print_ia_address(struct sockaddr *sa)
 	}
 }
 
+static int conn_client_connect(const char *servername, int port)
+{
+
+	struct addrinfo *res, *t;
+	struct addrinfo hints = {
+		.ai_family   = AF_UNSPEC,
+		.ai_socktype = SOCK_STREAM
+	};
+	char *service;
+	int n;
+	int sockfd = -1;
+
+	if (asprintf(&service, "%d", port) < 0)
+		return -1;
+
+	n = getaddrinfo(servername, service, &hints, &res);
+
+	if (n < 0) {
+		fprintf(stderr, "%s for %s:%d\n",
+			gai_strerror(n), servername, port);
+		return n;
+	}
+
+	for (t = res; t; t = t->ai_next) {
+		sockfd = socket(t->ai_family, t->ai_socktype, t->ai_protocol);
+		if (sockfd >= 0) {
+			if (!connect(sockfd, t->ai_addr, t->ai_addrlen))
+				break;
+			close(sockfd);
+			sockfd = -1;
+		}
+	}
+
+	freeaddrinfo(res);
+
+	if (sockfd < 0) {
+		fprintf(stderr, "Couldn't connect to %s:%d, err = %s\n",
+			servername, port, strerror(errno));
+		return sockfd;
+	}
+	return sockfd;
+}
+
+static int conn_server_connect(int port)
+{
+	struct addrinfo *res, *t;
+	struct addrinfo hints = {
+		.ai_flags    = AI_PASSIVE,
+		.ai_family   = AF_UNSPEC,
+		.ai_socktype = SOCK_STREAM
+	};
+	char *service;
+	int sockfd = -1, connfd;
+	int n;
+
+	if (asprintf(&service, "%d", port) < 0)
+		return -1;
+
+	n = getaddrinfo(NULL, service, &hints, &res);
+
+	if (n < 0) {
+		fprintf(stderr, "%s for port %d\n", gai_strerror(n), port);
+		return n;
+	}
+
+	for (t = res; t; t = t->ai_next) {
+		sockfd = socket(t->ai_family, t->ai_socktype, t->ai_protocol);
+		if (sockfd >= 0) {
+			n = 1;
+
+			setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &n,
+				   sizeof n);
+
+			if (!bind(sockfd, t->ai_addr, t->ai_addrlen))
+				break;
+
+			close(sockfd);
+			sockfd = -1;
+		}
+	}
+
+	freeaddrinfo(res);
+
+	if (sockfd < 0) {
+		fprintf(stderr, "Couldn't listen to port %d\n", port);
+		return sockfd;
+	}
+
+	listen(sockfd, 1);
+	connfd = accept(sockfd, NULL, 0);
+	if (connfd < 0) {
+		perror("server accept");
+		fprintf(stderr, "accept() failed\n");
+		close(sockfd);
+		return connfd;
+	}
+
+	close(sockfd);
+	return connfd;
+}
+
+static int get_server_params(void)
+{
+	int connfd, parsed;
+	char msg[CONN_MSG_SIZE];
+	in_port_t ser_lid = 0;
+	uint32_t ser_qpn = 0, ser_scope_id = 0, ser_sin_addr = 0;
+	struct in_addr sin_addr;	/* Internet address.  */
+
+	connfd = conn_client_connect(hostname, CONN_PORT);
+	if (connfd < 0) {
+		fprintf(stderr, "%d Could not connect to %s\n",
+			getpid(), hostname);
+		return -1;
+	}
+
+	if (read(connfd, msg, sizeof msg) != sizeof msg) {
+		fprintf(stderr, "%d Couldn't read remote address\n", getpid());
+		return -1;
+	}
+
+	parsed = sscanf(msg, CONN_MSG_FMT, &ser_lid, &ser_qpn, &ser_scope_id,
+			&ser_sin_addr, provider);
+
+	if (parsed != 5) {
+		fprintf(stderr, "%d Couldn't parse line <%.*s>\n",
+			getpid(), (int)sizeof msg, msg);
+		return -1;
+	}
+
+	if (ser_sin_addr) {
+		sin_addr.s_addr = ser_sin_addr;
+		inet_ntop(AF_INET, &sin_addr, hostname, INET6_ADDRSTRLEN);
+		LOGPRINTF("%d remote data: provider %s hostname %s port %d\n",
+			  getpid(), provider, hostname, CONN_PORT);
+	} else if (ser_lid && ser_qpn) {
+		remote.sin6_family = AF_INET6;
+		remote.sin6_port = ser_lid;
+		remote.sin6_flowinfo = ser_qpn;
+		remote.sin6_scope_id = ntohl(ser_scope_id);
+		ucm = 1;
+		LOGPRINTF("%d remote data: provider %s Client QPN 0x%x,"
+			  " LID = 0x%x, scope_id 0x%x\n",
+			  getpid(), provider, ntohl(ser_qpn), ntohs(ser_lid),
+			  ntohl(ser_scope_id));
+	} else {
+		fprintf(stderr, "%d No valid data was received"
+			" from the server\n",
+			getpid());
+		return -1;
+	}
+
+	return 0;
+}
+
+static int send_server_params(struct sockaddr *ser_sa)
+{
+	in_port_t ser_lid = 0;
+	uint32_t ser_qpn = 0, scope_id = 0, ser_sin_addr = 0;
+	int connfd;
+	char msg[CONN_MSG_SIZE];
+
+	if (!ser_sa) {
+		printf("%d no address\n", getpid());
+		return -1;
+	}
+
+	if  (ser_sa->sa_family == AF_INET6) {
+		ser_qpn = ((struct sockaddr_in6 *)ser_sa)->sin6_flowinfo;
+		ser_lid = ((struct sockaddr_in6 *)ser_sa)->sin6_port;
+		scope_id = htonl(((struct sockaddr_in6 *)ser_sa)->sin6_scope_id);
+		LOGPRINTF("%d Server data to client: provider %s QPN 0x%x LID"
+			  " = 0x%x SCCOPE_ID 0x%x\n",
+			  getpid(), provider, ntohl(ser_qpn), ntohs(ser_lid),
+			  ntohl(scope_id));
+	} else if (ser_sa->sa_family == AF_INET) {
+		ser_sin_addr = ((struct sockaddr_in *)ser_sa)->sin_addr.s_addr;
+		LOGPRINTF("%d Server data to client: provider %s SIN_ADDR"
+			  " 0x%x\n",
+			  getpid(), provider, ser_sin_addr);
+	}
+
+	connfd = conn_server_connect(CONN_PORT);
+	if (connfd < 0) {
+		fprintf(stderr, "%d Failed to connect to client\n", getpid());
+		return -1;
+	}
+
+	sprintf(msg, CONN_MSG_FMT, ser_lid, ser_qpn, scope_id,
+		ser_sin_addr, provider);
+	if (write(connfd, msg, sizeof msg) != sizeof msg) {
+		fprintf(stderr, "%d Couldn't send data", getpid());
+		return -1;
+	}
+
+	return 0;
+}
+
 int main(int argc, char **argv)
 {
 	int i, c, len;
@@ -256,20 +456,6 @@ int main(int argc, char **argv)
 		case 'P':
 			strcpy(provider, optarg);
 			break;
-		case 'q':
-			/* map UCM qpn into AF_INET6 sin6_flowinfo */
-			remote.sin6_family = AF_INET6;
-			remote.sin6_flowinfo = htonl(strtol(optarg,NULL,0));
-			ucm = 1;
-			server = 0;
-			break;
-		case 'l':
-			/* map UCM lid into AF_INET6 sin6_port */
-			remote.sin6_family = AF_INET6;
-			remote.sin6_port = htons(strtol(optarg,NULL,0));
-			ucm = 1;
-			server = 0;
-			break;
 		default:
 			print_usage();
 			exit(-12);
@@ -293,6 +479,10 @@ int main(int argc, char **argv)
 	if (!server) {
 		printf(" Running client on %s with %d %s connections\n", 
 			provider, connections, ud_test ? "UD" : "RC");
+		if (get_server_params()) {
+			printf("%d Failed to get server params\n", getpid());
+			exit(1);
+		}
 	} else {
 		printf(" Running server on %s with %d %s connections\n", 
 			provider, connections, ud_test ? "UD" : "RC");
@@ -430,7 +620,7 @@ int main(int argc, char **argv)
 	
 	/* Connect all */
 	if (server)
-		ret = conn_server();
+		ret = conn_server(ia_attr.ia_address_ptr);
 	else	
 		ret = conn_client();
 	
@@ -550,7 +740,7 @@ bail:
 	return (0);
 }
 
-double get_time(void)
+static double get_time(void)
 {
 	struct timeval tp;
 
@@ -558,7 +748,7 @@ double get_time(void)
 	return ((double)tp.tv_sec + (double)tp.tv_usec * 1e-6);
 }
 
-DAT_RETURN conn_server()
+static DAT_RETURN conn_server(struct sockaddr *ser_sa)
 {
 	DAT_RETURN ret;
 	DAT_EVENT event;
@@ -569,6 +759,14 @@ DAT_RETURN conn_server()
 		&event.event_data.cr_arrival_event_data;
 	DAT_CR_PARAM cr_param = { 0 };
 	
+	printf("%d Conn server waiting for client, port %d \n",
+		getpid(), CONN_PORT);
+	fflush(stdout);
+	if (send_server_params(ser_sa)) {
+		printf("%d Failed to send server params\n", getpid());
+		return -1;
+	}
+
 	printf(" Accepting...\n");
 	for (i = 0; i < connections; i++) {
 					
@@ -590,7 +788,7 @@ DAT_RETURN conn_server()
 		}
 	
 		if ((event.event_number != DAT_CONNECTION_REQUEST_EVENT) &&
-		    (ud_test && event.event_number != 
+		    (ud_test && event.event_number != (DAT_EVENT_NUMBER)
 		     DAT_IB_UD_CONNECTION_REQUEST_EVENT)) {
 				fprintf(stderr, " Error unexpected CR event : %s\n",
 					DT_EventToSTr(event.event_number));
@@ -673,7 +871,7 @@ DAT_RETURN conn_server()
 			}
 		}
 		if ((event.event_number != DAT_CONNECTION_EVENT_ESTABLISHED) &&
-		    (ud_test && event.event_number != 
+		    (ud_test && event.event_number != (DAT_EVENT_NUMBER)
 		     DAT_IB_UD_CONNECTION_EVENT_ESTABLISHED)) {
 
 			fprintf(stderr, " Error unexpected CR EST "
@@ -691,7 +889,7 @@ DAT_RETURN conn_server()
 }
 
 	
-DAT_RETURN conn_client() 
+static DAT_RETURN conn_client()
 {
 	DAT_IA_ADDRESS_PTR raddr = (DAT_IA_ADDRESS_PTR)&remote;
 	DAT_RETURN ret;
@@ -806,7 +1004,7 @@ no_resolution:
 #endif
 			if ((event.event_number != 
 			    DAT_CONNECTION_EVENT_ESTABLISHED) &&
-			    (ud_test && event.event_number != 
+			    (ud_test && event.event_number != (DAT_EVENT_NUMBER)
 			    DAT_IB_UD_CONNECTION_EVENT_ESTABLISHED)) {
 				fprintf(stderr, " Error unexpected conn "
 					"event : 0x%x %s\n",
@@ -854,7 +1052,7 @@ no_resolution:
 }
 
 /* validate disconnected EP's and free them */
-DAT_RETURN disconnect_eps(void)
+static DAT_RETURN disconnect_eps(void)
 {
 	DAT_RETURN ret;
 	DAT_EVENT event;
@@ -968,7 +1166,7 @@ DAT_RETURN disconnect_eps(void)
  /*
   * Create CR, CONN, and DTO events
   */
-DAT_RETURN create_events(void)
+static DAT_RETURN create_events(void)
 {
 	DAT_RETURN ret;
 
@@ -1030,7 +1228,7 @@ DAT_RETURN create_events(void)
  * Destroy CR, CONN, CNO, and DTO events
  */
 
-DAT_RETURN destroy_events(void)
+static DAT_RETURN destroy_events(void)
 {
 	DAT_RETURN ret;
 
@@ -1101,7 +1299,7 @@ DAT_RETURN destroy_events(void)
  * Map DAT_RETURN values to readable strings,
  * but don't assume the values are zero-based or contiguous.
  */
-char errmsg[512] = { 0 };
+static char errmsg[512] = { 0 };
 const char *DT_RetToString(DAT_RETURN ret_value)
 {
 	const char *major_msg, *minor_msg;
@@ -1156,7 +1354,7 @@ const char *DT_EventToSTr(DAT_EVENT_NUMBER event_code)
 	return ("Invalid_DAT_EVENT_NUMBER");
 }
 
-void print_usage(void)
+static void print_usage(void)
 {
 	printf("\n DAPL USAGE \n\n");
 	printf("s: server\n");
diff --git a/test/dtest/dtestsrq.c b/test/dtest/dtestsrq.c
old mode 100755
new mode 100644
index 2bc2596..c1a0f67
--- a/test/dtest/dtestsrq.c
+++ b/test/dtest/dtestsrq.c
@@ -124,11 +124,8 @@ static DAT_EVD_HANDLE h_cr_evd = DAT_HANDLE_NULL;
 static DAT_EVD_HANDLE h_conn_evd = DAT_HANDLE_NULL;
 
 static DAT_EP_ATTR ep_attr;
-char hostname[256] = { 0 };
-char provider[64] = DAPL_PROVIDER;
-char addr_str[INET_ADDRSTRLEN];
-
-int status;
+static char hostname[256] = { 0 };
+static char provider[64] = DAPL_PROVIDER;
 
 /* defaults */
 static int server = 1;
@@ -156,26 +153,26 @@ static DAT_VADDR registered_addr_recv;
 
 static int tx_buf_len = 0, rx_buf_len;
 static int connected = 0;
-char *rbuf = NULL;
-char *sbuf = NULL;
+static char *rbuf = NULL;
+static char *sbuf = NULL;
 static DAT_SOCK_ADDR6 remote;
 
 /* forward prototypes */
 const char *DT_RetToString(DAT_RETURN ret_value);
 const char *DT_EventToSTr(DAT_EVENT_NUMBER event_code);
-void print_usage(void);
-void flush_evds(void);
+static void print_usage(void);
+static void flush_evds(void);
 static void print_ia_address(struct sockaddr *sa);
-DAT_RETURN conn_client(void);
-DAT_RETURN conn_server(void);
-DAT_RETURN disconnect_eps(void);
-DAT_RETURN create_events(void);
-DAT_RETURN destroy_events(void);
-DAT_RETURN register_rdma_memory(void);
-void unregister_rdma_memory(void);
-DAT_RETURN send_msg(char *buff, char msg_head, DAT_UINT32 ep_num, DAT_UINT32 msg_num);
-DAT_RETURN process_cr(void);
-DAT_RETURN process_conn(void);
+static DAT_RETURN conn_client(void);
+static DAT_RETURN conn_server(void);
+static DAT_RETURN disconnect_eps(void);
+static DAT_RETURN create_events(void);
+static DAT_RETURN destroy_events(void);
+static DAT_RETURN register_rdma_memory(void);
+static void unregister_rdma_memory(void);
+static DAT_RETURN send_msg(char *buff, char msg_head, DAT_UINT32 ep_num, DAT_UINT32 msg_num);
+static DAT_RETURN process_cr(void);
+static DAT_RETURN process_conn(void);
 #define LOGPRINTF if (verbose) printf
 
 int main(int argc, char **argv)
@@ -601,7 +598,8 @@ int main(int argc, char **argv)
 				/* validate event number and status */
 				LOGPRINTF(" inbound message; message arrived!\n");
 				if (event.event_number != DAT_DTO_COMPLETION_EVENT &&
-				    ud_test && event.event_number != DAT_IB_DTO_EVENT) {
+				    ud_test && event.event_number != (DAT_EVENT_NUMBER)
+				    DAT_IB_DTO_EVENT) {
 					fprintf(stderr, " Error unexpected DTO event (%d): %s\n",
 							event.event_number,
 							DT_EventToSTr(event.event_number));
@@ -722,7 +720,7 @@ int main(int argc, char **argv)
 				if ((event.event_data.dto_completion_event_data.
 						transfered_length != tx_buf_len)
 						|| event.event_data.dto_completion_event_data.
-						status != DAT_SUCCESS) {
+						status != DAT_DTO_SUCCESS) {
 					fprintf(stderr, " ERROR: DTO REQ size %d, status %d\n",
 						event.event_data.dto_completion_event_data.
 						transfered_length,
@@ -827,7 +825,7 @@ bail:
 	return (0);
 }
 
-DAT_RETURN process_cr()
+static DAT_RETURN process_cr()
 {
 	DAT_RETURN ret;
 	DAT_EVENT event;
@@ -850,7 +848,8 @@ DAT_RETURN process_cr()
 
 		if (event.event_number != DAT_CONNECTION_REQUEST_EVENT &&
 				(ud_test && event.event_number !=
-				 DAT_IB_UD_CONNECTION_REQUEST_EVENT)) {
+				(DAT_EVENT_NUMBER)
+				DAT_IB_UD_CONNECTION_REQUEST_EVENT)) {
 			fprintf(stderr, " Error unexpected cr event : %s\n",
 				DT_EventToSTr(event.event_number));
 			return (DAT_ABORT);
@@ -892,7 +891,7 @@ DAT_RETURN process_cr()
 	return DAT_SUCCESS;
 }
 
-DAT_RETURN process_conn()
+static DAT_RETURN process_conn()
 {
 	DAT_RETURN ret;
 	DAT_EVENT event;
@@ -968,7 +967,7 @@ DAT_RETURN process_conn()
 	return DAT_SUCCESS;
 }
 
-DAT_RETURN conn_server()
+static DAT_RETURN conn_server()
 {
 	DAT_RETURN ret;
 
@@ -985,7 +984,7 @@ DAT_RETURN conn_server()
 	return DAT_SUCCESS;
 }
 
-DAT_RETURN conn_client()
+static DAT_RETURN conn_client()
 {
 	DAT_IA_ADDRESS_PTR raddr = (DAT_IA_ADDRESS_PTR)&remote;
 	DAT_RETURN ret;
@@ -1046,7 +1045,7 @@ no_resolution:
 }
 
 /* validate disconnected EP's and free them */
-DAT_RETURN disconnect_eps(void)
+static DAT_RETURN disconnect_eps(void)
 {
 	DAT_RETURN ret;
 	DAT_EVENT event, async_event;
@@ -1170,7 +1169,7 @@ DAT_RETURN disconnect_eps(void)
  /*
   * Create CR, CONN, and DTO events
   */
-DAT_RETURN create_events(void)
+static DAT_RETURN create_events(void)
 {
 	DAT_RETURN ret;
 	DAT_EVD_PARAM param;
@@ -1298,7 +1297,7 @@ DAT_RETURN create_events(void)
 /*
  * Destroy CR, CONN, CNO, and DTO events
  */
-DAT_RETURN destroy_events(void)
+static DAT_RETURN destroy_events(void)
 {
 	DAT_RETURN ret;
 
@@ -1365,7 +1364,7 @@ DAT_RETURN destroy_events(void)
  * Map DAT_RETURN values to readable strings,
  * but don't assume the values are zero-based or contiguous.
  */
-char errmsg[512] = { 0 };
+static char errmsg[512] = { 0 };
 const char *DT_RetToString(DAT_RETURN ret_value)
 {
 	const char *major_msg, *minor_msg;
@@ -1420,7 +1419,7 @@ const char *DT_EventToSTr(DAT_EVENT_NUMBER event_code)
 	return ("Invalid_DAT_EVENT_NUMBER");
 }
 
-void flush_evds(void)
+static void flush_evds(void)
 {
 	DAT_EVENT event;
 
@@ -1455,7 +1454,7 @@ static void print_ia_address(struct sockaddr *sa)
 }
 
 /* Register RDMA Receive buffer */
-DAT_RETURN register_rdma_memory(void)
+static DAT_RETURN register_rdma_memory(void)
 {
 	DAT_RETURN ret;
 	DAT_REGION_DESCRIPTION region;
@@ -1505,7 +1504,7 @@ DAT_RETURN register_rdma_memory(void)
 	return DAT_SUCCESS;
 }
 
-void unregister_rdma_memory()
+static void unregister_rdma_memory()
 {
 	DAT_RETURN ret;
 
@@ -1538,7 +1537,7 @@ void unregister_rdma_memory()
 	}
 }
 
-DAT_RETURN send_msg(char *buff, char msg_head, DAT_UINT32 ep_num,
+static DAT_RETURN send_msg(char *buff, char msg_head, DAT_UINT32 ep_num,
 		    DAT_UINT32 msg_num)
 {
 	DAT_DTO_COOKIE cookie;
@@ -1586,7 +1585,7 @@ DAT_RETURN send_msg(char *buff, char msg_head, DAT_UINT32 ep_num,
 	}
 }
 
-void print_usage(void)
+static void print_usage(void)
 {
 	printf("\n DAPL SRQ USAGE \n\n");
 	printf("s: server\n");
diff --git a/test/dtest/dtestx.c b/test/dtest/dtestx.c
index a5693d8..085da6b 100755
--- a/test/dtest/dtestx.c
+++ b/test/dtest/dtestx.c
@@ -69,7 +69,7 @@
 #include "dat2/udat.h"
 #include "dat2/dat_ib_extensions.h"
 
-int disconnect_ep(void);
+static int disconnect_ep(void);
 
 #define _OK(status, str) \
 {\
@@ -146,41 +146,40 @@ int disconnect_ep(void);
 #define MAX_EP_COUNT		1000
 #define MAX_AH_COUNT		(MAX_EP_COUNT * 2)
 
-DAT_VADDR *atomic_buf;
-DAT_LMR_HANDLE lmr_atomic;
-DAT_LMR_CONTEXT lmr_atomic_context;
-DAT_RMR_CONTEXT rmr_atomic_context;
-DAT_VLEN reg_atomic_size;
-DAT_VADDR reg_atomic_addr;
-DAT_LMR_HANDLE lmr[REG_MEM_COUNT * MAX_EP_COUNT];
-DAT_LMR_CONTEXT lmr_context[REG_MEM_COUNT * MAX_EP_COUNT];
-DAT_RMR_TRIPLET rmr[REG_MEM_COUNT * MAX_EP_COUNT];
-DAT_RMR_CONTEXT rmr_context[REG_MEM_COUNT * MAX_EP_COUNT];
-DAT_VLEN reg_size[REG_MEM_COUNT * MAX_EP_COUNT];
-DAT_VADDR reg_addr[REG_MEM_COUNT * MAX_EP_COUNT];
-DAT_RMR_TRIPLET *buf[REG_MEM_COUNT * MAX_EP_COUNT];
-DAT_EP_HANDLE ep[MAX_EP_COUNT];
-DAT_EVD_HANDLE async_evd = DAT_HANDLE_NULL;
-DAT_IA_HANDLE ia = DAT_HANDLE_NULL;
-DAT_PZ_HANDLE pz = DAT_HANDLE_NULL;
-DAT_EVD_HANDLE cr_evd = DAT_HANDLE_NULL;
-DAT_EVD_HANDLE con_evd = DAT_HANDLE_NULL;
-DAT_EVD_HANDLE dto_evd = DAT_HANDLE_NULL;
-DAT_PSP_HANDLE psp = DAT_HANDLE_NULL;
-int server = 1;
-int remote_host = 0;
-int ud_test = 0;
-int multi_eps = 0;
-int buf_size = BUF_SIZE;
-int msg_size = sizeof(DAT_RMR_TRIPLET);
-char provider[64] = DAPL_PROVIDER;
-char hostname[256] = { 0 };
+static DAT_VADDR *atomic_buf;
+static DAT_LMR_HANDLE lmr_atomic;
+static DAT_LMR_CONTEXT lmr_atomic_context;
+static DAT_RMR_CONTEXT rmr_atomic_context;
+static DAT_VLEN reg_atomic_size;
+static DAT_VADDR reg_atomic_addr;
+static DAT_LMR_HANDLE lmr[REG_MEM_COUNT * MAX_EP_COUNT];
+static DAT_LMR_CONTEXT lmr_context[REG_MEM_COUNT * MAX_EP_COUNT];
+static DAT_RMR_CONTEXT rmr_context[REG_MEM_COUNT * MAX_EP_COUNT];
+static DAT_VLEN reg_size[REG_MEM_COUNT * MAX_EP_COUNT];
+static DAT_VADDR reg_addr[REG_MEM_COUNT * MAX_EP_COUNT];
+static DAT_RMR_TRIPLET *buf[REG_MEM_COUNT * MAX_EP_COUNT];
+static DAT_EP_HANDLE ep[MAX_EP_COUNT];
+static DAT_EVD_HANDLE async_evd = DAT_HANDLE_NULL;
+static DAT_IA_HANDLE ia = DAT_HANDLE_NULL;
+static DAT_PZ_HANDLE pz = DAT_HANDLE_NULL;
+static DAT_EVD_HANDLE cr_evd = DAT_HANDLE_NULL;
+static DAT_EVD_HANDLE con_evd = DAT_HANDLE_NULL;
+static DAT_EVD_HANDLE dto_evd = DAT_HANDLE_NULL;
+static DAT_PSP_HANDLE psp = DAT_HANDLE_NULL;
+static int server = 1;
+static int remote_host = 0;
+static int ud_test = 0;
+static int multi_eps = 0;
+static int buf_size = BUF_SIZE;
+static int msg_size = sizeof(DAT_RMR_TRIPLET);
+static char provider[64] = DAPL_PROVIDER;
+static char hostname[256] = { 0 };
 static DAT_IB_ADDR_HANDLE remote_ah[MAX_EP_COUNT][MAX_AH_COUNT];
-int eps = 1;
-int verbose = 0;
-int counters = 0;
-int counters_ok = 0;
-int query_only = 0;
+static int eps = 1;
+static int verbose = 0;
+static int counters = 0;
+static int counters_ok = 0;
+static int query_only = 0;
 static int ucm = 0;
 static DAT_SOCK_ADDR6 remote;
 static DAT_IA_ATTR ia_attr;
@@ -192,7 +191,7 @@ static DAT_PROVIDER_ATTR prov_attrs;
 #define CONN_MSG_SIZE 128
 #define CONN_MSG_FMT "%04hx:%08x:%08x:%08x:%s"
 
-void print_usage(void)
+static void print_usage(void)
 {
 	printf("\n dtestx usage \n\n");
 	printf("v: verbose\n");
@@ -240,7 +239,7 @@ static void print_ia_address(struct sockaddr *sa)
 	}
 }
 
-int conn_client_connect(const char *servername, int port)
+static int conn_client_connect(const char *servername, int port)
 {
 
 	struct addrinfo *res, *t;
@@ -283,7 +282,7 @@ int conn_client_connect(const char *servername, int port)
 	return sockfd;
 }
 
-int conn_server_connect(int port)
+static int conn_server_connect(int port)
 {
 	struct addrinfo *res, *t;
 	struct addrinfo hints = {
@@ -499,7 +498,7 @@ static int send_server_params(struct sockaddr *ser_sa)
 	return 0;
 }
 
-void
+static void
 send_msg(void *data,
 	 DAT_COUNT size,
 	 DAT_LMR_CONTEXT context,
@@ -556,19 +555,20 @@ send_msg(void *data,
 			_OK(status, "dat_evd_wait after dat_ep_post_send");
 
 			if (event.event_number != DAT_DTO_COMPLETION_EVENT &&
-			    ud_test && event.event_number != DAT_IB_DTO_EVENT) {
+			    ud_test && event.event_number !=
+			    (DAT_EVENT_NUMBER) DAT_IB_DTO_EVENT) {
 				printf("unexpected event waiting post_send "
 				       "completion - 0x%x\n",
 				       event.event_number);
 				exit(1);
 			}
-			_OK(dto_event->status, "event status for post_send");
+			_OK((DAT_RETURN)dto_event->status, "event status for post_send");
 		}
 	}
 }
 
 /* RC - Server only, UD - Server and Client, one per EP */
-void process_cr(int idx)
+static void process_cr(int idx)
 {
 	DAT_EVENT event;
 	DAT_COUNT nmore;
@@ -586,8 +586,9 @@ void process_cr(int idx)
 	status = dat_evd_wait(cr_evd, SERVER_TIMEOUT, 1, &event, &nmore);
 	_OK(status, "CR dat_evd_wait");
 
-	if (event.event_number != DAT_CONNECTION_REQUEST_EVENT &&
-	    (ud_test && event.event_number !=
+	if (event.event_number !=
+	    (DAT_EVENT_NUMBER) DAT_CONNECTION_REQUEST_EVENT &&
+	    (ud_test && event.event_number != (DAT_EVENT_NUMBER)
 	     DAT_IB_UD_CONNECTION_REQUEST_EVENT)) {
 		printf("unexpected event,!conn req: 0x%x\n",
 		       event.event_number);
@@ -619,7 +620,7 @@ void process_cr(int idx)
 }
 
 /* RC - Client and Server: 1, UD - Client: 1 per EP, Server: 2 per EP's */
-void process_conn(int idx)
+static void process_conn(int idx)
 {
 	DAT_EVENT event;
 	DAT_COUNT nmore;
@@ -647,7 +648,7 @@ void process_conn(int idx)
 		exp_event = DAT_CONNECTION_EVENT_ESTABLISHED;
 
 	/* Waiting on CR's or CONN_EST */
-	if (event.event_number != exp_event) {
+	if (event.event_number != (DAT_EVENT_NUMBER) exp_event) {
 		printf("unexpected event, !conn established: 0x%x\n",
 		event.event_number);
 		exit(1);
@@ -714,7 +715,7 @@ void process_conn(int idx)
 
 }
 
-int connect_ep(char *hostname, struct sockaddr *ser_sa)
+static int connect_ep(char *hostname, struct sockaddr *ser_sa)
 {
 	DAT_IA_ADDRESS_PTR remote_addr = (DAT_IA_ADDRESS_PTR)&remote;
 	DAT_EP_ATTR ep_attr;
@@ -764,6 +765,7 @@ int connect_ep(char *hostname, struct sockaddr *ser_sa)
 		ep_attr.max_rdma_read_in = 4;
 		ep_attr.max_rdma_read_out = 4;
 	}
+	cookie.as_64 = 0;
 	ep_attr.qos = 0;
 	ep_attr.recv_completion_flags = 0;
 	if (ud_test && !multi_eps)
@@ -987,12 +989,13 @@ no_resolution:
 		_OK(status, "dat_evd_wait for receive message");
 
 		if ((event.event_number != DAT_DTO_COMPLETION_EVENT) &&
-		    (ud_test && event.event_number != DAT_IB_DTO_EVENT)) {
+		    (ud_test && event.event_number !=
+		    (DAT_EVENT_NUMBER) DAT_IB_DTO_EVENT)) {
 			printf("unexpected event waiting for RMR context "
 			       "- 0x%x\n", event.event_number);
 			exit(1);
 		}
-		_OK(dto_event->status, "event status for post_recv");
+		_OK((DAT_RETURN)dto_event->status, "event status for post_recv");
 
 		/*
 		 *  multi_eps - receive multi messages on single EP
@@ -1045,7 +1048,7 @@ no_resolution:
 	return (0);
 }
 
-int disconnect_ep(void)
+static int disconnect_ep(void)
 {
 	DAT_RETURN status;
 	DAT_EVENT event;
@@ -1162,7 +1165,7 @@ int disconnect_ep(void)
 	return (0);
 }
 
-int do_immediate()
+static int do_immediate()
 {
 	DAT_EVENT event;
 	DAT_COUNT nmore;
@@ -1210,7 +1213,7 @@ int do_immediate()
 	 */
 	status = dat_evd_wait(dto_evd, DTO_TIMEOUT, 1, &event, &nmore);
 	_OK(status, "dat_evd_wait after dat_ib_post_rdma_write");
-	if (event.event_number != DAT_IB_DTO_EVENT) {
+	if (event.event_number != (DAT_EVENT_NUMBER) DAT_IB_DTO_EVENT) {
 		printf("unexpected event #0x%x waiting for WR-IMMED #0x%x\n",
 		       event.event_number, DAT_IB_DTO_EVENT);
 		exit(1);
@@ -1218,7 +1221,7 @@ int do_immediate()
 
 	if (nmore)
 		printf("%s() nmore %d\n", __FUNCTION__, nmore);
-	_OK(dto_event->status, "DTO event status");
+	_OK((DAT_RETURN)dto_event->status, "DTO event status");
 	if (ext_event->type == DAT_IB_RDMA_WRITE_IMMED) {
 		if ((dto_event->transfered_length != buf_size) ||
 		    (dto_event->user_cookie.as_64 != 0x9999)) {
@@ -1253,13 +1256,13 @@ int do_immediate()
 	 */
 	status = dat_evd_wait(dto_evd, DTO_TIMEOUT, 1, &event, &nmore);
 	_OK(status, "dat_evd_wait after dat_ib_post_rdma_write");
-	if (event.event_number != DAT_IB_DTO_EVENT) {
+	if (event.event_number != (DAT_EVENT_NUMBER) DAT_IB_DTO_EVENT) {
 		printf("unexpected event # waiting for WR-IMMED - 0x%x\n",
 		       event.event_number);
 		exit(1);
 	}
 
-	_OK(dto_event->status, "event status");
+	_OK((DAT_RETURN)dto_event->status, "event status");
 	if (ext_event->type == DAT_IB_RDMA_WRITE_IMMED) {
 		if ((dto_event->transfered_length != buf_size) ||
 		    (dto_event->user_cookie.as_64 != 0x9999)) {
@@ -1311,7 +1314,7 @@ int do_immediate()
 	return (0);
 }
 
-int do_cmp_swap()
+static int do_cmp_swap()
 {
 	DAT_DTO_COOKIE cookie;
 	DAT_RETURN status;
@@ -1366,13 +1369,13 @@ int do_cmp_swap()
 	_OK(status, "dat_ib_post_cmp_and_swap");
 	status = dat_evd_wait(dto_evd, DTO_TIMEOUT, 1, &event, &nmore);
 	_OK(status, "dat_evd_wait for compare and swap");
-	if (event.event_number != DAT_IB_DTO_EVENT) {
+	if (event.event_number != (DAT_EVENT_NUMBER) DAT_IB_DTO_EVENT) {
 		printf("unexpected event after post_cmp_and_swap: 0x%x\n",
 		       event.event_number);
 		exit(1);
 	}
 
-	_OK(dto_event->status, "event status for CMP and SWAP");
+	_OK((DAT_RETURN)dto_event->status, "event status for CMP and SWAP");
 	if (ext_event->type != DAT_IB_CMP_AND_SWAP) {
 		printf("unexpected event data of cmp_swap: type=%d cookie=%d "
 		       "original " F64x "\n",
@@ -1408,7 +1411,7 @@ int do_cmp_swap()
 	return (0);
 }
 
-int do_fetch_add()
+static int do_fetch_add()
 {
 	DAT_DTO_COOKIE cookie;
 	DAT_RETURN status;
@@ -1458,13 +1461,13 @@ int do_fetch_add()
 	_OK(status, "dat_ib_post_fetch_and_add");
 	status = dat_evd_wait(dto_evd, DTO_TIMEOUT, 1, &event, &nmore);
 	_OK(status, "dat_evd_wait for fetch and add");
-	if (event.event_number != DAT_IB_DTO_EVENT) {
+	if (event.event_number != (DAT_EVENT_NUMBER) DAT_IB_DTO_EVENT) {
 		printf("unexpected event after post_fetch_and_add: 0x%x\n",
 		       event.event_number);
 		exit(1);
 	}
 
-	_OK(dto_event->status, "event status for FETCH and ADD");
+	_OK((DAT_RETURN)dto_event->status, "event status for FETCH and ADD");
 	if (ext_event->type != DAT_IB_FETCH_AND_ADD) {
 		printf("unexpected event data of fetch and add : type=%d "
 		       "cookie=%d original%d\n",
@@ -1501,13 +1504,13 @@ int do_fetch_add()
 
 	status = dat_evd_wait(dto_evd, DTO_TIMEOUT, 1, &event, &nmore);
 	_OK(status, "dat_evd_wait for second fetch and add");
-	if (event.event_number != DAT_IB_DTO_EVENT) {
+	if (event.event_number != (DAT_EVENT_NUMBER) DAT_IB_DTO_EVENT) {
 		printf("unexpected event after second post_fetch_and_add: "
 		       "0x%x\n", event.event_number);
 		exit(1);
 	}
 
-	_OK(dto_event->status, "event status for second FETCH and ADD");
+	_OK((DAT_RETURN)dto_event->status, "event status for second FETCH and ADD");
 	if (ext_event->type != DAT_IB_FETCH_AND_ADD) {
 		printf("unexpected event data of second fetch and add : "
 		       "type=%d cookie=%d original%p\n",

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ofed/dapl.git



More information about the Pkg-ofed-commits mailing list