--- /dev/null
+# MIC SCIF/DAPL RDMA proxy server configuration file
+#
+# Entry format is:
+# name value
+
+# log_file:
+# Specifies the location of the MPXYD service output. The log file is used to
+# assist with MPXYD service debugging and troubleshooting. The log_file can
+# be set to 'stdout', 'stderr', or the name of a file.
+# Examples:
+# log_file stdout
+# log_file stderr
+# log_file /var/log/mpxyd.log
+
+log_file /var/log/mpxyd.log
+
+# log_level:
+# Indicates the amount of detailed data written to the log file. Log levels
+# are bit mapped as follow: 0xf for full verbose
+# 0x0 - errors always reported
+# 0x1 - warnings
+# 0x2 - cm operations
+# 0x4 - data operations
+# 0x8 - info
+# 0x10 - perf
+# 0x20 - threads
+# 0x40 - verbose
+
+log_level 0
+
+# lock_file:
+# Specifies the location of the MPXYD lock file used to ensure that only a
+# single instance of MPXYD is running.
+
+lock_file /var/run/mpxyd.pid
+
+# scif_port_id:
+# SCIF port number that the server listens on.
+# If this value is changed, then a corresponding change is required for
+# client MIC DAPL provider. Default is SCIF_OFED_PORT_8 (i.e. 68)
+
+scif_port_id 68
+
+# scif_listen_qlen:
+# The queue length for the server side scif_listen() call. It affects how
+# many clients can connect to the server simultaneously. Default is 240.
+
+scif_listen_qlen 240
+
+# mcm_affinity:
+# 1 or 0, Specifies if CPU affinity is used for mpxyd threads
+# If 0, normal O/S scheduling is used all threads.
+# If 1, CPU affinity is set for both OP and TX threads, each on different cores.
+#
+
+mcm_affinity 1
+
+# mcm_affinity_base:
+# Specifies a hard binding for CPU id base value used for affinity support of
+# hca and mic mpxyd data proxy threads. Default = 0, which specifies use of
+# dynamic affinity binding support via mpxyd. For specific bindings,
+# set to CPU id value desired. For example, mcm_affinity_base_hca = 8,
+# and mcm_affinit_base_mic = 1 would setup the following bindings:
+# MIC dma thread bound to CPU 1 and HCA rdma thread bound to CPU 8
+
+mcm_affinity_base_hca 0
+mcm_affinity_base_mic 0
+
+# mcm_depth:
+# Specifies the number of request queue entries available for CM messages.
+# A larger depth consumes more system resources, 256 * mcm_depth * ib devices
+
+mcm_depth 500
+
+# mcm_rw_signal_rate:
+# mcm_rr_signal_rate:
+# mcm_rr_max_pending:
+# Specifies the number of RDMA write/read segments posted before signaling for completions.
+# Larger the value reduces interrupts but could increase reserve times on buffer resources.
+# Default = 10 for signaling, 50 for RDMA READ's outstanding
+
+mcm_rw_signal_rate 10
+mcm_rr_signal_rate 1
+mcm_rr_max_pending 50
+
+# max_message_mb:
+# Specifies the maximum message size. The default is 16 (MB).
+
+max_message_mb 16
+
+# buffer_pool_shared:
+# Specifies if the pre-allocated and pinned buffer is shared between
+# connections from the same client, or is private to each connection.
+
+buffer_pool_shared 1
+
+# buffer_pool_mb:
+# Specifies the amount of memory pre-allocated and pinned for SCIF to uDAPL
+# RDMA proxy services. Per client or per connection depending on the setting
+# of "buffer_pool_shared". Recommend to increase the size if shared.
+
+buffer_pool_mb 32
+
+# buffer_segment_size:
+# Specifies the segment size of large DMA transfers. Default is 128KB.
+# The size must be a multiple of 4096.
+
+buffer_segment_size 131072
+
+# buffer_alignment:
+# Specifies the alignment of the RDMA buffer. Default is 64 bytes.
+
+buffer_alignment 64
+
+# buffer_inline_threshold:
+# Specifies the max IO size for scif_recv inline before switch
+# to scif_readfrom DMA. Default is 256 bytes.
+
+buffer_inline_threshold 256
+
+# proxy_tx_depth:
+# Specifies the work request queue depth for the outbound proxy service
+# Default is 1024 work requests.
+
+proxy_tx_depth 512
+
+# proxy_rx_depth:
+# Specifies the work request queue depth for the outbound proxy service
+# Default is 1024 work requests.
+
+proxy_rx_depth 512
+
+# CM connect request timeout ms:
+# Specifies the amout of time a request waits for reply before retry.
+# Default is 2000 ms
+
+mcm_req_timeout_ms 4000
+
+# CM connect reply timeout ms:
+# Specifies the amout of time a reply waits for RTU before retry.
+# Default is 1000 ms
+
+mcm_rep_timeout_ms 2000
+
+# CM retry count
+# Specifies the amount of retries for CM messages expecting replies.
+# Default is 10.
+
+mcm_retry_count 10
+
+# mcm_perf_profile:
+# 1 or 0, specifies if performance profiling is enabled/disabled for RDMA operations
+# Default is 0, disabled
+#
+
+mcm_perf_profile 0
+
+# mcm_eager_completion:
+# complete and signal write request after scif_readfrom has moved all data, otherwise wait for IB completions.
+# Default is enabled.
+
+mcm_eager_completion 1
+
+# mcm_counters
+# log and print device CM, DTO, and event counters. Output any non-zero results at device close.
+# Default is disabled.
+
+mcm_counters 0
+
+# mcm_proxy_in
+# Override for proxy-in services. If disabled, mpxyd will fallback to previous version of proxy-out only.
+# Default is enabled.
+
+mcm_proxy_in 1
+
+
+
--- /dev/null
+#!/bin/bash
+#
+# Bring up/down the mpxyd daemon
+#
+# chkconfig: 2345 25 75
+# description: Starts/Stops MIC SCIF/DAPL RDMA proxy server
+#
+### BEGIN INIT INFO
+# Provides: mpxyd
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Required-Start:
+# Required-Stop:
+# Should-Start:
+# Should-Stop:
+# Short-Description: Starts and stops the MIC SCIF/DAPL RDMA proxy server
+# Description: The DAPL proxy RDMA server provides a user space implementation
+# that enables MIC clients to proxy InfiniBand RDMA over to large core resources
+### END INIT INFO
+
+ulimit -n 4096
+
+prog=mpxyd
+execpath=@prefix@/sbin/${prog}
+pidfile=`grep ^lock_file @sysconfdir@/mpxyd.conf | awk '{print $2}'`
+subsys=/var/lock/subsys/${prog}
+
+# Source function library.
+if [ -f /etc/init.d/functions ]; then
+ # RHEL
+ . /etc/init.d/functions
+ _status='status -p "$pidfile" -l $subsys'
+ _start='daemon --check $prog --pidfile "$pidfile"'
+ _ret='echo; return $RC'
+elif [ -f /etc/rc.status ]; then
+ # SLES
+ . /etc/rc.status
+ _status=checkproc
+ _start='start_daemon -p "$pidfile"'
+ _ret='rc_status -v'
+else
+ # other
+ echo "Could not source init function library, exiting"
+ return 1
+fi
+
+start()
+{
+ echo -n "Starting mpxyd daemon: "
+
+ eval $_start $execpath
+ RC=$?
+
+ [ "$RC" -eq "0" ] && touch $subsys 2>/dev/null
+
+ eval $_ret
+}
+
+stop()
+{
+ echo -n "Stopping mpxyd daemon: "
+
+ killproc -p $pidfile $execpath
+ RC=$?
+ rm -f $subsys
+
+ eval $_ret
+}
+
+sstatus()
+{
+ eval $_status $execpath RC=$?
+ eval $_ret
+}
+
+restart ()
+{
+ stop
+ start
+}
+
+condrestart ()
+{
+ [ -e $subsys ] && restart || return 0
+}
+
+usage ()
+{
+ echo
+ echo "Usage: `basename $0` {start|stop|restart|condrestart|try-restart|force-reload|status}"
+ echo
+ return 2
+}
+
+case $1 in
+ start) start; RC=$? ;;
+ stop) stop; RC=$? ;;
+ restart) restart; RC=$? ;;
+ reload) RC=3 ;;
+ condrestart) condrestart; RC=$? ;;
+ try-restart) condrestart; RC=$? ;;
+ force-reload) condrestart; RC=$? ;;
+ status) sstatus; RC=$? ;;
+ *) usage; RC=$? ;;
+esac
+
+exit $RC