[Pkg-ofed-commits] [perftest] 01/12: New upstream version 3.0+0.21.g21dc344

Benjamin Drung bdrung at moszumanska.debian.org
Mon Aug 22 09:17:54 UTC 2016


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

bdrung pushed a commit to branch master
in repository perftest.

commit c28d26130c8e0fc977766c734a09483bc9c44b23
Author: Benjamin Drung <benjamin.drung at profitbricks.com>
Date:   Mon Aug 22 10:35:46 2016 +0200

    New upstream version 3.0+0.21.g21dc344
---
 autom4te.cache/output.0      |   97 +++-
 autom4te.cache/output.1      |   97 +++-
 autom4te.cache/traces.0      |  539 +++++++++++----------
 autom4te.cache/traces.1      | 1088 +++++++++++++++++++++---------------------
 config.h.in                  |    3 +
 configure                    |  137 ++++--
 configure.ac                 |   13 +-
 perftest.spec                |    4 +-
 src/perftest_parameters.c    |  325 ++++++++-----
 src/perftest_parameters.h    |    7 +-
 src/perftest_resources.c     |   60 ++-
 src/perftest_resources.h     |   32 --
 src/raw_ethernet_resources.c |  379 ++++++++-------
 src/raw_ethernet_resources.h |   32 +-
 src/raw_ethernet_send_lat.c  |   68 +--
 15 files changed, 1659 insertions(+), 1222 deletions(-)

diff --git a/autom4te.cache/output.0 b/autom4te.cache/output.0
index d7b2e7b..050775a 100644
--- a/autom4te.cache/output.0
+++ b/autom4te.cache/output.0
@@ -1,6 +1,6 @@
 @%:@! /bin/sh
 @%:@ Guess values for system-dependent variables and create Makefiles.
-@%:@ Generated by GNU Autoconf 2.63 for perftest 5.5.
+@%:@ Generated by GNU Autoconf 2.63 for perftest 5.6.
 @%:@
 @%:@ Report bugs to <linux-rdma at vger.kernel.org>.
 @%:@ 
@@ -745,10 +745,11 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='perftest'
 PACKAGE_TARNAME='perftest'
-PACKAGE_VERSION='5.5'
-PACKAGE_STRING='perftest 5.5'
+PACKAGE_VERSION='5.6'
+PACKAGE_STRING='perftest 5.6'
 PACKAGE_BUGREPORT='linux-rdma at vger.kernel.org'
 
+ac_default_prefix="/usr"
 # Factoring default headers for most tests.
 ac_includes_default="\
 #include <stdio.h>
@@ -791,6 +792,8 @@ LTLIBOBJS
 LIB@&t at OBJS
 LIBMATH
 LIBUMAD
+HAVE_SCATTER_FCS_FALSE
+HAVE_SCATTER_FCS_TRUE
 HAVE_ODP_FALSE
 HAVE_ODP_TRUE
 HAVE_ACCL_VERBS_FALSE
@@ -1518,7 +1521,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 perftest 5.5 to adapt to many kinds of systems.
+\`configure' configures perftest 5.6 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1588,7 +1591,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of perftest 5.5:";;
+     short | recursive ) echo "Configuration of perftest 5.6:";;
    esac
   cat <<\_ACEOF
 
@@ -1697,7 +1700,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-perftest configure 5.5
+perftest configure 5.6
 generated by GNU Autoconf 2.63
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1711,7 +1714,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 perftest $as_me 5.5, which was
+It was created by perftest $as_me 5.6, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   $ $0 $@
@@ -2563,7 +2566,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='perftest'
- VERSION='5.5'
+ VERSION='5.6'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2637,6 +2640,8 @@ else
 fi
 
 
+
+
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -17045,6 +17050,71 @@ _ACEOF
 	LIBS=$LIBS" -lcuda"
 fi
 
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <infiniband/verbs.h>
+#include <infiniband/verbs_exp.h>
+int
+main ()
+{
+int x = IBV_EXP_DEVICE_SCATTER_FCS;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
+  HAVE_SCATTER_FCS=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	HAVE_SCATTER_FCS=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+ if test "x$HAVE_SCATTER_FCS" = "xyes"; then
+  HAVE_SCATTER_FCS_TRUE=
+  HAVE_SCATTER_FCS_FALSE='#'
+else
+  HAVE_SCATTER_FCS_TRUE='#'
+  HAVE_SCATTER_FCS_FALSE=
+fi
+
+if test $HAVE_SCATTER_FCS = yes && test $HAVE_VERBS_EXP = yes; then
+        
+cat >>confdefs.h <<\_ACEOF
+@%:@define HAVE_SCATTER_FCS 1
+_ACEOF
+
+fi
+
 CFLAGS="-g -Wall -D_GNU_SOURCE -O3"
 
 
@@ -17281,6 +17351,13 @@ $as_echo "$as_me: error: conditional \"HAVE_ODP\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${HAVE_SCATTER_FCS_TRUE}" && test -z "${HAVE_SCATTER_FCS_FALSE}"; then
+  { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_SCATTER_FCS\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"HAVE_SCATTER_FCS\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 
 : ${CONFIG_STATUS=./config.status}
 ac_write_fail=0
@@ -17603,7 +17680,7 @@ exec 6>&1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by perftest $as_me 5.5, which was
+This file was extended by perftest $as_me 5.6, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -17666,7 +17743,7 @@ Report bugs to <bug-autoconf at gnu.org>."
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
-perftest config.status 5.5
+perftest config.status 5.6
 configured by $0, generated by GNU Autoconf 2.63,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
diff --git a/autom4te.cache/output.1 b/autom4te.cache/output.1
index f7d37ae..ae3ae46 100644
--- a/autom4te.cache/output.1
+++ b/autom4te.cache/output.1
@@ -1,6 +1,6 @@
 @%:@! /bin/sh
 @%:@ Guess values for system-dependent variables and create Makefiles.
-@%:@ Generated by GNU Autoconf 2.63 for perftest 5.5.
+@%:@ Generated by GNU Autoconf 2.63 for perftest 5.6.
 @%:@
 @%:@ Report bugs to <linux-rdma at vger.kernel.org>.
 @%:@ 
@@ -745,10 +745,11 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='perftest'
 PACKAGE_TARNAME='perftest'
-PACKAGE_VERSION='5.5'
-PACKAGE_STRING='perftest 5.5'
+PACKAGE_VERSION='5.6'
+PACKAGE_STRING='perftest 5.6'
 PACKAGE_BUGREPORT='linux-rdma at vger.kernel.org'
 
+ac_default_prefix="/usr"
 # Factoring default headers for most tests.
 ac_includes_default="\
 #include <stdio.h>
@@ -791,6 +792,8 @@ LTLIBOBJS
 LIB@&t at OBJS
 LIBMATH
 LIBUMAD
+HAVE_SCATTER_FCS_FALSE
+HAVE_SCATTER_FCS_TRUE
 HAVE_ODP_FALSE
 HAVE_ODP_TRUE
 HAVE_ACCL_VERBS_FALSE
@@ -1518,7 +1521,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 perftest 5.5 to adapt to many kinds of systems.
+\`configure' configures perftest 5.6 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1588,7 +1591,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of perftest 5.5:";;
+     short | recursive ) echo "Configuration of perftest 5.6:";;
    esac
   cat <<\_ACEOF
 
@@ -1697,7 +1700,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-perftest configure 5.5
+perftest configure 5.6
 generated by GNU Autoconf 2.63
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1711,7 +1714,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 perftest $as_me 5.5, which was
+It was created by perftest $as_me 5.6, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   $ $0 $@
@@ -2563,7 +2566,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='perftest'
- VERSION='5.5'
+ VERSION='5.6'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2637,6 +2640,8 @@ else
 fi
 
 
+
+
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -17041,6 +17046,71 @@ _ACEOF
 	LIBS=$LIBS" -lcuda"
 fi
 
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <infiniband/verbs.h>
+#include <infiniband/verbs_exp.h>
+int
+main ()
+{
+int x = IBV_EXP_DEVICE_SCATTER_FCS;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
+  HAVE_SCATTER_FCS=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	HAVE_SCATTER_FCS=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+ if test "x$HAVE_SCATTER_FCS" = "xyes"; then
+  HAVE_SCATTER_FCS_TRUE=
+  HAVE_SCATTER_FCS_FALSE='#'
+else
+  HAVE_SCATTER_FCS_TRUE='#'
+  HAVE_SCATTER_FCS_FALSE=
+fi
+
+if test $HAVE_SCATTER_FCS = yes && test $HAVE_VERBS_EXP = yes; then
+        
+cat >>confdefs.h <<\_ACEOF
+@%:@define HAVE_SCATTER_FCS 1
+_ACEOF
+
+fi
+
 CFLAGS="-g -Wall -D_GNU_SOURCE -O3"
 
 
@@ -17277,6 +17347,13 @@ $as_echo "$as_me: error: conditional \"HAVE_ODP\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${HAVE_SCATTER_FCS_TRUE}" && test -z "${HAVE_SCATTER_FCS_FALSE}"; then
+  { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_SCATTER_FCS\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"HAVE_SCATTER_FCS\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 
 : ${CONFIG_STATUS=./config.status}
 ac_write_fail=0
@@ -17599,7 +17676,7 @@ exec 6>&1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by perftest $as_me 5.5, which was
+This file was extended by perftest $as_me 5.6, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -17662,7 +17739,7 @@ Report bugs to <bug-autoconf at gnu.org>."
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
-perftest config.status 5.5
+perftest config.status 5.6
 configured by $0, generated by GNU Autoconf 2.63,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
diff --git a/autom4te.cache/traces.0 b/autom4te.cache/traces.0
index 625eb17..d499290 100644
--- a/autom4te.cache/traces.0
+++ b/autom4te.cache/traces.0
@@ -2217,295 +2217,304 @@ m4trace:configure.ac:21: -1- m4_pattern_allow([^MAJOR_VERSION$])
 m4trace:configure.ac:22: -1- m4_pattern_allow([^MINOR_VERSION$])
 m4trace:configure.ac:24: -1- m4_pattern_allow([^CUDA_H_PATH$])
 m4trace:configure.ac:25: -1- m4_pattern_allow([^RANLIB$])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^CC$])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^CFLAGS$])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^LDFLAGS$])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^LIBS$])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^CPPFLAGS$])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^CC$])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^CC$])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^CC$])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^CC$])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^ac_ct_CC$])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^EXEEXT$])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^OBJEXT$])
-m4trace:configure.ac:36: -1- _AM_DEPENDENCIES([CC])
-m4trace:configure.ac:36: -1- AM_SET_DEPDIR
-m4trace:configure.ac:36: -1- m4_pattern_allow([^DEPDIR$])
-m4trace:configure.ac:36: -1- AM_OUTPUT_DEPENDENCY_COMMANDS
-m4trace:configure.ac:36: -1- AM_MAKE_INCLUDE
-m4trace:configure.ac:36: -1- m4_pattern_allow([^am__include$])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^am__quote$])
-m4trace:configure.ac:36: -1- AM_DEP_TRACK
-m4trace:configure.ac:36: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^AMDEP_TRUE$])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^AMDEP_FALSE$])
-m4trace:configure.ac:36: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE])
-m4trace:configure.ac:36: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^AMDEPBACKSLASH$])
-m4trace:configure.ac:36: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^CCDEPMODE$])
-m4trace:configure.ac:36: -1- AM_CONDITIONAL([am__fastdepCC], [
+m4trace:configure.ac:38: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^CFLAGS$])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^LDFLAGS$])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^ac_ct_CC$])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^EXEEXT$])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^OBJEXT$])
+m4trace:configure.ac:38: -1- _AM_DEPENDENCIES([CC])
+m4trace:configure.ac:38: -1- AM_SET_DEPDIR
+m4trace:configure.ac:38: -1- m4_pattern_allow([^DEPDIR$])
+m4trace:configure.ac:38: -1- AM_OUTPUT_DEPENDENCY_COMMANDS
+m4trace:configure.ac:38: -1- AM_MAKE_INCLUDE
+m4trace:configure.ac:38: -1- m4_pattern_allow([^am__include$])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^am__quote$])
+m4trace:configure.ac:38: -1- AM_DEP_TRACK
+m4trace:configure.ac:38: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^AMDEP_TRUE$])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^AMDEP_FALSE$])
+m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE])
+m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^AMDEPBACKSLASH$])
+m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^CCDEPMODE$])
+m4trace:configure.ac:38: -1- AM_CONDITIONAL([am__fastdepCC], [
   test "x$enable_dependency_tracking" != xno \
   && test "$am_cv_CC_dependencies_compiler_type" = gcc3])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
-m4trace:configure.ac:36: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE])
-m4trace:configure.ac:36: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE])
-m4trace:configure.ac:37: -1- m4_pattern_allow([^CXX$])
-m4trace:configure.ac:37: -1- m4_pattern_allow([^CXXFLAGS$])
-m4trace:configure.ac:37: -1- m4_pattern_allow([^LDFLAGS$])
-m4trace:configure.ac:37: -1- m4_pattern_allow([^LIBS$])
-m4trace:configure.ac:37: -1- m4_pattern_allow([^CPPFLAGS$])
-m4trace:configure.ac:37: -1- m4_pattern_allow([^CXX$])
-m4trace:configure.ac:37: -1- m4_pattern_allow([^ac_ct_CXX$])
-m4trace:configure.ac:37: -1- _AM_DEPENDENCIES([CXX])
-m4trace:configure.ac:37: -1- m4_pattern_allow([^CXXDEPMODE$])
-m4trace:configure.ac:37: -1- AM_CONDITIONAL([am__fastdepCXX], [
+m4trace:configure.ac:38: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
+m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE])
+m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE])
+m4trace:configure.ac:39: -1- m4_pattern_allow([^CXX$])
+m4trace:configure.ac:39: -1- m4_pattern_allow([^CXXFLAGS$])
+m4trace:configure.ac:39: -1- m4_pattern_allow([^LDFLAGS$])
+m4trace:configure.ac:39: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:39: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:39: -1- m4_pattern_allow([^CXX$])
+m4trace:configure.ac:39: -1- m4_pattern_allow([^ac_ct_CXX$])
+m4trace:configure.ac:39: -1- _AM_DEPENDENCIES([CXX])
+m4trace:configure.ac:39: -1- m4_pattern_allow([^CXXDEPMODE$])
+m4trace:configure.ac:39: -1- AM_CONDITIONAL([am__fastdepCXX], [
   test "x$enable_dependency_tracking" != xno \
   && test "$am_cv_CXX_dependencies_compiler_type" = gcc3])
-m4trace:configure.ac:37: -1- m4_pattern_allow([^am__fastdepCXX_TRUE$])
-m4trace:configure.ac:37: -1- m4_pattern_allow([^am__fastdepCXX_FALSE$])
-m4trace:configure.ac:37: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_TRUE])
-m4trace:configure.ac:37: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE])
-m4trace:configure.ac:38: -1- AM_PROG_AS
-m4trace:configure.ac:38: -1- m4_pattern_allow([^CCAS$])
-m4trace:configure.ac:38: -1- m4_pattern_allow([^CCASFLAGS$])
-m4trace:configure.ac:38: -1- _AM_IF_OPTION([no-dependencies], [], [_AM_DEPENDENCIES([CCAS])])
-m4trace:configure.ac:38: -2- _AM_MANGLE_OPTION([no-dependencies])
-m4trace:configure.ac:38: -1- _AM_DEPENDENCIES([CCAS])
-m4trace:configure.ac:38: -1- m4_pattern_allow([^CCASDEPMODE$])
-m4trace:configure.ac:38: -1- AM_CONDITIONAL([am__fastdepCCAS], [
+m4trace:configure.ac:39: -1- m4_pattern_allow([^am__fastdepCXX_TRUE$])
+m4trace:configure.ac:39: -1- m4_pattern_allow([^am__fastdepCXX_FALSE$])
+m4trace:configure.ac:39: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_TRUE])
+m4trace:configure.ac:39: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE])
+m4trace:configure.ac:40: -1- AM_PROG_AS
+m4trace:configure.ac:40: -1- m4_pattern_allow([^CCAS$])
+m4trace:configure.ac:40: -1- m4_pattern_allow([^CCASFLAGS$])
+m4trace:configure.ac:40: -1- _AM_IF_OPTION([no-dependencies], [], [_AM_DEPENDENCIES([CCAS])])
+m4trace:configure.ac:40: -2- _AM_MANGLE_OPTION([no-dependencies])
+m4trace:configure.ac:40: -1- _AM_DEPENDENCIES([CCAS])
+m4trace:configure.ac:40: -1- m4_pattern_allow([^CCASDEPMODE$])
+m4trace:configure.ac:40: -1- AM_CONDITIONAL([am__fastdepCCAS], [
   test "x$enable_dependency_tracking" != xno \
   && test "$am_cv_CCAS_dependencies_compiler_type" = gcc3])
-m4trace:configure.ac:38: -1- m4_pattern_allow([^am__fastdepCCAS_TRUE$])
-m4trace:configure.ac:38: -1- m4_pattern_allow([^am__fastdepCCAS_FALSE$])
-m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([am__fastdepCCAS_TRUE])
-m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([am__fastdepCCAS_FALSE])
-m4trace:configure.ac:39: -1- m4_pattern_allow([^INSTALL_PROGRAM$])
-m4trace:configure.ac:39: -1- m4_pattern_allow([^INSTALL_SCRIPT$])
-m4trace:configure.ac:39: -1- m4_pattern_allow([^INSTALL_DATA$])
-m4trace:configure.ac:40: -1- AC_PROG_LIBTOOL
-m4trace:configure.ac:40: -1- _m4_warn([obsolete], [The macro `AC_PROG_LIBTOOL' is obsolete.
+m4trace:configure.ac:40: -1- m4_pattern_allow([^am__fastdepCCAS_TRUE$])
+m4trace:configure.ac:40: -1- m4_pattern_allow([^am__fastdepCCAS_FALSE$])
+m4trace:configure.ac:40: -1- _AM_SUBST_NOTMAKE([am__fastdepCCAS_TRUE])
+m4trace:configure.ac:40: -1- _AM_SUBST_NOTMAKE([am__fastdepCCAS_FALSE])
+m4trace:configure.ac:41: -1- m4_pattern_allow([^INSTALL_PROGRAM$])
+m4trace:configure.ac:41: -1- m4_pattern_allow([^INSTALL_SCRIPT$])
+m4trace:configure.ac:41: -1- m4_pattern_allow([^INSTALL_DATA$])
+m4trace:configure.ac:42: -1- AC_PROG_LIBTOOL
+m4trace:configure.ac:42: -1- _m4_warn([obsolete], [The macro `AC_PROG_LIBTOOL' is obsolete.
 You should run autoupdate.], [/usr/share/aclocal/libtool.m4:102: AC_PROG_LIBTOOL is expanded from...
-configure.ac:40: the top level])
-m4trace:configure.ac:40: -1- LT_INIT
-m4trace:configure.ac:40: -1- m4_pattern_forbid([^_?LT_[A-Z_]+$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])
-m4trace:configure.ac:40: -1- LTOPTIONS_VERSION
-m4trace:configure.ac:40: -1- LTSUGAR_VERSION
-m4trace:configure.ac:40: -1- LTVERSION_VERSION
-m4trace:configure.ac:40: -1- LTOBSOLETE_VERSION
-m4trace:configure.ac:40: -1- _LT_PROG_LTMAIN
-m4trace:configure.ac:40: -1- m4_pattern_allow([^LIBTOOL$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^build$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^build_cpu$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^build_vendor$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^build_os$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^host$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^host_cpu$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^host_vendor$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^host_os$])
-m4trace:configure.ac:40: -1- LT_PATH_LD
-m4trace:configure.ac:40: -1- m4_pattern_allow([^SED$])
-m4trace:configure.ac:40: -1- AC_PROG_EGREP
-m4trace:configure.ac:40: -1- m4_pattern_allow([^GREP$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^EGREP$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^FGREP$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^GREP$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^LD$])
-m4trace:configure.ac:40: -1- LT_PATH_NM
-m4trace:configure.ac:40: -1- m4_pattern_allow([^DUMPBIN$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^ac_ct_DUMPBIN$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^DUMPBIN$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^NM$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^LN_S$])
-m4trace:configure.ac:40: -1- LT_CMD_MAX_LEN
-m4trace:configure.ac:40: -1- m4_pattern_allow([^OBJDUMP$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^OBJDUMP$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^AR$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^STRIP$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^RANLIB$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([LT_OBJDIR])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^LT_OBJDIR$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^lt_ECHO$])
-m4trace:configure.ac:40: -1- _LT_CC_BASENAME([$compiler])
-m4trace:configure.ac:40: -1- _LT_PATH_TOOL_PREFIX([${ac_tool_prefix}file], [/usr/bin$PATH_SEPARATOR$PATH])
-m4trace:configure.ac:40: -1- _LT_PATH_TOOL_PREFIX([file], [/usr/bin$PATH_SEPARATOR$PATH])
-m4trace:configure.ac:40: -1- LT_SUPPORTED_TAG([CC])
-m4trace:configure.ac:40: -1- _LT_COMPILER_BOILERPLATE
-m4trace:configure.ac:40: -1- _LT_LINKER_BOILERPLATE
-m4trace:configure.ac:40: -1- _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], [lt_cv_prog_compiler_rtti_exceptions], [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, )="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, ) -fno-rtti -fno-exceptions"])
-m4trace:configure.ac:40: -1- _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, ) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, )], [$_LT_TAGVAR(lt_prog_compiler_pic, )@&t at m4_if([],[],[ -DPIC],[m4_if([],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, ) in
+configure.ac:42: the top level])
+m4trace:configure.ac:42: -1- LT_INIT
+m4trace:configure.ac:42: -1- m4_pattern_forbid([^_?LT_[A-Z_]+$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])
+m4trace:configure.ac:42: -1- LTOPTIONS_VERSION
+m4trace:configure.ac:42: -1- LTSUGAR_VERSION
+m4trace:configure.ac:42: -1- LTVERSION_VERSION
+m4trace:configure.ac:42: -1- LTOBSOLETE_VERSION
+m4trace:configure.ac:42: -1- _LT_PROG_LTMAIN
+m4trace:configure.ac:42: -1- m4_pattern_allow([^LIBTOOL$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^build$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^build_cpu$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^build_vendor$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^build_os$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^host$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^host_cpu$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^host_vendor$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^host_os$])
+m4trace:configure.ac:42: -1- LT_PATH_LD
+m4trace:configure.ac:42: -1- m4_pattern_allow([^SED$])
+m4trace:configure.ac:42: -1- AC_PROG_EGREP
+m4trace:configure.ac:42: -1- m4_pattern_allow([^GREP$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^EGREP$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^FGREP$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^GREP$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^LD$])
+m4trace:configure.ac:42: -1- LT_PATH_NM
+m4trace:configure.ac:42: -1- m4_pattern_allow([^DUMPBIN$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^ac_ct_DUMPBIN$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^DUMPBIN$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^NM$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^LN_S$])
+m4trace:configure.ac:42: -1- LT_CMD_MAX_LEN
+m4trace:configure.ac:42: -1- m4_pattern_allow([^OBJDUMP$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^OBJDUMP$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^AR$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^STRIP$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^RANLIB$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([LT_OBJDIR])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^LT_OBJDIR$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^lt_ECHO$])
+m4trace:configure.ac:42: -1- _LT_CC_BASENAME([$compiler])
+m4trace:configure.ac:42: -1- _LT_PATH_TOOL_PREFIX([${ac_tool_prefix}file], [/usr/bin$PATH_SEPARATOR$PATH])
+m4trace:configure.ac:42: -1- _LT_PATH_TOOL_PREFIX([file], [/usr/bin$PATH_SEPARATOR$PATH])
+m4trace:configure.ac:42: -1- LT_SUPPORTED_TAG([CC])
+m4trace:configure.ac:42: -1- _LT_COMPILER_BOILERPLATE
+m4trace:configure.ac:42: -1- _LT_LINKER_BOILERPLATE
+m4trace:configure.ac:42: -1- _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], [lt_cv_prog_compiler_rtti_exceptions], [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, )="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, ) -fno-rtti -fno-exceptions"])
+m4trace:configure.ac:42: -1- _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, ) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, )], [$_LT_TAGVAR(lt_prog_compiler_pic, )@&t at m4_if([],[],[ -DPIC],[m4_if([],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, ) in
      "" | " "*) ;;
      *) _LT_TAGVAR(lt_prog_compiler_pic, )=" $_LT_TAGVAR(lt_prog_compiler_pic, )" ;;
      esac], [_LT_TAGVAR(lt_prog_compiler_pic, )=
      _LT_TAGVAR(lt_prog_compiler_can_build_shared, )=no])
-m4trace:configure.ac:40: -1- _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], [lt_cv_prog_compiler_static_works], [$lt_tmp_static_flag], [], [_LT_TAGVAR(lt_prog_compiler_static, )=])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^DSYMUTIL$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^NMEDIT$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^LIPO$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^OTOOL$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^OTOOL64$])
-m4trace:configure.ac:40: -1- LT_SYS_DLOPEN_SELF
-m4trace:configure.ac:40: -1- m4_pattern_allow([^CPP$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^CPPFLAGS$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^CPP$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^STDC_HEADERS$])
-m4trace:configure.ac:40: -1- LT_LANG([CXX])
-m4trace:configure.ac:40: -1- LT_SUPPORTED_TAG([CXX])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^CXX$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^CXXFLAGS$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^LDFLAGS$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^LIBS$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^CPPFLAGS$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^CXX$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^ac_ct_CXX$])
-m4trace:configure.ac:40: -1- _AM_DEPENDENCIES([CXX])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^CXXDEPMODE$])
-m4trace:configure.ac:40: -1- AM_CONDITIONAL([am__fastdepCXX], [
+m4trace:configure.ac:42: -1- _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], [lt_cv_prog_compiler_static_works], [$lt_tmp_static_flag], [], [_LT_TAGVAR(lt_prog_compiler_static, )=])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^DSYMUTIL$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^NMEDIT$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^LIPO$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^OTOOL$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^OTOOL64$])
+m4trace:configure.ac:42: -1- LT_SYS_DLOPEN_SELF
+m4trace:configure.ac:42: -1- m4_pattern_allow([^CPP$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^CPP$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^STDC_HEADERS$])
+m4trace:configure.ac:42: -1- LT_LANG([CXX])
+m4trace:configure.ac:42: -1- LT_SUPPORTED_TAG([CXX])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^CXX$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^CXXFLAGS$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^LDFLAGS$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^CXX$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^ac_ct_CXX$])
+m4trace:configure.ac:42: -1- _AM_DEPENDENCIES([CXX])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^CXXDEPMODE$])
+m4trace:configure.ac:42: -1- AM_CONDITIONAL([am__fastdepCXX], [
   test "x$enable_dependency_tracking" != xno \
   && test "$am_cv_CXX_dependencies_compiler_type" = gcc3])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^am__fastdepCXX_TRUE$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^am__fastdepCXX_FALSE$])
-m4trace:configure.ac:40: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_TRUE])
-m4trace:configure.ac:40: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^CXXCPP$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^CPPFLAGS$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^CXXCPP$])
-m4trace:configure.ac:40: -1- _LT_COMPILER_BOILERPLATE
-m4trace:configure.ac:40: -1- _LT_LINKER_BOILERPLATE
-m4trace:configure.ac:40: -1- _LT_CC_BASENAME([$compiler])
-m4trace:configure.ac:40: -1- LT_PATH_LD
-m4trace:configure.ac:40: -1- m4_pattern_allow([^LD$])
-m4trace:configure.ac:40: -1- _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, CXX) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, CXX)], [$_LT_TAGVAR(lt_prog_compiler_pic, CXX)@&t at m4_if([CXX],[],[ -DPIC],[m4_if([CXX],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, CXX) in
+m4trace:configure.ac:42: -1- m4_pattern_allow([^am__fastdepCXX_TRUE$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^am__fastdepCXX_FALSE$])
+m4trace:configure.ac:42: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_TRUE])
+m4trace:configure.ac:42: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^CXXCPP$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^CXXCPP$])
+m4trace:configure.ac:42: -1- _LT_COMPILER_BOILERPLATE
+m4trace:configure.ac:42: -1- _LT_LINKER_BOILERPLATE
+m4trace:configure.ac:42: -1- _LT_CC_BASENAME([$compiler])
+m4trace:configure.ac:42: -1- LT_PATH_LD
+m4trace:configure.ac:42: -1- m4_pattern_allow([^LD$])
+m4trace:configure.ac:42: -1- _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, CXX) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, CXX)], [$_LT_TAGVAR(lt_prog_compiler_pic, CXX)@&t at m4_if([CXX],[],[ -DPIC],[m4_if([CXX],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, CXX) in
      "" | " "*) ;;
      *) _LT_TAGVAR(lt_prog_compiler_pic, CXX)=" $_LT_TAGVAR(lt_prog_compiler_pic, CXX)" ;;
      esac], [_LT_TAGVAR(lt_prog_compiler_pic, CXX)=
      _LT_TAGVAR(lt_prog_compiler_can_build_shared, CXX)=no])
-m4trace:configure.ac:40: -1- _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], [lt_cv_prog_compiler_static_works_CXX], [$lt_tmp_static_flag], [], [_LT_TAGVAR(lt_prog_compiler_static, CXX)=])
-m4trace:configure.ac:41: -1- m4_pattern_allow([^RANLIB$])
-m4trace:configure.ac:42: -1- m4_pattern_allow([^STDC_HEADERS$])
-m4trace:configure.ac:44: -1- m4_pattern_allow([^HAVE_LIBIBVERBS$])
-m4trace:configure.ac:45: -1- m4_pattern_allow([^HAVE_LIBRDMACM$])
-m4trace:configure.ac:49: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+m4trace:configure.ac:42: -1- _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], [lt_cv_prog_compiler_static_works_CXX], [$lt_tmp_static_flag], [], [_LT_TAGVAR(lt_prog_compiler_static, CXX)=])
+m4trace:configure.ac:43: -1- m4_pattern_allow([^RANLIB$])
+m4trace:configure.ac:44: -1- m4_pattern_allow([^STDC_HEADERS$])
+m4trace:configure.ac:46: -1- m4_pattern_allow([^HAVE_LIBIBVERBS$])
+m4trace:configure.ac:47: -1- m4_pattern_allow([^HAVE_LIBRDMACM$])
+m4trace:configure.ac:51: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
+configure.ac:51: the top level])
+m4trace:configure.ac:54: -1- AM_CONDITIONAL([HAVE_RAW_ETH_EXP], [test "x$HAVE_RAW_ETH_EXP" = "xyes"])
+m4trace:configure.ac:54: -1- m4_pattern_allow([^HAVE_RAW_ETH_EXP_TRUE$])
+m4trace:configure.ac:54: -1- m4_pattern_allow([^HAVE_RAW_ETH_EXP_FALSE$])
+m4trace:configure.ac:54: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_EXP_TRUE])
+m4trace:configure.ac:54: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_EXP_FALSE])
+m4trace:configure.ac:56: -1- m4_pattern_allow([^HAVE_RAW_ETH_EXP$])
+m4trace:configure.ac:59: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
-configure.ac:49: the top level])
-m4trace:configure.ac:52: -1- AM_CONDITIONAL([HAVE_RAW_ETH_EXP], [test "x$HAVE_RAW_ETH_EXP" = "xyes"])
-m4trace:configure.ac:52: -1- m4_pattern_allow([^HAVE_RAW_ETH_EXP_TRUE$])
-m4trace:configure.ac:52: -1- m4_pattern_allow([^HAVE_RAW_ETH_EXP_FALSE$])
-m4trace:configure.ac:52: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_EXP_TRUE])
-m4trace:configure.ac:52: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_EXP_FALSE])
-m4trace:configure.ac:54: -1- m4_pattern_allow([^HAVE_RAW_ETH_EXP$])
-m4trace:configure.ac:57: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+configure.ac:59: the top level])
+m4trace:configure.ac:62: -1- AM_CONDITIONAL([HAVE_RAW_ETH_REG], [test "x$HAVE_RAW_ETH_REG" = "xyes"])
+m4trace:configure.ac:62: -1- m4_pattern_allow([^HAVE_RAW_ETH_REG_TRUE$])
+m4trace:configure.ac:62: -1- m4_pattern_allow([^HAVE_RAW_ETH_REG_FALSE$])
+m4trace:configure.ac:62: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_REG_TRUE])
+m4trace:configure.ac:62: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_REG_FALSE])
+m4trace:configure.ac:64: -1- m4_pattern_allow([^HAVE_RAW_ETH_REG$])
+m4trace:configure.ac:67: -1- AM_CONDITIONAL([HAVE_RAW_ETH], [true])
+m4trace:configure.ac:67: -1- m4_pattern_allow([^HAVE_RAW_ETH_TRUE$])
+m4trace:configure.ac:67: -1- m4_pattern_allow([^HAVE_RAW_ETH_FALSE$])
+m4trace:configure.ac:67: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_TRUE])
+m4trace:configure.ac:67: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_FALSE])
+m4trace:configure.ac:69: -1- m4_pattern_allow([^HAVE_RAW_ETH$])
+m4trace:configure.ac:71: -1- AM_CONDITIONAL([HAVE_RAW_ETH], [false])
+m4trace:configure.ac:71: -1- m4_pattern_allow([^HAVE_RAW_ETH_TRUE$])
+m4trace:configure.ac:71: -1- m4_pattern_allow([^HAVE_RAW_ETH_FALSE$])
+m4trace:configure.ac:71: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_TRUE])
+m4trace:configure.ac:71: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_FALSE])
+m4trace:configure.ac:75: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
-configure.ac:57: the top level])
-m4trace:configure.ac:60: -1- AM_CONDITIONAL([HAVE_RAW_ETH_REG], [test "x$HAVE_RAW_ETH_REG" = "xyes"])
-m4trace:configure.ac:60: -1- m4_pattern_allow([^HAVE_RAW_ETH_REG_TRUE$])
-m4trace:configure.ac:60: -1- m4_pattern_allow([^HAVE_RAW_ETH_REG_FALSE$])
-m4trace:configure.ac:60: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_REG_TRUE])
-m4trace:configure.ac:60: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_REG_FALSE])
-m4trace:configure.ac:62: -1- m4_pattern_allow([^HAVE_RAW_ETH_REG$])
-m4trace:configure.ac:65: -1- AM_CONDITIONAL([HAVE_RAW_ETH], [true])
-m4trace:configure.ac:65: -1- m4_pattern_allow([^HAVE_RAW_ETH_TRUE$])
-m4trace:configure.ac:65: -1- m4_pattern_allow([^HAVE_RAW_ETH_FALSE$])
-m4trace:configure.ac:65: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_TRUE])
-m4trace:configure.ac:65: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_FALSE])
-m4trace:configure.ac:67: -1- m4_pattern_allow([^HAVE_RAW_ETH$])
-m4trace:configure.ac:69: -1- AM_CONDITIONAL([HAVE_RAW_ETH], [false])
-m4trace:configure.ac:69: -1- m4_pattern_allow([^HAVE_RAW_ETH_TRUE$])
-m4trace:configure.ac:69: -1- m4_pattern_allow([^HAVE_RAW_ETH_FALSE$])
-m4trace:configure.ac:69: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_TRUE])
-m4trace:configure.ac:69: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_FALSE])
-m4trace:configure.ac:73: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+configure.ac:75: the top level])
+m4trace:configure.ac:78: -1- AM_CONDITIONAL([HAVE_XRCD], [test "x$HAVE_XRCD" = "xyes"])
+m4trace:configure.ac:78: -1- m4_pattern_allow([^HAVE_XRCD_TRUE$])
+m4trace:configure.ac:78: -1- m4_pattern_allow([^HAVE_XRCD_FALSE$])
+m4trace:configure.ac:78: -1- _AM_SUBST_NOTMAKE([HAVE_XRCD_TRUE])
+m4trace:configure.ac:78: -1- _AM_SUBST_NOTMAKE([HAVE_XRCD_FALSE])
+m4trace:configure.ac:80: -1- m4_pattern_allow([^HAVE_XRCD$])
+m4trace:configure.ac:83: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
-configure.ac:73: the top level])
-m4trace:configure.ac:76: -1- AM_CONDITIONAL([HAVE_XRCD], [test "x$HAVE_XRCD" = "xyes"])
-m4trace:configure.ac:76: -1- m4_pattern_allow([^HAVE_XRCD_TRUE$])
-m4trace:configure.ac:76: -1- m4_pattern_allow([^HAVE_XRCD_FALSE$])
-m4trace:configure.ac:76: -1- _AM_SUBST_NOTMAKE([HAVE_XRCD_TRUE])
-m4trace:configure.ac:76: -1- _AM_SUBST_NOTMAKE([HAVE_XRCD_FALSE])
-m4trace:configure.ac:78: -1- m4_pattern_allow([^HAVE_XRCD$])
-m4trace:configure.ac:81: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+configure.ac:83: the top level])
+m4trace:configure.ac:86: -1- AM_CONDITIONAL([HAVE_ENDIAN], [test "x$HAVE_ENDIAN" = "xyes"])
+m4trace:configure.ac:86: -1- m4_pattern_allow([^HAVE_ENDIAN_TRUE$])
+m4trace:configure.ac:86: -1- m4_pattern_allow([^HAVE_ENDIAN_FALSE$])
+m4trace:configure.ac:86: -1- _AM_SUBST_NOTMAKE([HAVE_ENDIAN_TRUE])
+m4trace:configure.ac:86: -1- _AM_SUBST_NOTMAKE([HAVE_ENDIAN_FALSE])
+m4trace:configure.ac:88: -1- m4_pattern_allow([^HAVE_ENDIAN$])
+m4trace:configure.ac:91: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
-configure.ac:81: the top level])
-m4trace:configure.ac:84: -1- AM_CONDITIONAL([HAVE_ENDIAN], [test "x$HAVE_ENDIAN" = "xyes"])
-m4trace:configure.ac:84: -1- m4_pattern_allow([^HAVE_ENDIAN_TRUE$])
-m4trace:configure.ac:84: -1- m4_pattern_allow([^HAVE_ENDIAN_FALSE$])
-m4trace:configure.ac:84: -1- _AM_SUBST_NOTMAKE([HAVE_ENDIAN_TRUE])
-m4trace:configure.ac:84: -1- _AM_SUBST_NOTMAKE([HAVE_ENDIAN_FALSE])
-m4trace:configure.ac:86: -1- m4_pattern_allow([^HAVE_ENDIAN$])
-m4trace:configure.ac:89: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+configure.ac:91: the top level])
+m4trace:configure.ac:94: -1- AM_CONDITIONAL([HAVE_SCIF], [test "x$HAVE_SCIF" = "xyes"])
+m4trace:configure.ac:94: -1- m4_pattern_allow([^HAVE_SCIF_TRUE$])
+m4trace:configure.ac:94: -1- m4_pattern_allow([^HAVE_SCIF_FALSE$])
+m4trace:configure.ac:94: -1- _AM_SUBST_NOTMAKE([HAVE_SCIF_TRUE])
+m4trace:configure.ac:94: -1- _AM_SUBST_NOTMAKE([HAVE_SCIF_FALSE])
+m4trace:configure.ac:96: -1- m4_pattern_allow([^HAVE_SCIF$])
+m4trace:configure.ac:100: -1- AM_CONDITIONAL([HAVE_VERBS_EXP], [test "x$HAVE_VERBS_EXP" = "xyes"])
+m4trace:configure.ac:100: -1- m4_pattern_allow([^HAVE_VERBS_EXP_TRUE$])
+m4trace:configure.ac:100: -1- m4_pattern_allow([^HAVE_VERBS_EXP_FALSE$])
+m4trace:configure.ac:100: -1- _AM_SUBST_NOTMAKE([HAVE_VERBS_EXP_TRUE])
+m4trace:configure.ac:100: -1- _AM_SUBST_NOTMAKE([HAVE_VERBS_EXP_FALSE])
+m4trace:configure.ac:102: -1- m4_pattern_allow([^HAVE_VERBS_EXP$])
+m4trace:configure.ac:107: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
-configure.ac:89: the top level])
-m4trace:configure.ac:92: -1- AM_CONDITIONAL([HAVE_SCIF], [test "x$HAVE_SCIF" = "xyes"])
-m4trace:configure.ac:92: -1- m4_pattern_allow([^HAVE_SCIF_TRUE$])
-m4trace:configure.ac:92: -1- m4_pattern_allow([^HAVE_SCIF_FALSE$])
-m4trace:configure.ac:92: -1- _AM_SUBST_NOTMAKE([HAVE_SCIF_TRUE])
-m4trace:configure.ac:92: -1- _AM_SUBST_NOTMAKE([HAVE_SCIF_FALSE])
-m4trace:configure.ac:94: -1- m4_pattern_allow([^HAVE_SCIF$])
-m4trace:configure.ac:98: -1- AM_CONDITIONAL([HAVE_VERBS_EXP], [test "x$HAVE_VERBS_EXP" = "xyes"])
-m4trace:configure.ac:98: -1- m4_pattern_allow([^HAVE_VERBS_EXP_TRUE$])
-m4trace:configure.ac:98: -1- m4_pattern_allow([^HAVE_VERBS_EXP_FALSE$])
-m4trace:configure.ac:98: -1- _AM_SUBST_NOTMAKE([HAVE_VERBS_EXP_TRUE])
-m4trace:configure.ac:98: -1- _AM_SUBST_NOTMAKE([HAVE_VERBS_EXP_FALSE])
-m4trace:configure.ac:100: -1- m4_pattern_allow([^HAVE_VERBS_EXP$])
-m4trace:configure.ac:105: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+configure.ac:107: the top level])
+m4trace:configure.ac:111: -1- AM_CONDITIONAL([HAVE_MASKED_ATOMICS], [test "x$HAVE_MASKED_ATOMICS" = "xyes"])
+m4trace:configure.ac:111: -1- m4_pattern_allow([^HAVE_MASKED_ATOMICS_TRUE$])
+m4trace:configure.ac:111: -1- m4_pattern_allow([^HAVE_MASKED_ATOMICS_FALSE$])
+m4trace:configure.ac:111: -1- _AM_SUBST_NOTMAKE([HAVE_MASKED_ATOMICS_TRUE])
+m4trace:configure.ac:111: -1- _AM_SUBST_NOTMAKE([HAVE_MASKED_ATOMICS_FALSE])
+m4trace:configure.ac:113: -1- m4_pattern_allow([^HAVE_MASKED_ATOMICS$])
+m4trace:configure.ac:116: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
-configure.ac:105: the top level])
-m4trace:configure.ac:109: -1- AM_CONDITIONAL([HAVE_MASKED_ATOMICS], [test "x$HAVE_MASKED_ATOMICS" = "xyes"])
-m4trace:configure.ac:109: -1- m4_pattern_allow([^HAVE_MASKED_ATOMICS_TRUE$])
-m4trace:configure.ac:109: -1- m4_pattern_allow([^HAVE_MASKED_ATOMICS_FALSE$])
-m4trace:configure.ac:109: -1- _AM_SUBST_NOTMAKE([HAVE_MASKED_ATOMICS_TRUE])
-m4trace:configure.ac:109: -1- _AM_SUBST_NOTMAKE([HAVE_MASKED_ATOMICS_FALSE])
-m4trace:configure.ac:111: -1- m4_pattern_allow([^HAVE_MASKED_ATOMICS$])
-m4trace:configure.ac:114: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+configure.ac:116: the top level])
+m4trace:configure.ac:120: -1- AM_CONDITIONAL([HAVE_RSS_EXP], [test "x$HAVE_RSS_EXP" = "xyes"])
+m4trace:configure.ac:120: -1- m4_pattern_allow([^HAVE_RSS_EXP_TRUE$])
+m4trace:configure.ac:120: -1- m4_pattern_allow([^HAVE_RSS_EXP_FALSE$])
+m4trace:configure.ac:120: -1- _AM_SUBST_NOTMAKE([HAVE_RSS_EXP_TRUE])
+m4trace:configure.ac:120: -1- _AM_SUBST_NOTMAKE([HAVE_RSS_EXP_FALSE])
+m4trace:configure.ac:122: -1- m4_pattern_allow([^HAVE_RSS_EXP$])
+m4trace:configure.ac:125: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
-configure.ac:114: the top level])
-m4trace:configure.ac:118: -1- AM_CONDITIONAL([HAVE_RSS_EXP], [test "x$HAVE_RSS_EXP" = "xyes"])
-m4trace:configure.ac:118: -1- m4_pattern_allow([^HAVE_RSS_EXP_TRUE$])
-m4trace:configure.ac:118: -1- m4_pattern_allow([^HAVE_RSS_EXP_FALSE$])
-m4trace:configure.ac:118: -1- _AM_SUBST_NOTMAKE([HAVE_RSS_EXP_TRUE])
-m4trace:configure.ac:118: -1- _AM_SUBST_NOTMAKE([HAVE_RSS_EXP_FALSE])
-m4trace:configure.ac:120: -1- m4_pattern_allow([^HAVE_RSS_EXP$])
-m4trace:configure.ac:123: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+configure.ac:125: the top level])
+m4trace:configure.ac:129: -1- AM_CONDITIONAL([HAVE_DC], [test "x$HAVE_DC" = "xyes"])
+m4trace:configure.ac:129: -1- m4_pattern_allow([^HAVE_DC_TRUE$])
+m4trace:configure.ac:129: -1- m4_pattern_allow([^HAVE_DC_FALSE$])
+m4trace:configure.ac:129: -1- _AM_SUBST_NOTMAKE([HAVE_DC_TRUE])
+m4trace:configure.ac:129: -1- _AM_SUBST_NOTMAKE([HAVE_DC_FALSE])
+m4trace:configure.ac:131: -1- m4_pattern_allow([^HAVE_DC$])
+m4trace:configure.ac:134: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
-configure.ac:123: the top level])
-m4trace:configure.ac:127: -1- AM_CONDITIONAL([HAVE_DC], [test "x$HAVE_DC" = "xyes"])
-m4trace:configure.ac:127: -1- m4_pattern_allow([^HAVE_DC_TRUE$])
-m4trace:configure.ac:127: -1- m4_pattern_allow([^HAVE_DC_FALSE$])
-m4trace:configure.ac:127: -1- _AM_SUBST_NOTMAKE([HAVE_DC_TRUE])
-m4trace:configure.ac:127: -1- _AM_SUBST_NOTMAKE([HAVE_DC_FALSE])
-m4trace:configure.ac:129: -1- m4_pattern_allow([^HAVE_DC$])
-m4trace:configure.ac:132: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+configure.ac:134: the top level])
+m4trace:configure.ac:138: -1- AM_CONDITIONAL([HAVE_ACCL_VERBS], [test "x$HAVE_ACCL_VERBS" = "xyes"])
+m4trace:configure.ac:138: -1- m4_pattern_allow([^HAVE_ACCL_VERBS_TRUE$])
+m4trace:configure.ac:138: -1- m4_pattern_allow([^HAVE_ACCL_VERBS_FALSE$])
+m4trace:configure.ac:138: -1- _AM_SUBST_NOTMAKE([HAVE_ACCL_VERBS_TRUE])
+m4trace:configure.ac:138: -1- _AM_SUBST_NOTMAKE([HAVE_ACCL_VERBS_FALSE])
+m4trace:configure.ac:140: -1- m4_pattern_allow([^HAVE_ACCL_VERBS$])
+m4trace:configure.ac:143: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
-configure.ac:132: the top level])
-m4trace:configure.ac:136: -1- AM_CONDITIONAL([HAVE_ACCL_VERBS], [test "x$HAVE_ACCL_VERBS" = "xyes"])
-m4trace:configure.ac:136: -1- m4_pattern_allow([^HAVE_ACCL_VERBS_TRUE$])
-m4trace:configure.ac:136: -1- m4_pattern_allow([^HAVE_ACCL_VERBS_FALSE$])
-m4trace:configure.ac:136: -1- _AM_SUBST_NOTMAKE([HAVE_ACCL_VERBS_TRUE])
-m4trace:configure.ac:136: -1- _AM_SUBST_NOTMAKE([HAVE_ACCL_VERBS_FALSE])
-m4trace:configure.ac:138: -1- m4_pattern_allow([^HAVE_ACCL_VERBS$])
-m4trace:configure.ac:141: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+configure.ac:143: the top level])
+m4trace:configure.ac:147: -1- AM_CONDITIONAL([HAVE_ODP], [test "x$HAVE_ODP" = "xyes"])
+m4trace:configure.ac:147: -1- m4_pattern_allow([^HAVE_ODP_TRUE$])
+m4trace:configure.ac:147: -1- m4_pattern_allow([^HAVE_ODP_FALSE$])
+m4trace:configure.ac:147: -1- _AM_SUBST_NOTMAKE([HAVE_ODP_TRUE])
+m4trace:configure.ac:147: -1- _AM_SUBST_NOTMAKE([HAVE_ODP_FALSE])
+m4trace:configure.ac:149: -1- m4_pattern_allow([^HAVE_ODP$])
+m4trace:configure.ac:153: -1- m4_pattern_allow([^HAVE_CUDA$])
+m4trace:configure.ac:154: -1- m4_pattern_allow([^CUDA_PATH$])
+m4trace:configure.ac:158: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
-configure.ac:141: the top level])
-m4trace:configure.ac:145: -1- AM_CONDITIONAL([HAVE_ODP], [test "x$HAVE_ODP" = "xyes"])
-m4trace:configure.ac:145: -1- m4_pattern_allow([^HAVE_ODP_TRUE$])
-m4trace:configure.ac:145: -1- m4_pattern_allow([^HAVE_ODP_FALSE$])
-m4trace:configure.ac:145: -1- _AM_SUBST_NOTMAKE([HAVE_ODP_TRUE])
-m4trace:configure.ac:145: -1- _AM_SUBST_NOTMAKE([HAVE_ODP_FALSE])
-m4trace:configure.ac:147: -1- m4_pattern_allow([^HAVE_ODP$])
-m4trace:configure.ac:151: -1- m4_pattern_allow([^HAVE_CUDA$])
-m4trace:configure.ac:152: -1- m4_pattern_allow([^CUDA_PATH$])
-m4trace:configure.ac:157: -1- m4_pattern_allow([^LIBUMAD$])
-m4trace:configure.ac:158: -1- m4_pattern_allow([^LIBMATH$])
-m4trace:configure.ac:160: -1- m4_pattern_allow([^LIB@&t at OBJS$])
-m4trace:configure.ac:160: -1- m4_pattern_allow([^LTLIBOBJS$])
-m4trace:configure.ac:160: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])
-m4trace:configure.ac:160: -1- m4_pattern_allow([^am__EXEEXT_TRUE$])
-m4trace:configure.ac:160: -1- m4_pattern_allow([^am__EXEEXT_FALSE$])
-m4trace:configure.ac:160: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE])
-m4trace:configure.ac:160: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE])
-m4trace:configure.ac:160: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"])
-m4trace:configure.ac:160: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS
-m4trace:configure.ac:160: -1- _LT_PROG_LTMAIN
+configure.ac:158: the top level])
+m4trace:configure.ac:162: -1- AM_CONDITIONAL([HAVE_SCATTER_FCS], [test "x$HAVE_SCATTER_FCS" = "xyes"])
+m4trace:configure.ac:162: -1- m4_pattern_allow([^HAVE_SCATTER_FCS_TRUE$])
+m4trace:configure.ac:162: -1- m4_pattern_allow([^HAVE_SCATTER_FCS_FALSE$])
+m4trace:configure.ac:162: -1- _AM_SUBST_NOTMAKE([HAVE_SCATTER_FCS_TRUE])
+m4trace:configure.ac:162: -1- _AM_SUBST_NOTMAKE([HAVE_SCATTER_FCS_FALSE])
+m4trace:configure.ac:164: -1- m4_pattern_allow([^HAVE_SCATTER_FCS$])
+m4trace:configure.ac:168: -1- m4_pattern_allow([^LIBUMAD$])
+m4trace:configure.ac:169: -1- m4_pattern_allow([^LIBMATH$])
+m4trace:configure.ac:171: -1- m4_pattern_allow([^LIB@&t at OBJS$])
+m4trace:configure.ac:171: -1- m4_pattern_allow([^LTLIBOBJS$])
+m4trace:configure.ac:171: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])
+m4trace:configure.ac:171: -1- m4_pattern_allow([^am__EXEEXT_TRUE$])
+m4trace:configure.ac:171: -1- m4_pattern_allow([^am__EXEEXT_FALSE$])
+m4trace:configure.ac:171: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE])
+m4trace:configure.ac:171: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE])
+m4trace:configure.ac:171: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"])
+m4trace:configure.ac:171: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS
+m4trace:configure.ac:171: -1- _LT_PROG_LTMAIN
diff --git a/autom4te.cache/traces.1 b/autom4te.cache/traces.1
index 59abe99..02f0f3c 100644
--- a/autom4te.cache/traces.1
+++ b/autom4te.cache/traces.1
@@ -1,4 +1,4 @@
-m4trace:configure.ac:14: -1- AC_INIT([perftest], [5.5], [linux-rdma at vger.kernel.org])
+m4trace:configure.ac:14: -1- AC_INIT([perftest], [5.6], [linux-rdma at vger.kernel.org])
 m4trace:configure.ac:14: -1- m4_pattern_forbid([^_?A[CHUM]_])
 m4trace:configure.ac:14: -1- m4_pattern_forbid([_AC_])
 m4trace:configure.ac:14: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
@@ -245,589 +245,605 @@ m4trace:configure.ac:24: -1- m4_pattern_allow([^CUDA_H_PATH$])
 m4trace:configure.ac:25: -1- AC_SUBST([RANLIB])
 m4trace:configure.ac:25: -1- AC_SUBST_TRACE([RANLIB])
 m4trace:configure.ac:25: -1- m4_pattern_allow([^RANLIB$])
-m4trace:configure.ac:36: -1- AC_SUBST([CC])
-m4trace:configure.ac:36: -1- AC_SUBST_TRACE([CC])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^CC$])
-m4trace:configure.ac:36: -1- AC_SUBST([CFLAGS])
-m4trace:configure.ac:36: -1- AC_SUBST_TRACE([CFLAGS])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^CFLAGS$])
-m4trace:configure.ac:36: -1- AC_SUBST([LDFLAGS])
-m4trace:configure.ac:36: -1- AC_SUBST_TRACE([LDFLAGS])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^LDFLAGS$])
-m4trace:configure.ac:36: -1- AC_SUBST([LIBS])
-m4trace:configure.ac:36: -1- AC_SUBST_TRACE([LIBS])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^LIBS$])
-m4trace:configure.ac:36: -1- AC_SUBST([CPPFLAGS])
-m4trace:configure.ac:36: -1- AC_SUBST_TRACE([CPPFLAGS])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^CPPFLAGS$])
-m4trace:configure.ac:36: -1- AC_SUBST([CC])
-m4trace:configure.ac:36: -1- AC_SUBST_TRACE([CC])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^CC$])
-m4trace:configure.ac:36: -1- AC_SUBST([CC])
-m4trace:configure.ac:36: -1- AC_SUBST_TRACE([CC])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^CC$])
-m4trace:configure.ac:36: -1- AC_SUBST([CC])
-m4trace:configure.ac:36: -1- AC_SUBST_TRACE([CC])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^CC$])
-m4trace:configure.ac:36: -1- AC_SUBST([CC])
-m4trace:configure.ac:36: -1- AC_SUBST_TRACE([CC])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^CC$])
-m4trace:configure.ac:36: -1- AC_SUBST([ac_ct_CC])
-m4trace:configure.ac:36: -1- AC_SUBST_TRACE([ac_ct_CC])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^ac_ct_CC$])
-m4trace:configure.ac:36: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])
-m4trace:configure.ac:36: -1- AC_SUBST_TRACE([EXEEXT])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^EXEEXT$])
-m4trace:configure.ac:36: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
-m4trace:configure.ac:36: -1- AC_SUBST_TRACE([OBJEXT])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^OBJEXT$])
-m4trace:configure.ac:36: -1- AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])
-m4trace:configure.ac:36: -1- AC_SUBST_TRACE([DEPDIR])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^DEPDIR$])
-m4trace:configure.ac:36: -1- AC_SUBST([am__include])
-m4trace:configure.ac:36: -1- AC_SUBST_TRACE([am__include])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^am__include$])
-m4trace:configure.ac:36: -1- AC_SUBST([am__quote])
-m4trace:configure.ac:36: -1- AC_SUBST_TRACE([am__quote])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^am__quote$])
-m4trace:configure.ac:36: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
-m4trace:configure.ac:36: -1- AC_SUBST([AMDEP_TRUE])
-m4trace:configure.ac:36: -1- AC_SUBST_TRACE([AMDEP_TRUE])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^AMDEP_TRUE$])
-m4trace:configure.ac:36: -1- AC_SUBST([AMDEP_FALSE])
-m4trace:configure.ac:36: -1- AC_SUBST_TRACE([AMDEP_FALSE])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^AMDEP_FALSE$])
-m4trace:configure.ac:36: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE])
-m4trace:configure.ac:36: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE])
-m4trace:configure.ac:36: -1- AC_SUBST([AMDEPBACKSLASH])
-m4trace:configure.ac:36: -1- AC_SUBST_TRACE([AMDEPBACKSLASH])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^AMDEPBACKSLASH$])
-m4trace:configure.ac:36: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])
-m4trace:configure.ac:36: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type])
-m4trace:configure.ac:36: -1- AC_SUBST_TRACE([CCDEPMODE])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^CCDEPMODE$])
-m4trace:configure.ac:36: -1- AM_CONDITIONAL([am__fastdepCC], [
+m4trace:configure.ac:38: -1- AC_SUBST([CC])
+m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CC])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:38: -1- AC_SUBST([CFLAGS])
+m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CFLAGS])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^CFLAGS$])
+m4trace:configure.ac:38: -1- AC_SUBST([LDFLAGS])
+m4trace:configure.ac:38: -1- AC_SUBST_TRACE([LDFLAGS])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^LDFLAGS$])
+m4trace:configure.ac:38: -1- AC_SUBST([LIBS])
+m4trace:configure.ac:38: -1- AC_SUBST_TRACE([LIBS])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:38: -1- AC_SUBST([CPPFLAGS])
+m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CPPFLAGS])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:38: -1- AC_SUBST([CC])
+m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CC])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:38: -1- AC_SUBST([CC])
+m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CC])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:38: -1- AC_SUBST([CC])
+m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CC])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:38: -1- AC_SUBST([CC])
+m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CC])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:38: -1- AC_SUBST([ac_ct_CC])
+m4trace:configure.ac:38: -1- AC_SUBST_TRACE([ac_ct_CC])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^ac_ct_CC$])
+m4trace:configure.ac:38: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])
+m4trace:configure.ac:38: -1- AC_SUBST_TRACE([EXEEXT])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^EXEEXT$])
+m4trace:configure.ac:38: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
+m4trace:configure.ac:38: -1- AC_SUBST_TRACE([OBJEXT])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^OBJEXT$])
+m4trace:configure.ac:38: -1- AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])
+m4trace:configure.ac:38: -1- AC_SUBST_TRACE([DEPDIR])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^DEPDIR$])
+m4trace:configure.ac:38: -1- AC_SUBST([am__include])
+m4trace:configure.ac:38: -1- AC_SUBST_TRACE([am__include])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^am__include$])
+m4trace:configure.ac:38: -1- AC_SUBST([am__quote])
+m4trace:configure.ac:38: -1- AC_SUBST_TRACE([am__quote])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^am__quote$])
+m4trace:configure.ac:38: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+m4trace:configure.ac:38: -1- AC_SUBST([AMDEP_TRUE])
+m4trace:configure.ac:38: -1- AC_SUBST_TRACE([AMDEP_TRUE])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^AMDEP_TRUE$])
+m4trace:configure.ac:38: -1- AC_SUBST([AMDEP_FALSE])
+m4trace:configure.ac:38: -1- AC_SUBST_TRACE([AMDEP_FALSE])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^AMDEP_FALSE$])
+m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE])
+m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE])
+m4trace:configure.ac:38: -1- AC_SUBST([AMDEPBACKSLASH])
+m4trace:configure.ac:38: -1- AC_SUBST_TRACE([AMDEPBACKSLASH])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^AMDEPBACKSLASH$])
+m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])
+m4trace:configure.ac:38: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type])
+m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CCDEPMODE])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^CCDEPMODE$])
+m4trace:configure.ac:38: -1- AM_CONDITIONAL([am__fastdepCC], [
   test "x$enable_dependency_tracking" != xno \
   && test "$am_cv_CC_dependencies_compiler_type" = gcc3])
-m4trace:configure.ac:36: -1- AC_SUBST([am__fastdepCC_TRUE])
-m4trace:configure.ac:36: -1- AC_SUBST_TRACE([am__fastdepCC_TRUE])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
-m4trace:configure.ac:36: -1- AC_SUBST([am__fastdepCC_FALSE])
-m4trace:configure.ac:36: -1- AC_SUBST_TRACE([am__fastdepCC_FALSE])
-m4trace:configure.ac:36: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
-m4trace:configure.ac:36: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE])
-m4trace:configure.ac:36: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE])
-m4trace:configure.ac:37: -1- AC_SUBST([CXX])
-m4trace:configure.ac:37: -1- AC_SUBST_TRACE([CXX])
-m4trace:configure.ac:37: -1- m4_pattern_allow([^CXX$])
-m4trace:configure.ac:37: -1- AC_SUBST([CXXFLAGS])
-m4trace:configure.ac:37: -1- AC_SUBST_TRACE([CXXFLAGS])
-m4trace:configure.ac:37: -1- m4_pattern_allow([^CXXFLAGS$])
-m4trace:configure.ac:37: -1- AC_SUBST([LDFLAGS])
-m4trace:configure.ac:37: -1- AC_SUBST_TRACE([LDFLAGS])
-m4trace:configure.ac:37: -1- m4_pattern_allow([^LDFLAGS$])
-m4trace:configure.ac:37: -1- AC_SUBST([LIBS])
-m4trace:configure.ac:37: -1- AC_SUBST_TRACE([LIBS])
-m4trace:configure.ac:37: -1- m4_pattern_allow([^LIBS$])
-m4trace:configure.ac:37: -1- AC_SUBST([CPPFLAGS])
-m4trace:configure.ac:37: -1- AC_SUBST_TRACE([CPPFLAGS])
-m4trace:configure.ac:37: -1- m4_pattern_allow([^CPPFLAGS$])
-m4trace:configure.ac:37: -1- AC_SUBST([CXX])
-m4trace:configure.ac:37: -1- AC_SUBST_TRACE([CXX])
-m4trace:configure.ac:37: -1- m4_pattern_allow([^CXX$])
-m4trace:configure.ac:37: -1- AC_SUBST([ac_ct_CXX])
-m4trace:configure.ac:37: -1- AC_SUBST_TRACE([ac_ct_CXX])
-m4trace:configure.ac:37: -1- m4_pattern_allow([^ac_ct_CXX$])
-m4trace:configure.ac:37: -1- AC_SUBST([CXXDEPMODE], [depmode=$am_cv_CXX_dependencies_compiler_type])
-m4trace:configure.ac:37: -1- AC_SUBST_TRACE([CXXDEPMODE])
-m4trace:configure.ac:37: -1- m4_pattern_allow([^CXXDEPMODE$])
-m4trace:configure.ac:37: -1- AM_CONDITIONAL([am__fastdepCXX], [
+m4trace:configure.ac:38: -1- AC_SUBST([am__fastdepCC_TRUE])
+m4trace:configure.ac:38: -1- AC_SUBST_TRACE([am__fastdepCC_TRUE])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
+m4trace:configure.ac:38: -1- AC_SUBST([am__fastdepCC_FALSE])
+m4trace:configure.ac:38: -1- AC_SUBST_TRACE([am__fastdepCC_FALSE])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
+m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE])
+m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE])
+m4trace:configure.ac:39: -1- AC_SUBST([CXX])
+m4trace:configure.ac:39: -1- AC_SUBST_TRACE([CXX])
+m4trace:configure.ac:39: -1- m4_pattern_allow([^CXX$])
+m4trace:configure.ac:39: -1- AC_SUBST([CXXFLAGS])
+m4trace:configure.ac:39: -1- AC_SUBST_TRACE([CXXFLAGS])
+m4trace:configure.ac:39: -1- m4_pattern_allow([^CXXFLAGS$])
+m4trace:configure.ac:39: -1- AC_SUBST([LDFLAGS])
+m4trace:configure.ac:39: -1- AC_SUBST_TRACE([LDFLAGS])
+m4trace:configure.ac:39: -1- m4_pattern_allow([^LDFLAGS$])
+m4trace:configure.ac:39: -1- AC_SUBST([LIBS])
+m4trace:configure.ac:39: -1- AC_SUBST_TRACE([LIBS])
+m4trace:configure.ac:39: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:39: -1- AC_SUBST([CPPFLAGS])
+m4trace:configure.ac:39: -1- AC_SUBST_TRACE([CPPFLAGS])
+m4trace:configure.ac:39: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:39: -1- AC_SUBST([CXX])
+m4trace:configure.ac:39: -1- AC_SUBST_TRACE([CXX])
+m4trace:configure.ac:39: -1- m4_pattern_allow([^CXX$])
+m4trace:configure.ac:39: -1- AC_SUBST([ac_ct_CXX])
+m4trace:configure.ac:39: -1- AC_SUBST_TRACE([ac_ct_CXX])
+m4trace:configure.ac:39: -1- m4_pattern_allow([^ac_ct_CXX$])
+m4trace:configure.ac:39: -1- AC_SUBST([CXXDEPMODE], [depmode=$am_cv_CXX_dependencies_compiler_type])
+m4trace:configure.ac:39: -1- AC_SUBST_TRACE([CXXDEPMODE])
+m4trace:configure.ac:39: -1- m4_pattern_allow([^CXXDEPMODE$])
+m4trace:configure.ac:39: -1- AM_CONDITIONAL([am__fastdepCXX], [
   test "x$enable_dependency_tracking" != xno \
   && test "$am_cv_CXX_dependencies_compiler_type" = gcc3])
-m4trace:configure.ac:37: -1- AC_SUBST([am__fastdepCXX_TRUE])
-m4trace:configure.ac:37: -1- AC_SUBST_TRACE([am__fastdepCXX_TRUE])
-m4trace:configure.ac:37: -1- m4_pattern_allow([^am__fastdepCXX_TRUE$])
-m4trace:configure.ac:37: -1- AC_SUBST([am__fastdepCXX_FALSE])
-m4trace:configure.ac:37: -1- AC_SUBST_TRACE([am__fastdepCXX_FALSE])
-m4trace:configure.ac:37: -1- m4_pattern_allow([^am__fastdepCXX_FALSE$])
-m4trace:configure.ac:37: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_TRUE])
-m4trace:configure.ac:37: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE])
-m4trace:configure.ac:38: -1- AC_SUBST([CCAS])
-m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CCAS])
-m4trace:configure.ac:38: -1- m4_pattern_allow([^CCAS$])
-m4trace:configure.ac:38: -1- AC_SUBST([CCASFLAGS])
-m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CCASFLAGS])
-m4trace:configure.ac:38: -1- m4_pattern_allow([^CCASFLAGS$])
-m4trace:configure.ac:38: -1- AC_SUBST([CCASDEPMODE], [depmode=$am_cv_CCAS_dependencies_compiler_type])
-m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CCASDEPMODE])
-m4trace:configure.ac:38: -1- m4_pattern_allow([^CCASDEPMODE$])
-m4trace:configure.ac:38: -1- AM_CONDITIONAL([am__fastdepCCAS], [
+m4trace:configure.ac:39: -1- AC_SUBST([am__fastdepCXX_TRUE])
+m4trace:configure.ac:39: -1- AC_SUBST_TRACE([am__fastdepCXX_TRUE])
+m4trace:configure.ac:39: -1- m4_pattern_allow([^am__fastdepCXX_TRUE$])
+m4trace:configure.ac:39: -1- AC_SUBST([am__fastdepCXX_FALSE])
+m4trace:configure.ac:39: -1- AC_SUBST_TRACE([am__fastdepCXX_FALSE])
+m4trace:configure.ac:39: -1- m4_pattern_allow([^am__fastdepCXX_FALSE$])
+m4trace:configure.ac:39: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_TRUE])
+m4trace:configure.ac:39: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE])
+m4trace:configure.ac:40: -1- AC_SUBST([CCAS])
+m4trace:configure.ac:40: -1- AC_SUBST_TRACE([CCAS])
+m4trace:configure.ac:40: -1- m4_pattern_allow([^CCAS$])
+m4trace:configure.ac:40: -1- AC_SUBST([CCASFLAGS])
+m4trace:configure.ac:40: -1- AC_SUBST_TRACE([CCASFLAGS])
+m4trace:configure.ac:40: -1- m4_pattern_allow([^CCASFLAGS$])
+m4trace:configure.ac:40: -1- AC_SUBST([CCASDEPMODE], [depmode=$am_cv_CCAS_dependencies_compiler_type])
+m4trace:configure.ac:40: -1- AC_SUBST_TRACE([CCASDEPMODE])
+m4trace:configure.ac:40: -1- m4_pattern_allow([^CCASDEPMODE$])
+m4trace:configure.ac:40: -1- AM_CONDITIONAL([am__fastdepCCAS], [
   test "x$enable_dependency_tracking" != xno \
   && test "$am_cv_CCAS_dependencies_compiler_type" = gcc3])
-m4trace:configure.ac:38: -1- AC_SUBST([am__fastdepCCAS_TRUE])
-m4trace:configure.ac:38: -1- AC_SUBST_TRACE([am__fastdepCCAS_TRUE])
-m4trace:configure.ac:38: -1- m4_pattern_allow([^am__fastdepCCAS_TRUE$])
-m4trace:configure.ac:38: -1- AC_SUBST([am__fastdepCCAS_FALSE])
-m4trace:configure.ac:38: -1- AC_SUBST_TRACE([am__fastdepCCAS_FALSE])
-m4trace:configure.ac:38: -1- m4_pattern_allow([^am__fastdepCCAS_FALSE$])
-m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([am__fastdepCCAS_TRUE])
-m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([am__fastdepCCAS_FALSE])
-m4trace:configure.ac:39: -1- AC_REQUIRE_AUX_FILE([install-sh])
-m4trace:configure.ac:39: -1- AC_SUBST([INSTALL_PROGRAM])
-m4trace:configure.ac:39: -1- AC_SUBST_TRACE([INSTALL_PROGRAM])
-m4trace:configure.ac:39: -1- m4_pattern_allow([^INSTALL_PROGRAM$])
-m4trace:configure.ac:39: -1- AC_SUBST([INSTALL_SCRIPT])
-m4trace:configure.ac:39: -1- AC_SUBST_TRACE([INSTALL_SCRIPT])
-m4trace:configure.ac:39: -1- m4_pattern_allow([^INSTALL_SCRIPT$])
-m4trace:configure.ac:39: -1- AC_SUBST([INSTALL_DATA])
-m4trace:configure.ac:39: -1- AC_SUBST_TRACE([INSTALL_DATA])
-m4trace:configure.ac:39: -1- m4_pattern_allow([^INSTALL_DATA$])
-m4trace:configure.ac:40: -1- AC_PROG_LIBTOOL
-m4trace:configure.ac:40: -1- _m4_warn([obsolete], [The macro `AC_PROG_LIBTOOL' is obsolete.
+m4trace:configure.ac:40: -1- AC_SUBST([am__fastdepCCAS_TRUE])
+m4trace:configure.ac:40: -1- AC_SUBST_TRACE([am__fastdepCCAS_TRUE])
+m4trace:configure.ac:40: -1- m4_pattern_allow([^am__fastdepCCAS_TRUE$])
+m4trace:configure.ac:40: -1- AC_SUBST([am__fastdepCCAS_FALSE])
+m4trace:configure.ac:40: -1- AC_SUBST_TRACE([am__fastdepCCAS_FALSE])
+m4trace:configure.ac:40: -1- m4_pattern_allow([^am__fastdepCCAS_FALSE$])
+m4trace:configure.ac:40: -1- _AM_SUBST_NOTMAKE([am__fastdepCCAS_TRUE])
+m4trace:configure.ac:40: -1- _AM_SUBST_NOTMAKE([am__fastdepCCAS_FALSE])
+m4trace:configure.ac:41: -1- AC_REQUIRE_AUX_FILE([install-sh])
+m4trace:configure.ac:41: -1- AC_SUBST([INSTALL_PROGRAM])
+m4trace:configure.ac:41: -1- AC_SUBST_TRACE([INSTALL_PROGRAM])
+m4trace:configure.ac:41: -1- m4_pattern_allow([^INSTALL_PROGRAM$])
+m4trace:configure.ac:41: -1- AC_SUBST([INSTALL_SCRIPT])
+m4trace:configure.ac:41: -1- AC_SUBST_TRACE([INSTALL_SCRIPT])
+m4trace:configure.ac:41: -1- m4_pattern_allow([^INSTALL_SCRIPT$])
+m4trace:configure.ac:41: -1- AC_SUBST([INSTALL_DATA])
+m4trace:configure.ac:41: -1- AC_SUBST_TRACE([INSTALL_DATA])
+m4trace:configure.ac:41: -1- m4_pattern_allow([^INSTALL_DATA$])
+m4trace:configure.ac:42: -1- AC_PROG_LIBTOOL
+m4trace:configure.ac:42: -1- _m4_warn([obsolete], [The macro `AC_PROG_LIBTOOL' is obsolete.
 You should run autoupdate.], [aclocal.m4:123: AC_PROG_LIBTOOL is expanded from...
-configure.ac:40: the top level])
-m4trace:configure.ac:40: -1- LT_INIT
-m4trace:configure.ac:40: -1- m4_pattern_forbid([^_?LT_[A-Z_]+$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])
-m4trace:configure.ac:40: -1- AC_REQUIRE_AUX_FILE([ltmain.sh])
-m4trace:configure.ac:40: -1- AC_SUBST([LIBTOOL])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([LIBTOOL])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^LIBTOOL$])
-m4trace:configure.ac:40: -1- AC_CANONICAL_HOST
-m4trace:configure.ac:40: -1- AC_CANONICAL_BUILD
-m4trace:configure.ac:40: -1- AC_REQUIRE_AUX_FILE([config.sub])
-m4trace:configure.ac:40: -1- AC_REQUIRE_AUX_FILE([config.guess])
-m4trace:configure.ac:40: -1- AC_SUBST([build], [$ac_cv_build])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([build])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^build$])
-m4trace:configure.ac:40: -1- AC_SUBST([build_cpu], [$[1]])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([build_cpu])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^build_cpu$])
-m4trace:configure.ac:40: -1- AC_SUBST([build_vendor], [$[2]])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([build_vendor])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^build_vendor$])
-m4trace:configure.ac:40: -1- AC_SUBST([build_os])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([build_os])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^build_os$])
-m4trace:configure.ac:40: -1- AC_SUBST([host], [$ac_cv_host])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([host])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^host$])
-m4trace:configure.ac:40: -1- AC_SUBST([host_cpu], [$[1]])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([host_cpu])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^host_cpu$])
-m4trace:configure.ac:40: -1- AC_SUBST([host_vendor], [$[2]])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([host_vendor])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^host_vendor$])
-m4trace:configure.ac:40: -1- AC_SUBST([host_os])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([host_os])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^host_os$])
-m4trace:configure.ac:40: -1- AC_SUBST([SED])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([SED])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^SED$])
-m4trace:configure.ac:40: -1- AC_SUBST([GREP])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([GREP])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^GREP$])
-m4trace:configure.ac:40: -1- AC_SUBST([EGREP])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([EGREP])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^EGREP$])
-m4trace:configure.ac:40: -1- AC_SUBST([FGREP])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([FGREP])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^FGREP$])
-m4trace:configure.ac:40: -1- AC_SUBST([GREP])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([GREP])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^GREP$])
-m4trace:configure.ac:40: -1- AC_SUBST([LD])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([LD])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^LD$])
-m4trace:configure.ac:40: -1- AC_SUBST([DUMPBIN])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([DUMPBIN])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^DUMPBIN$])
-m4trace:configure.ac:40: -1- AC_SUBST([ac_ct_DUMPBIN])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([ac_ct_DUMPBIN])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^ac_ct_DUMPBIN$])
-m4trace:configure.ac:40: -1- AC_SUBST([DUMPBIN])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([DUMPBIN])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^DUMPBIN$])
-m4trace:configure.ac:40: -1- AC_SUBST([NM])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([NM])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^NM$])
-m4trace:configure.ac:40: -1- AC_SUBST([LN_S], [$as_ln_s])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([LN_S])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^LN_S$])
-m4trace:configure.ac:40: -1- AC_SUBST([OBJDUMP])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([OBJDUMP])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^OBJDUMP$])
-m4trace:configure.ac:40: -1- AC_SUBST([OBJDUMP])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([OBJDUMP])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^OBJDUMP$])
-m4trace:configure.ac:40: -1- AC_SUBST([AR])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([AR])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^AR$])
-m4trace:configure.ac:40: -1- AC_SUBST([STRIP])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([STRIP])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^STRIP$])
-m4trace:configure.ac:40: -1- AC_SUBST([RANLIB])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([RANLIB])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^RANLIB$])
-m4trace:configure.ac:40: -1- m4_pattern_allow([LT_OBJDIR])
-m4trace:configure.ac:40: -1- AC_DEFINE_TRACE_LITERAL([LT_OBJDIR])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^LT_OBJDIR$])
-m4trace:configure.ac:40: -1- AH_OUTPUT([LT_OBJDIR], [/* Define to the sub-directory in which libtool stores uninstalled libraries.
+configure.ac:42: the top level])
+m4trace:configure.ac:42: -1- LT_INIT
+m4trace:configure.ac:42: -1- m4_pattern_forbid([^_?LT_[A-Z_]+$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])
+m4trace:configure.ac:42: -1- AC_REQUIRE_AUX_FILE([ltmain.sh])
+m4trace:configure.ac:42: -1- AC_SUBST([LIBTOOL])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([LIBTOOL])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^LIBTOOL$])
+m4trace:configure.ac:42: -1- AC_CANONICAL_HOST
+m4trace:configure.ac:42: -1- AC_CANONICAL_BUILD
+m4trace:configure.ac:42: -1- AC_REQUIRE_AUX_FILE([config.sub])
+m4trace:configure.ac:42: -1- AC_REQUIRE_AUX_FILE([config.guess])
+m4trace:configure.ac:42: -1- AC_SUBST([build], [$ac_cv_build])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([build])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^build$])
+m4trace:configure.ac:42: -1- AC_SUBST([build_cpu], [$[1]])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([build_cpu])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^build_cpu$])
+m4trace:configure.ac:42: -1- AC_SUBST([build_vendor], [$[2]])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([build_vendor])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^build_vendor$])
+m4trace:configure.ac:42: -1- AC_SUBST([build_os])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([build_os])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^build_os$])
+m4trace:configure.ac:42: -1- AC_SUBST([host], [$ac_cv_host])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([host])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^host$])
+m4trace:configure.ac:42: -1- AC_SUBST([host_cpu], [$[1]])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([host_cpu])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^host_cpu$])
+m4trace:configure.ac:42: -1- AC_SUBST([host_vendor], [$[2]])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([host_vendor])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^host_vendor$])
+m4trace:configure.ac:42: -1- AC_SUBST([host_os])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([host_os])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^host_os$])
+m4trace:configure.ac:42: -1- AC_SUBST([SED])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([SED])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^SED$])
+m4trace:configure.ac:42: -1- AC_SUBST([GREP])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([GREP])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^GREP$])
+m4trace:configure.ac:42: -1- AC_SUBST([EGREP])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([EGREP])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^EGREP$])
+m4trace:configure.ac:42: -1- AC_SUBST([FGREP])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([FGREP])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^FGREP$])
+m4trace:configure.ac:42: -1- AC_SUBST([GREP])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([GREP])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^GREP$])
+m4trace:configure.ac:42: -1- AC_SUBST([LD])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([LD])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^LD$])
+m4trace:configure.ac:42: -1- AC_SUBST([DUMPBIN])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([DUMPBIN])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^DUMPBIN$])
+m4trace:configure.ac:42: -1- AC_SUBST([ac_ct_DUMPBIN])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([ac_ct_DUMPBIN])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^ac_ct_DUMPBIN$])
+m4trace:configure.ac:42: -1- AC_SUBST([DUMPBIN])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([DUMPBIN])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^DUMPBIN$])
+m4trace:configure.ac:42: -1- AC_SUBST([NM])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([NM])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^NM$])
+m4trace:configure.ac:42: -1- AC_SUBST([LN_S], [$as_ln_s])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([LN_S])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^LN_S$])
+m4trace:configure.ac:42: -1- AC_SUBST([OBJDUMP])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([OBJDUMP])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^OBJDUMP$])
+m4trace:configure.ac:42: -1- AC_SUBST([OBJDUMP])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([OBJDUMP])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^OBJDUMP$])
+m4trace:configure.ac:42: -1- AC_SUBST([AR])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([AR])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^AR$])
+m4trace:configure.ac:42: -1- AC_SUBST([STRIP])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([STRIP])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^STRIP$])
+m4trace:configure.ac:42: -1- AC_SUBST([RANLIB])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([RANLIB])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^RANLIB$])
+m4trace:configure.ac:42: -1- m4_pattern_allow([LT_OBJDIR])
+m4trace:configure.ac:42: -1- AC_DEFINE_TRACE_LITERAL([LT_OBJDIR])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^LT_OBJDIR$])
+m4trace:configure.ac:42: -1- AH_OUTPUT([LT_OBJDIR], [/* Define to the sub-directory in which libtool stores uninstalled libraries.
    */
 #undef LT_OBJDIR])
-m4trace:configure.ac:40: -1- AC_SUBST([lt_ECHO])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([lt_ECHO])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^lt_ECHO$])
-m4trace:configure.ac:40: -1- LT_SUPPORTED_TAG([CC])
-m4trace:configure.ac:40: -1- AC_SUBST([DSYMUTIL])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([DSYMUTIL])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^DSYMUTIL$])
-m4trace:configure.ac:40: -1- AC_SUBST([NMEDIT])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([NMEDIT])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^NMEDIT$])
-m4trace:configure.ac:40: -1- AC_SUBST([LIPO])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([LIPO])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^LIPO$])
-m4trace:configure.ac:40: -1- AC_SUBST([OTOOL])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([OTOOL])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^OTOOL$])
-m4trace:configure.ac:40: -1- AC_SUBST([OTOOL64])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([OTOOL64])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^OTOOL64$])
-m4trace:configure.ac:40: -1- AH_OUTPUT([HAVE_DLFCN_H], [/* Define to 1 if you have the <dlfcn.h> header file. */
+m4trace:configure.ac:42: -1- AC_SUBST([lt_ECHO])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([lt_ECHO])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^lt_ECHO$])
+m4trace:configure.ac:42: -1- LT_SUPPORTED_TAG([CC])
+m4trace:configure.ac:42: -1- AC_SUBST([DSYMUTIL])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([DSYMUTIL])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^DSYMUTIL$])
+m4trace:configure.ac:42: -1- AC_SUBST([NMEDIT])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([NMEDIT])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^NMEDIT$])
+m4trace:configure.ac:42: -1- AC_SUBST([LIPO])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([LIPO])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^LIPO$])
+m4trace:configure.ac:42: -1- AC_SUBST([OTOOL])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([OTOOL])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^OTOOL$])
+m4trace:configure.ac:42: -1- AC_SUBST([OTOOL64])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([OTOOL64])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^OTOOL64$])
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_DLFCN_H], [/* Define to 1 if you have the <dlfcn.h> header file. */
 #undef HAVE_DLFCN_H])
-m4trace:configure.ac:40: -1- AC_SUBST([CPP])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([CPP])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^CPP$])
-m4trace:configure.ac:40: -1- AC_SUBST([CPPFLAGS])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([CPPFLAGS])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^CPPFLAGS$])
-m4trace:configure.ac:40: -1- AC_SUBST([CPP])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([CPP])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^CPP$])
-m4trace:configure.ac:40: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^STDC_HEADERS$])
-m4trace:configure.ac:40: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */
+m4trace:configure.ac:42: -1- AC_SUBST([CPP])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([CPP])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^CPP$])
+m4trace:configure.ac:42: -1- AC_SUBST([CPPFLAGS])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([CPPFLAGS])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:42: -1- AC_SUBST([CPP])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([CPP])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^CPP$])
+m4trace:configure.ac:42: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^STDC_HEADERS$])
+m4trace:configure.ac:42: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */
 #undef STDC_HEADERS])
-m4trace:configure.ac:40: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */
 #undef HAVE_SYS_TYPES_H])
-m4trace:configure.ac:40: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
 #undef HAVE_SYS_STAT_H])
-m4trace:configure.ac:40: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
 #undef HAVE_STDLIB_H])
-m4trace:configure.ac:40: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
 #undef HAVE_STRING_H])
-m4trace:configure.ac:40: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the <memory.h> header file. */
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the <memory.h> header file. */
 #undef HAVE_MEMORY_H])
-m4trace:configure.ac:40: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
 #undef HAVE_STRINGS_H])
-m4trace:configure.ac:40: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H])
-m4trace:configure.ac:40: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
 #undef HAVE_STDINT_H])
-m4trace:configure.ac:40: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H])
-m4trace:configure.ac:40: -1- LT_SUPPORTED_TAG([CXX])
-m4trace:configure.ac:40: -1- AC_SUBST([CXX])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([CXX])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^CXX$])
-m4trace:configure.ac:40: -1- AC_SUBST([CXXFLAGS])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([CXXFLAGS])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^CXXFLAGS$])
-m4trace:configure.ac:40: -1- AC_SUBST([LDFLAGS])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([LDFLAGS])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^LDFLAGS$])
-m4trace:configure.ac:40: -1- AC_SUBST([LIBS])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([LIBS])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^LIBS$])
-m4trace:configure.ac:40: -1- AC_SUBST([CPPFLAGS])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([CPPFLAGS])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^CPPFLAGS$])
-m4trace:configure.ac:40: -1- AC_SUBST([CXX])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([CXX])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^CXX$])
-m4trace:configure.ac:40: -1- AC_SUBST([ac_ct_CXX])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([ac_ct_CXX])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^ac_ct_CXX$])
-m4trace:configure.ac:40: -1- AC_SUBST([CXXDEPMODE], [depmode=$am_cv_CXX_dependencies_compiler_type])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([CXXDEPMODE])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^CXXDEPMODE$])
-m4trace:configure.ac:40: -1- AM_CONDITIONAL([am__fastdepCXX], [
+m4trace:configure.ac:42: -1- LT_SUPPORTED_TAG([CXX])
+m4trace:configure.ac:42: -1- AC_SUBST([CXX])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([CXX])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^CXX$])
+m4trace:configure.ac:42: -1- AC_SUBST([CXXFLAGS])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([CXXFLAGS])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^CXXFLAGS$])
+m4trace:configure.ac:42: -1- AC_SUBST([LDFLAGS])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([LDFLAGS])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^LDFLAGS$])
+m4trace:configure.ac:42: -1- AC_SUBST([LIBS])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([LIBS])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:42: -1- AC_SUBST([CPPFLAGS])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([CPPFLAGS])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:42: -1- AC_SUBST([CXX])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([CXX])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^CXX$])
+m4trace:configure.ac:42: -1- AC_SUBST([ac_ct_CXX])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([ac_ct_CXX])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^ac_ct_CXX$])
+m4trace:configure.ac:42: -1- AC_SUBST([CXXDEPMODE], [depmode=$am_cv_CXX_dependencies_compiler_type])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([CXXDEPMODE])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^CXXDEPMODE$])
+m4trace:configure.ac:42: -1- AM_CONDITIONAL([am__fastdepCXX], [
   test "x$enable_dependency_tracking" != xno \
   && test "$am_cv_CXX_dependencies_compiler_type" = gcc3])
-m4trace:configure.ac:40: -1- AC_SUBST([am__fastdepCXX_TRUE])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([am__fastdepCXX_TRUE])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^am__fastdepCXX_TRUE$])
-m4trace:configure.ac:40: -1- AC_SUBST([am__fastdepCXX_FALSE])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([am__fastdepCXX_FALSE])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^am__fastdepCXX_FALSE$])
-m4trace:configure.ac:40: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_TRUE])
-m4trace:configure.ac:40: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE])
-m4trace:configure.ac:40: -1- AC_SUBST([CXXCPP])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([CXXCPP])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^CXXCPP$])
-m4trace:configure.ac:40: -1- AC_SUBST([CPPFLAGS])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([CPPFLAGS])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^CPPFLAGS$])
-m4trace:configure.ac:40: -1- AC_SUBST([CXXCPP])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([CXXCPP])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^CXXCPP$])
-m4trace:configure.ac:40: -1- AC_SUBST([LD])
-m4trace:configure.ac:40: -1- AC_SUBST_TRACE([LD])
-m4trace:configure.ac:40: -1- m4_pattern_allow([^LD$])
-m4trace:configure.ac:41: -1- AC_SUBST([RANLIB])
-m4trace:configure.ac:41: -1- AC_SUBST_TRACE([RANLIB])
-m4trace:configure.ac:41: -1- m4_pattern_allow([^RANLIB$])
-m4trace:configure.ac:42: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
-m4trace:configure.ac:42: -1- m4_pattern_allow([^STDC_HEADERS$])
-m4trace:configure.ac:42: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */
+m4trace:configure.ac:42: -1- AC_SUBST([am__fastdepCXX_TRUE])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([am__fastdepCXX_TRUE])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^am__fastdepCXX_TRUE$])
+m4trace:configure.ac:42: -1- AC_SUBST([am__fastdepCXX_FALSE])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([am__fastdepCXX_FALSE])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^am__fastdepCXX_FALSE$])
+m4trace:configure.ac:42: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_TRUE])
+m4trace:configure.ac:42: -1- _AM_SUBST_NOTMAKE([am__fastdepCXX_FALSE])
+m4trace:configure.ac:42: -1- AC_SUBST([CXXCPP])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([CXXCPP])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^CXXCPP$])
+m4trace:configure.ac:42: -1- AC_SUBST([CPPFLAGS])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([CPPFLAGS])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:42: -1- AC_SUBST([CXXCPP])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([CXXCPP])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^CXXCPP$])
+m4trace:configure.ac:42: -1- AC_SUBST([LD])
+m4trace:configure.ac:42: -1- AC_SUBST_TRACE([LD])
+m4trace:configure.ac:42: -1- m4_pattern_allow([^LD$])
+m4trace:configure.ac:43: -1- AC_SUBST([RANLIB])
+m4trace:configure.ac:43: -1- AC_SUBST_TRACE([RANLIB])
+m4trace:configure.ac:43: -1- m4_pattern_allow([^RANLIB$])
+m4trace:configure.ac:44: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
+m4trace:configure.ac:44: -1- m4_pattern_allow([^STDC_HEADERS$])
+m4trace:configure.ac:44: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */
 #undef STDC_HEADERS])
-m4trace:configure.ac:43: -1- AH_OUTPUT([HAVE_INFINIBAND_VERBS_H], [/* Define to 1 if you have the <infiniband/verbs.h> header file. */
+m4trace:configure.ac:45: -1- AH_OUTPUT([HAVE_INFINIBAND_VERBS_H], [/* Define to 1 if you have the <infiniband/verbs.h> header file. */
 #undef HAVE_INFINIBAND_VERBS_H])
-m4trace:configure.ac:44: -1- AH_OUTPUT([HAVE_LIBIBVERBS], [/* Define to 1 if you have the `ibverbs\' library (-libverbs). */
+m4trace:configure.ac:46: -1- AH_OUTPUT([HAVE_LIBIBVERBS], [/* Define to 1 if you have the `ibverbs\' library (-libverbs). */
 #undef HAVE_LIBIBVERBS])
-m4trace:configure.ac:44: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBIBVERBS])
-m4trace:configure.ac:44: -1- m4_pattern_allow([^HAVE_LIBIBVERBS$])
-m4trace:configure.ac:45: -1- AH_OUTPUT([HAVE_LIBRDMACM], [/* Define to 1 if you have the `rdmacm\' library (-lrdmacm). */
+m4trace:configure.ac:46: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBIBVERBS])
+m4trace:configure.ac:46: -1- m4_pattern_allow([^HAVE_LIBIBVERBS$])
+m4trace:configure.ac:47: -1- AH_OUTPUT([HAVE_LIBRDMACM], [/* Define to 1 if you have the `rdmacm\' library (-lrdmacm). */
 #undef HAVE_LIBRDMACM])
-m4trace:configure.ac:45: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBRDMACM])
-m4trace:configure.ac:45: -1- m4_pattern_allow([^HAVE_LIBRDMACM$])
-m4trace:configure.ac:49: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+m4trace:configure.ac:47: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBRDMACM])
+m4trace:configure.ac:47: -1- m4_pattern_allow([^HAVE_LIBRDMACM$])
+m4trace:configure.ac:51: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
-configure.ac:49: the top level])
-m4trace:configure.ac:52: -1- AM_CONDITIONAL([HAVE_RAW_ETH_EXP], [test "x$HAVE_RAW_ETH_EXP" = "xyes"])
-m4trace:configure.ac:52: -1- AC_SUBST([HAVE_RAW_ETH_EXP_TRUE])
-m4trace:configure.ac:52: -1- AC_SUBST_TRACE([HAVE_RAW_ETH_EXP_TRUE])
-m4trace:configure.ac:52: -1- m4_pattern_allow([^HAVE_RAW_ETH_EXP_TRUE$])
-m4trace:configure.ac:52: -1- AC_SUBST([HAVE_RAW_ETH_EXP_FALSE])
-m4trace:configure.ac:52: -1- AC_SUBST_TRACE([HAVE_RAW_ETH_EXP_FALSE])
-m4trace:configure.ac:52: -1- m4_pattern_allow([^HAVE_RAW_ETH_EXP_FALSE$])
-m4trace:configure.ac:52: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_EXP_TRUE])
-m4trace:configure.ac:52: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_EXP_FALSE])
-m4trace:configure.ac:54: -1- AC_DEFINE_TRACE_LITERAL([HAVE_RAW_ETH_EXP])
-m4trace:configure.ac:54: -1- m4_pattern_allow([^HAVE_RAW_ETH_EXP$])
-m4trace:configure.ac:54: -1- AH_OUTPUT([HAVE_RAW_ETH_EXP], [/* Enable RAW_ETH_TEST_EXP */
+configure.ac:51: the top level])
+m4trace:configure.ac:54: -1- AM_CONDITIONAL([HAVE_RAW_ETH_EXP], [test "x$HAVE_RAW_ETH_EXP" = "xyes"])
+m4trace:configure.ac:54: -1- AC_SUBST([HAVE_RAW_ETH_EXP_TRUE])
+m4trace:configure.ac:54: -1- AC_SUBST_TRACE([HAVE_RAW_ETH_EXP_TRUE])
+m4trace:configure.ac:54: -1- m4_pattern_allow([^HAVE_RAW_ETH_EXP_TRUE$])
+m4trace:configure.ac:54: -1- AC_SUBST([HAVE_RAW_ETH_EXP_FALSE])
+m4trace:configure.ac:54: -1- AC_SUBST_TRACE([HAVE_RAW_ETH_EXP_FALSE])
+m4trace:configure.ac:54: -1- m4_pattern_allow([^HAVE_RAW_ETH_EXP_FALSE$])
+m4trace:configure.ac:54: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_EXP_TRUE])
+m4trace:configure.ac:54: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_EXP_FALSE])
+m4trace:configure.ac:56: -1- AC_DEFINE_TRACE_LITERAL([HAVE_RAW_ETH_EXP])
+m4trace:configure.ac:56: -1- m4_pattern_allow([^HAVE_RAW_ETH_EXP$])
+m4trace:configure.ac:56: -1- AH_OUTPUT([HAVE_RAW_ETH_EXP], [/* Enable RAW_ETH_TEST_EXP */
 #undef HAVE_RAW_ETH_EXP])
-m4trace:configure.ac:57: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+m4trace:configure.ac:59: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
-configure.ac:57: the top level])
-m4trace:configure.ac:60: -1- AM_CONDITIONAL([HAVE_RAW_ETH_REG], [test "x$HAVE_RAW_ETH_REG" = "xyes"])
-m4trace:configure.ac:60: -1- AC_SUBST([HAVE_RAW_ETH_REG_TRUE])
-m4trace:configure.ac:60: -1- AC_SUBST_TRACE([HAVE_RAW_ETH_REG_TRUE])
-m4trace:configure.ac:60: -1- m4_pattern_allow([^HAVE_RAW_ETH_REG_TRUE$])
-m4trace:configure.ac:60: -1- AC_SUBST([HAVE_RAW_ETH_REG_FALSE])
-m4trace:configure.ac:60: -1- AC_SUBST_TRACE([HAVE_RAW_ETH_REG_FALSE])
-m4trace:configure.ac:60: -1- m4_pattern_allow([^HAVE_RAW_ETH_REG_FALSE$])
-m4trace:configure.ac:60: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_REG_TRUE])
-m4trace:configure.ac:60: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_REG_FALSE])
-m4trace:configure.ac:62: -1- AC_DEFINE_TRACE_LITERAL([HAVE_RAW_ETH_REG])
-m4trace:configure.ac:62: -1- m4_pattern_allow([^HAVE_RAW_ETH_REG$])
-m4trace:configure.ac:62: -1- AH_OUTPUT([HAVE_RAW_ETH_REG], [/* Enable RAW_ETH_TEST_REG */
+configure.ac:59: the top level])
+m4trace:configure.ac:62: -1- AM_CONDITIONAL([HAVE_RAW_ETH_REG], [test "x$HAVE_RAW_ETH_REG" = "xyes"])
+m4trace:configure.ac:62: -1- AC_SUBST([HAVE_RAW_ETH_REG_TRUE])
+m4trace:configure.ac:62: -1- AC_SUBST_TRACE([HAVE_RAW_ETH_REG_TRUE])
+m4trace:configure.ac:62: -1- m4_pattern_allow([^HAVE_RAW_ETH_REG_TRUE$])
+m4trace:configure.ac:62: -1- AC_SUBST([HAVE_RAW_ETH_REG_FALSE])
+m4trace:configure.ac:62: -1- AC_SUBST_TRACE([HAVE_RAW_ETH_REG_FALSE])
+m4trace:configure.ac:62: -1- m4_pattern_allow([^HAVE_RAW_ETH_REG_FALSE$])
+m4trace:configure.ac:62: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_REG_TRUE])
+m4trace:configure.ac:62: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_REG_FALSE])
+m4trace:configure.ac:64: -1- AC_DEFINE_TRACE_LITERAL([HAVE_RAW_ETH_REG])
+m4trace:configure.ac:64: -1- m4_pattern_allow([^HAVE_RAW_ETH_REG$])
+m4trace:configure.ac:64: -1- AH_OUTPUT([HAVE_RAW_ETH_REG], [/* Enable RAW_ETH_TEST_REG */
 #undef HAVE_RAW_ETH_REG])
-m4trace:configure.ac:65: -1- AM_CONDITIONAL([HAVE_RAW_ETH], [true])
-m4trace:configure.ac:65: -1- AC_SUBST([HAVE_RAW_ETH_TRUE])
-m4trace:configure.ac:65: -1- AC_SUBST_TRACE([HAVE_RAW_ETH_TRUE])
-m4trace:configure.ac:65: -1- m4_pattern_allow([^HAVE_RAW_ETH_TRUE$])
-m4trace:configure.ac:65: -1- AC_SUBST([HAVE_RAW_ETH_FALSE])
-m4trace:configure.ac:65: -1- AC_SUBST_TRACE([HAVE_RAW_ETH_FALSE])
-m4trace:configure.ac:65: -1- m4_pattern_allow([^HAVE_RAW_ETH_FALSE$])
-m4trace:configure.ac:65: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_TRUE])
-m4trace:configure.ac:65: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_FALSE])
-m4trace:configure.ac:67: -1- AC_DEFINE_TRACE_LITERAL([HAVE_RAW_ETH])
-m4trace:configure.ac:67: -1- m4_pattern_allow([^HAVE_RAW_ETH$])
-m4trace:configure.ac:67: -1- AH_OUTPUT([HAVE_RAW_ETH], [/* Enable RAW_ETH_TEST */
+m4trace:configure.ac:67: -1- AM_CONDITIONAL([HAVE_RAW_ETH], [true])
+m4trace:configure.ac:67: -1- AC_SUBST([HAVE_RAW_ETH_TRUE])
+m4trace:configure.ac:67: -1- AC_SUBST_TRACE([HAVE_RAW_ETH_TRUE])
+m4trace:configure.ac:67: -1- m4_pattern_allow([^HAVE_RAW_ETH_TRUE$])
+m4trace:configure.ac:67: -1- AC_SUBST([HAVE_RAW_ETH_FALSE])
+m4trace:configure.ac:67: -1- AC_SUBST_TRACE([HAVE_RAW_ETH_FALSE])
+m4trace:configure.ac:67: -1- m4_pattern_allow([^HAVE_RAW_ETH_FALSE$])
+m4trace:configure.ac:67: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_TRUE])
+m4trace:configure.ac:67: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_FALSE])
+m4trace:configure.ac:69: -1- AC_DEFINE_TRACE_LITERAL([HAVE_RAW_ETH])
+m4trace:configure.ac:69: -1- m4_pattern_allow([^HAVE_RAW_ETH$])
+m4trace:configure.ac:69: -1- AH_OUTPUT([HAVE_RAW_ETH], [/* Enable RAW_ETH_TEST */
 #undef HAVE_RAW_ETH])
-m4trace:configure.ac:69: -1- AM_CONDITIONAL([HAVE_RAW_ETH], [false])
-m4trace:configure.ac:69: -1- AC_SUBST([HAVE_RAW_ETH_TRUE])
-m4trace:configure.ac:69: -1- AC_SUBST_TRACE([HAVE_RAW_ETH_TRUE])
-m4trace:configure.ac:69: -1- m4_pattern_allow([^HAVE_RAW_ETH_TRUE$])
-m4trace:configure.ac:69: -1- AC_SUBST([HAVE_RAW_ETH_FALSE])
-m4trace:configure.ac:69: -1- AC_SUBST_TRACE([HAVE_RAW_ETH_FALSE])
-m4trace:configure.ac:69: -1- m4_pattern_allow([^HAVE_RAW_ETH_FALSE$])
-m4trace:configure.ac:69: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_TRUE])
-m4trace:configure.ac:69: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_FALSE])
-m4trace:configure.ac:73: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+m4trace:configure.ac:71: -1- AM_CONDITIONAL([HAVE_RAW_ETH], [false])
+m4trace:configure.ac:71: -1- AC_SUBST([HAVE_RAW_ETH_TRUE])
+m4trace:configure.ac:71: -1- AC_SUBST_TRACE([HAVE_RAW_ETH_TRUE])
+m4trace:configure.ac:71: -1- m4_pattern_allow([^HAVE_RAW_ETH_TRUE$])
+m4trace:configure.ac:71: -1- AC_SUBST([HAVE_RAW_ETH_FALSE])
+m4trace:configure.ac:71: -1- AC_SUBST_TRACE([HAVE_RAW_ETH_FALSE])
+m4trace:configure.ac:71: -1- m4_pattern_allow([^HAVE_RAW_ETH_FALSE$])
+m4trace:configure.ac:71: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_TRUE])
+m4trace:configure.ac:71: -1- _AM_SUBST_NOTMAKE([HAVE_RAW_ETH_FALSE])
+m4trace:configure.ac:75: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
-configure.ac:73: the top level])
-m4trace:configure.ac:76: -1- AM_CONDITIONAL([HAVE_XRCD], [test "x$HAVE_XRCD" = "xyes"])
-m4trace:configure.ac:76: -1- AC_SUBST([HAVE_XRCD_TRUE])
-m4trace:configure.ac:76: -1- AC_SUBST_TRACE([HAVE_XRCD_TRUE])
-m4trace:configure.ac:76: -1- m4_pattern_allow([^HAVE_XRCD_TRUE$])
-m4trace:configure.ac:76: -1- AC_SUBST([HAVE_XRCD_FALSE])
-m4trace:configure.ac:76: -1- AC_SUBST_TRACE([HAVE_XRCD_FALSE])
-m4trace:configure.ac:76: -1- m4_pattern_allow([^HAVE_XRCD_FALSE$])
-m4trace:configure.ac:76: -1- _AM_SUBST_NOTMAKE([HAVE_XRCD_TRUE])
-m4trace:configure.ac:76: -1- _AM_SUBST_NOTMAKE([HAVE_XRCD_FALSE])
-m4trace:configure.ac:78: -1- AC_DEFINE_TRACE_LITERAL([HAVE_XRCD])
-m4trace:configure.ac:78: -1- m4_pattern_allow([^HAVE_XRCD$])
-m4trace:configure.ac:78: -1- AH_OUTPUT([HAVE_XRCD], [/* Enable XRCD feature */
+configure.ac:75: the top level])
+m4trace:configure.ac:78: -1- AM_CONDITIONAL([HAVE_XRCD], [test "x$HAVE_XRCD" = "xyes"])
+m4trace:configure.ac:78: -1- AC_SUBST([HAVE_XRCD_TRUE])
+m4trace:configure.ac:78: -1- AC_SUBST_TRACE([HAVE_XRCD_TRUE])
+m4trace:configure.ac:78: -1- m4_pattern_allow([^HAVE_XRCD_TRUE$])
+m4trace:configure.ac:78: -1- AC_SUBST([HAVE_XRCD_FALSE])
+m4trace:configure.ac:78: -1- AC_SUBST_TRACE([HAVE_XRCD_FALSE])
+m4trace:configure.ac:78: -1- m4_pattern_allow([^HAVE_XRCD_FALSE$])
+m4trace:configure.ac:78: -1- _AM_SUBST_NOTMAKE([HAVE_XRCD_TRUE])
+m4trace:configure.ac:78: -1- _AM_SUBST_NOTMAKE([HAVE_XRCD_FALSE])
+m4trace:configure.ac:80: -1- AC_DEFINE_TRACE_LITERAL([HAVE_XRCD])
+m4trace:configure.ac:80: -1- m4_pattern_allow([^HAVE_XRCD$])
+m4trace:configure.ac:80: -1- AH_OUTPUT([HAVE_XRCD], [/* Enable XRCD feature */
 #undef HAVE_XRCD])
-m4trace:configure.ac:81: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+m4trace:configure.ac:83: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
-configure.ac:81: the top level])
-m4trace:configure.ac:84: -1- AM_CONDITIONAL([HAVE_ENDIAN], [test "x$HAVE_ENDIAN" = "xyes"])
-m4trace:configure.ac:84: -1- AC_SUBST([HAVE_ENDIAN_TRUE])
-m4trace:configure.ac:84: -1- AC_SUBST_TRACE([HAVE_ENDIAN_TRUE])
-m4trace:configure.ac:84: -1- m4_pattern_allow([^HAVE_ENDIAN_TRUE$])
-m4trace:configure.ac:84: -1- AC_SUBST([HAVE_ENDIAN_FALSE])
-m4trace:configure.ac:84: -1- AC_SUBST_TRACE([HAVE_ENDIAN_FALSE])
-m4trace:configure.ac:84: -1- m4_pattern_allow([^HAVE_ENDIAN_FALSE$])
-m4trace:configure.ac:84: -1- _AM_SUBST_NOTMAKE([HAVE_ENDIAN_TRUE])
-m4trace:configure.ac:84: -1- _AM_SUBST_NOTMAKE([HAVE_ENDIAN_FALSE])
-m4trace:configure.ac:86: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ENDIAN])
-m4trace:configure.ac:86: -1- m4_pattern_allow([^HAVE_ENDIAN$])
-m4trace:configure.ac:86: -1- AH_OUTPUT([HAVE_ENDIAN], [/* Enable endian conversion */
+configure.ac:83: the top level])
+m4trace:configure.ac:86: -1- AM_CONDITIONAL([HAVE_ENDIAN], [test "x$HAVE_ENDIAN" = "xyes"])
+m4trace:configure.ac:86: -1- AC_SUBST([HAVE_ENDIAN_TRUE])
+m4trace:configure.ac:86: -1- AC_SUBST_TRACE([HAVE_ENDIAN_TRUE])
+m4trace:configure.ac:86: -1- m4_pattern_allow([^HAVE_ENDIAN_TRUE$])
+m4trace:configure.ac:86: -1- AC_SUBST([HAVE_ENDIAN_FALSE])
+m4trace:configure.ac:86: -1- AC_SUBST_TRACE([HAVE_ENDIAN_FALSE])
+m4trace:configure.ac:86: -1- m4_pattern_allow([^HAVE_ENDIAN_FALSE$])
+m4trace:configure.ac:86: -1- _AM_SUBST_NOTMAKE([HAVE_ENDIAN_TRUE])
+m4trace:configure.ac:86: -1- _AM_SUBST_NOTMAKE([HAVE_ENDIAN_FALSE])
+m4trace:configure.ac:88: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ENDIAN])
+m4trace:configure.ac:88: -1- m4_pattern_allow([^HAVE_ENDIAN$])
+m4trace:configure.ac:88: -1- AH_OUTPUT([HAVE_ENDIAN], [/* Enable endian conversion */
 #undef HAVE_ENDIAN])
-m4trace:configure.ac:89: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+m4trace:configure.ac:91: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
-configure.ac:89: the top level])
-m4trace:configure.ac:92: -1- AM_CONDITIONAL([HAVE_SCIF], [test "x$HAVE_SCIF" = "xyes"])
-m4trace:configure.ac:92: -1- AC_SUBST([HAVE_SCIF_TRUE])
-m4trace:configure.ac:92: -1- AC_SUBST_TRACE([HAVE_SCIF_TRUE])
-m4trace:configure.ac:92: -1- m4_pattern_allow([^HAVE_SCIF_TRUE$])
-m4trace:configure.ac:92: -1- AC_SUBST([HAVE_SCIF_FALSE])
-m4trace:configure.ac:92: -1- AC_SUBST_TRACE([HAVE_SCIF_FALSE])
-m4trace:configure.ac:92: -1- m4_pattern_allow([^HAVE_SCIF_FALSE$])
-m4trace:configure.ac:92: -1- _AM_SUBST_NOTMAKE([HAVE_SCIF_TRUE])
-m4trace:configure.ac:92: -1- _AM_SUBST_NOTMAKE([HAVE_SCIF_FALSE])
-m4trace:configure.ac:94: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SCIF])
-m4trace:configure.ac:94: -1- m4_pattern_allow([^HAVE_SCIF$])
-m4trace:configure.ac:94: -1- AH_OUTPUT([HAVE_SCIF], [/* Enable SCIF link Layer */
+configure.ac:91: the top level])
+m4trace:configure.ac:94: -1- AM_CONDITIONAL([HAVE_SCIF], [test "x$HAVE_SCIF" = "xyes"])
+m4trace:configure.ac:94: -1- AC_SUBST([HAVE_SCIF_TRUE])
+m4trace:configure.ac:94: -1- AC_SUBST_TRACE([HAVE_SCIF_TRUE])
+m4trace:configure.ac:94: -1- m4_pattern_allow([^HAVE_SCIF_TRUE$])
+m4trace:configure.ac:94: -1- AC_SUBST([HAVE_SCIF_FALSE])
+m4trace:configure.ac:94: -1- AC_SUBST_TRACE([HAVE_SCIF_FALSE])
+m4trace:configure.ac:94: -1- m4_pattern_allow([^HAVE_SCIF_FALSE$])
+m4trace:configure.ac:94: -1- _AM_SUBST_NOTMAKE([HAVE_SCIF_TRUE])
+m4trace:configure.ac:94: -1- _AM_SUBST_NOTMAKE([HAVE_SCIF_FALSE])
+m4trace:configure.ac:96: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SCIF])
+m4trace:configure.ac:96: -1- m4_pattern_allow([^HAVE_SCIF$])
+m4trace:configure.ac:96: -1- AH_OUTPUT([HAVE_SCIF], [/* Enable SCIF link Layer */
 #undef HAVE_SCIF])
-m4trace:configure.ac:97: -1- AH_OUTPUT([HAVE_INFINIBAND_VERBS_EXP_H], [/* Define to 1 if you have the <infiniband/verbs_exp.h> header file. */
+m4trace:configure.ac:99: -1- AH_OUTPUT([HAVE_INFINIBAND_VERBS_EXP_H], [/* Define to 1 if you have the <infiniband/verbs_exp.h> header file. */
 #undef HAVE_INFINIBAND_VERBS_EXP_H])
-m4trace:configure.ac:98: -1- AM_CONDITIONAL([HAVE_VERBS_EXP], [test "x$HAVE_VERBS_EXP" = "xyes"])
-m4trace:configure.ac:98: -1- AC_SUBST([HAVE_VERBS_EXP_TRUE])
-m4trace:configure.ac:98: -1- AC_SUBST_TRACE([HAVE_VERBS_EXP_TRUE])
-m4trace:configure.ac:98: -1- m4_pattern_allow([^HAVE_VERBS_EXP_TRUE$])
-m4trace:configure.ac:98: -1- AC_SUBST([HAVE_VERBS_EXP_FALSE])
-m4trace:configure.ac:98: -1- AC_SUBST_TRACE([HAVE_VERBS_EXP_FALSE])
-m4trace:configure.ac:98: -1- m4_pattern_allow([^HAVE_VERBS_EXP_FALSE$])
-m4trace:configure.ac:98: -1- _AM_SUBST_NOTMAKE([HAVE_VERBS_EXP_TRUE])
-m4trace:configure.ac:98: -1- _AM_SUBST_NOTMAKE([HAVE_VERBS_EXP_FALSE])
-m4trace:configure.ac:100: -1- AC_DEFINE_TRACE_LITERAL([HAVE_VERBS_EXP])
-m4trace:configure.ac:100: -1- m4_pattern_allow([^HAVE_VERBS_EXP$])
-m4trace:configure.ac:100: -1- AH_OUTPUT([HAVE_VERBS_EXP], [/* Have verbs_exp header */
+m4trace:configure.ac:100: -1- AM_CONDITIONAL([HAVE_VERBS_EXP], [test "x$HAVE_VERBS_EXP" = "xyes"])
+m4trace:configure.ac:100: -1- AC_SUBST([HAVE_VERBS_EXP_TRUE])
+m4trace:configure.ac:100: -1- AC_SUBST_TRACE([HAVE_VERBS_EXP_TRUE])
+m4trace:configure.ac:100: -1- m4_pattern_allow([^HAVE_VERBS_EXP_TRUE$])
+m4trace:configure.ac:100: -1- AC_SUBST([HAVE_VERBS_EXP_FALSE])
+m4trace:configure.ac:100: -1- AC_SUBST_TRACE([HAVE_VERBS_EXP_FALSE])
+m4trace:configure.ac:100: -1- m4_pattern_allow([^HAVE_VERBS_EXP_FALSE$])
+m4trace:configure.ac:100: -1- _AM_SUBST_NOTMAKE([HAVE_VERBS_EXP_TRUE])
+m4trace:configure.ac:100: -1- _AM_SUBST_NOTMAKE([HAVE_VERBS_EXP_FALSE])
+m4trace:configure.ac:102: -1- AC_DEFINE_TRACE_LITERAL([HAVE_VERBS_EXP])
+m4trace:configure.ac:102: -1- m4_pattern_allow([^HAVE_VERBS_EXP$])
+m4trace:configure.ac:102: -1- AH_OUTPUT([HAVE_VERBS_EXP], [/* Have verbs_exp header */
 #undef HAVE_VERBS_EXP])
-m4trace:configure.ac:105: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+m4trace:configure.ac:107: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
-configure.ac:105: the top level])
-m4trace:configure.ac:109: -1- AM_CONDITIONAL([HAVE_MASKED_ATOMICS], [test "x$HAVE_MASKED_ATOMICS" = "xyes"])
-m4trace:configure.ac:109: -1- AC_SUBST([HAVE_MASKED_ATOMICS_TRUE])
-m4trace:configure.ac:109: -1- AC_SUBST_TRACE([HAVE_MASKED_ATOMICS_TRUE])
-m4trace:configure.ac:109: -1- m4_pattern_allow([^HAVE_MASKED_ATOMICS_TRUE$])
-m4trace:configure.ac:109: -1- AC_SUBST([HAVE_MASKED_ATOMICS_FALSE])
-m4trace:configure.ac:109: -1- AC_SUBST_TRACE([HAVE_MASKED_ATOMICS_FALSE])
-m4trace:configure.ac:109: -1- m4_pattern_allow([^HAVE_MASKED_ATOMICS_FALSE$])
-m4trace:configure.ac:109: -1- _AM_SUBST_NOTMAKE([HAVE_MASKED_ATOMICS_TRUE])
-m4trace:configure.ac:109: -1- _AM_SUBST_NOTMAKE([HAVE_MASKED_ATOMICS_FALSE])
-m4trace:configure.ac:111: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MASKED_ATOMICS])
-m4trace:configure.ac:111: -1- m4_pattern_allow([^HAVE_MASKED_ATOMICS$])
-m4trace:configure.ac:111: -1- AH_OUTPUT([HAVE_MASKED_ATOMICS], [/* Have MASKED ATOMICS in verbs_exp header */
+configure.ac:107: the top level])
+m4trace:configure.ac:111: -1- AM_CONDITIONAL([HAVE_MASKED_ATOMICS], [test "x$HAVE_MASKED_ATOMICS" = "xyes"])
+m4trace:configure.ac:111: -1- AC_SUBST([HAVE_MASKED_ATOMICS_TRUE])
+m4trace:configure.ac:111: -1- AC_SUBST_TRACE([HAVE_MASKED_ATOMICS_TRUE])
+m4trace:configure.ac:111: -1- m4_pattern_allow([^HAVE_MASKED_ATOMICS_TRUE$])
+m4trace:configure.ac:111: -1- AC_SUBST([HAVE_MASKED_ATOMICS_FALSE])
+m4trace:configure.ac:111: -1- AC_SUBST_TRACE([HAVE_MASKED_ATOMICS_FALSE])
+m4trace:configure.ac:111: -1- m4_pattern_allow([^HAVE_MASKED_ATOMICS_FALSE$])
+m4trace:configure.ac:111: -1- _AM_SUBST_NOTMAKE([HAVE_MASKED_ATOMICS_TRUE])
+m4trace:configure.ac:111: -1- _AM_SUBST_NOTMAKE([HAVE_MASKED_ATOMICS_FALSE])
+m4trace:configure.ac:113: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MASKED_ATOMICS])
+m4trace:configure.ac:113: -1- m4_pattern_allow([^HAVE_MASKED_ATOMICS$])
+m4trace:configure.ac:113: -1- AH_OUTPUT([HAVE_MASKED_ATOMICS], [/* Have MASKED ATOMICS in verbs_exp header */
 #undef HAVE_MASKED_ATOMICS])
-m4trace:configure.ac:114: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+m4trace:configure.ac:116: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
-configure.ac:114: the top level])
-m4trace:configure.ac:118: -1- AM_CONDITIONAL([HAVE_RSS_EXP], [test "x$HAVE_RSS_EXP" = "xyes"])
-m4trace:configure.ac:118: -1- AC_SUBST([HAVE_RSS_EXP_TRUE])
-m4trace:configure.ac:118: -1- AC_SUBST_TRACE([HAVE_RSS_EXP_TRUE])
-m4trace:configure.ac:118: -1- m4_pattern_allow([^HAVE_RSS_EXP_TRUE$])
-m4trace:configure.ac:118: -1- AC_SUBST([HAVE_RSS_EXP_FALSE])
-m4trace:configure.ac:118: -1- AC_SUBST_TRACE([HAVE_RSS_EXP_FALSE])
-m4trace:configure.ac:118: -1- m4_pattern_allow([^HAVE_RSS_EXP_FALSE$])
-m4trace:configure.ac:118: -1- _AM_SUBST_NOTMAKE([HAVE_RSS_EXP_TRUE])
-m4trace:configure.ac:118: -1- _AM_SUBST_NOTMAKE([HAVE_RSS_EXP_FALSE])
-m4trace:configure.ac:120: -1- AC_DEFINE_TRACE_LITERAL([HAVE_RSS_EXP])
-m4trace:configure.ac:120: -1- m4_pattern_allow([^HAVE_RSS_EXP$])
-m4trace:configure.ac:120: -1- AH_OUTPUT([HAVE_RSS_EXP], [/* Have RSS in verbs_exp header */
+configure.ac:116: the top level])
+m4trace:configure.ac:120: -1- AM_CONDITIONAL([HAVE_RSS_EXP], [test "x$HAVE_RSS_EXP" = "xyes"])
+m4trace:configure.ac:120: -1- AC_SUBST([HAVE_RSS_EXP_TRUE])
+m4trace:configure.ac:120: -1- AC_SUBST_TRACE([HAVE_RSS_EXP_TRUE])
+m4trace:configure.ac:120: -1- m4_pattern_allow([^HAVE_RSS_EXP_TRUE$])
+m4trace:configure.ac:120: -1- AC_SUBST([HAVE_RSS_EXP_FALSE])
+m4trace:configure.ac:120: -1- AC_SUBST_TRACE([HAVE_RSS_EXP_FALSE])
+m4trace:configure.ac:120: -1- m4_pattern_allow([^HAVE_RSS_EXP_FALSE$])
+m4trace:configure.ac:120: -1- _AM_SUBST_NOTMAKE([HAVE_RSS_EXP_TRUE])
+m4trace:configure.ac:120: -1- _AM_SUBST_NOTMAKE([HAVE_RSS_EXP_FALSE])
+m4trace:configure.ac:122: -1- AC_DEFINE_TRACE_LITERAL([HAVE_RSS_EXP])
+m4trace:configure.ac:122: -1- m4_pattern_allow([^HAVE_RSS_EXP$])
+m4trace:configure.ac:122: -1- AH_OUTPUT([HAVE_RSS_EXP], [/* Have RSS in verbs_exp header */
 #undef HAVE_RSS_EXP])
-m4trace:configure.ac:123: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+m4trace:configure.ac:125: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
-configure.ac:123: the top level])
-m4trace:configure.ac:127: -1- AM_CONDITIONAL([HAVE_DC], [test "x$HAVE_DC" = "xyes"])
-m4trace:configure.ac:127: -1- AC_SUBST([HAVE_DC_TRUE])
-m4trace:configure.ac:127: -1- AC_SUBST_TRACE([HAVE_DC_TRUE])
-m4trace:configure.ac:127: -1- m4_pattern_allow([^HAVE_DC_TRUE$])
-m4trace:configure.ac:127: -1- AC_SUBST([HAVE_DC_FALSE])
-m4trace:configure.ac:127: -1- AC_SUBST_TRACE([HAVE_DC_FALSE])
-m4trace:configure.ac:127: -1- m4_pattern_allow([^HAVE_DC_FALSE$])
-m4trace:configure.ac:127: -1- _AM_SUBST_NOTMAKE([HAVE_DC_TRUE])
-m4trace:configure.ac:127: -1- _AM_SUBST_NOTMAKE([HAVE_DC_FALSE])
-m4trace:configure.ac:129: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DC])
-m4trace:configure.ac:129: -1- m4_pattern_allow([^HAVE_DC$])
-m4trace:configure.ac:129: -1- AH_OUTPUT([HAVE_DC], [/* Enable DC feature */
+configure.ac:125: the top level])
+m4trace:configure.ac:129: -1- AM_CONDITIONAL([HAVE_DC], [test "x$HAVE_DC" = "xyes"])
+m4trace:configure.ac:129: -1- AC_SUBST([HAVE_DC_TRUE])
+m4trace:configure.ac:129: -1- AC_SUBST_TRACE([HAVE_DC_TRUE])
+m4trace:configure.ac:129: -1- m4_pattern_allow([^HAVE_DC_TRUE$])
+m4trace:configure.ac:129: -1- AC_SUBST([HAVE_DC_FALSE])
+m4trace:configure.ac:129: -1- AC_SUBST_TRACE([HAVE_DC_FALSE])
+m4trace:configure.ac:129: -1- m4_pattern_allow([^HAVE_DC_FALSE$])
+m4trace:configure.ac:129: -1- _AM_SUBST_NOTMAKE([HAVE_DC_TRUE])
+m4trace:configure.ac:129: -1- _AM_SUBST_NOTMAKE([HAVE_DC_FALSE])
+m4trace:configure.ac:131: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DC])
+m4trace:configure.ac:131: -1- m4_pattern_allow([^HAVE_DC$])
+m4trace:configure.ac:131: -1- AH_OUTPUT([HAVE_DC], [/* Enable DC feature */
 #undef HAVE_DC])
-m4trace:configure.ac:132: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+m4trace:configure.ac:134: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
-configure.ac:132: the top level])
-m4trace:configure.ac:136: -1- AM_CONDITIONAL([HAVE_ACCL_VERBS], [test "x$HAVE_ACCL_VERBS" = "xyes"])
-m4trace:configure.ac:136: -1- AC_SUBST([HAVE_ACCL_VERBS_TRUE])
-m4trace:configure.ac:136: -1- AC_SUBST_TRACE([HAVE_ACCL_VERBS_TRUE])
-m4trace:configure.ac:136: -1- m4_pattern_allow([^HAVE_ACCL_VERBS_TRUE$])
-m4trace:configure.ac:136: -1- AC_SUBST([HAVE_ACCL_VERBS_FALSE])
-m4trace:configure.ac:136: -1- AC_SUBST_TRACE([HAVE_ACCL_VERBS_FALSE])
-m4trace:configure.ac:136: -1- m4_pattern_allow([^HAVE_ACCL_VERBS_FALSE$])
-m4trace:configure.ac:136: -1- _AM_SUBST_NOTMAKE([HAVE_ACCL_VERBS_TRUE])
-m4trace:configure.ac:136: -1- _AM_SUBST_NOTMAKE([HAVE_ACCL_VERBS_FALSE])
-m4trace:configure.ac:138: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ACCL_VERBS])
-m4trace:configure.ac:138: -1- m4_pattern_allow([^HAVE_ACCL_VERBS$])
-m4trace:configure.ac:138: -1- AH_OUTPUT([HAVE_ACCL_VERBS], [/* Enable Accelerated verbs feature */
+configure.ac:134: the top level])
+m4trace:configure.ac:138: -1- AM_CONDITIONAL([HAVE_ACCL_VERBS], [test "x$HAVE_ACCL_VERBS" = "xyes"])
+m4trace:configure.ac:138: -1- AC_SUBST([HAVE_ACCL_VERBS_TRUE])
+m4trace:configure.ac:138: -1- AC_SUBST_TRACE([HAVE_ACCL_VERBS_TRUE])
+m4trace:configure.ac:138: -1- m4_pattern_allow([^HAVE_ACCL_VERBS_TRUE$])
+m4trace:configure.ac:138: -1- AC_SUBST([HAVE_ACCL_VERBS_FALSE])
+m4trace:configure.ac:138: -1- AC_SUBST_TRACE([HAVE_ACCL_VERBS_FALSE])
+m4trace:configure.ac:138: -1- m4_pattern_allow([^HAVE_ACCL_VERBS_FALSE$])
+m4trace:configure.ac:138: -1- _AM_SUBST_NOTMAKE([HAVE_ACCL_VERBS_TRUE])
+m4trace:configure.ac:138: -1- _AM_SUBST_NOTMAKE([HAVE_ACCL_VERBS_FALSE])
+m4trace:configure.ac:140: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ACCL_VERBS])
+m4trace:configure.ac:140: -1- m4_pattern_allow([^HAVE_ACCL_VERBS$])
+m4trace:configure.ac:140: -1- AH_OUTPUT([HAVE_ACCL_VERBS], [/* Enable Accelerated verbs feature */
 #undef HAVE_ACCL_VERBS])
-m4trace:configure.ac:141: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+m4trace:configure.ac:143: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
 You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
-configure.ac:141: the top level])
-m4trace:configure.ac:145: -1- AM_CONDITIONAL([HAVE_ODP], [test "x$HAVE_ODP" = "xyes"])
-m4trace:configure.ac:145: -1- AC_SUBST([HAVE_ODP_TRUE])
-m4trace:configure.ac:145: -1- AC_SUBST_TRACE([HAVE_ODP_TRUE])
-m4trace:configure.ac:145: -1- m4_pattern_allow([^HAVE_ODP_TRUE$])
-m4trace:configure.ac:145: -1- AC_SUBST([HAVE_ODP_FALSE])
-m4trace:configure.ac:145: -1- AC_SUBST_TRACE([HAVE_ODP_FALSE])
-m4trace:configure.ac:145: -1- m4_pattern_allow([^HAVE_ODP_FALSE$])
-m4trace:configure.ac:145: -1- _AM_SUBST_NOTMAKE([HAVE_ODP_TRUE])
-m4trace:configure.ac:145: -1- _AM_SUBST_NOTMAKE([HAVE_ODP_FALSE])
-m4trace:configure.ac:147: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ODP])
-m4trace:configure.ac:147: -1- m4_pattern_allow([^HAVE_ODP$])
-m4trace:configure.ac:147: -1- AH_OUTPUT([HAVE_ODP], [/* Have ODP support */
+configure.ac:143: the top level])
+m4trace:configure.ac:147: -1- AM_CONDITIONAL([HAVE_ODP], [test "x$HAVE_ODP" = "xyes"])
+m4trace:configure.ac:147: -1- AC_SUBST([HAVE_ODP_TRUE])
+m4trace:configure.ac:147: -1- AC_SUBST_TRACE([HAVE_ODP_TRUE])
+m4trace:configure.ac:147: -1- m4_pattern_allow([^HAVE_ODP_TRUE$])
+m4trace:configure.ac:147: -1- AC_SUBST([HAVE_ODP_FALSE])
+m4trace:configure.ac:147: -1- AC_SUBST_TRACE([HAVE_ODP_FALSE])
+m4trace:configure.ac:147: -1- m4_pattern_allow([^HAVE_ODP_FALSE$])
+m4trace:configure.ac:147: -1- _AM_SUBST_NOTMAKE([HAVE_ODP_TRUE])
+m4trace:configure.ac:147: -1- _AM_SUBST_NOTMAKE([HAVE_ODP_FALSE])
+m4trace:configure.ac:149: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ODP])
+m4trace:configure.ac:149: -1- m4_pattern_allow([^HAVE_ODP$])
+m4trace:configure.ac:149: -1- AH_OUTPUT([HAVE_ODP], [/* Have ODP support */
 #undef HAVE_ODP])
-m4trace:configure.ac:151: -1- AC_DEFINE_TRACE_LITERAL([HAVE_CUDA])
-m4trace:configure.ac:151: -1- m4_pattern_allow([^HAVE_CUDA$])
-m4trace:configure.ac:151: -1- AH_OUTPUT([HAVE_CUDA], [/* Enable CUDA feature */
+m4trace:configure.ac:153: -1- AC_DEFINE_TRACE_LITERAL([HAVE_CUDA])
+m4trace:configure.ac:153: -1- m4_pattern_allow([^HAVE_CUDA$])
+m4trace:configure.ac:153: -1- AH_OUTPUT([HAVE_CUDA], [/* Enable CUDA feature */
 #undef HAVE_CUDA])
-m4trace:configure.ac:152: -1- AC_DEFINE_TRACE_LITERAL([CUDA_PATH])
-m4trace:configure.ac:152: -1- m4_pattern_allow([^CUDA_PATH$])
-m4trace:configure.ac:152: -1- AH_OUTPUT([CUDA_PATH], [/* Enable CUDA feature */
+m4trace:configure.ac:154: -1- AC_DEFINE_TRACE_LITERAL([CUDA_PATH])
+m4trace:configure.ac:154: -1- m4_pattern_allow([^CUDA_PATH$])
+m4trace:configure.ac:154: -1- AH_OUTPUT([CUDA_PATH], [/* Enable CUDA feature */
 #undef CUDA_PATH])
-m4trace:configure.ac:157: -1- AC_SUBST([LIBUMAD])
-m4trace:configure.ac:157: -1- AC_SUBST_TRACE([LIBUMAD])
-m4trace:configure.ac:157: -1- m4_pattern_allow([^LIBUMAD$])
-m4trace:configure.ac:158: -1- AC_SUBST([LIBMATH])
-m4trace:configure.ac:158: -1- AC_SUBST_TRACE([LIBMATH])
-m4trace:configure.ac:158: -1- m4_pattern_allow([^LIBMATH$])
-m4trace:configure.ac:159: -1- AC_CONFIG_FILES([Makefile])
-m4trace:configure.ac:160: -1- AC_SUBST([LIB@&t at OBJS], [$ac_libobjs])
-m4trace:configure.ac:160: -1- AC_SUBST_TRACE([LIB@&t at OBJS])
-m4trace:configure.ac:160: -1- m4_pattern_allow([^LIB@&t at OBJS$])
-m4trace:configure.ac:160: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
-m4trace:configure.ac:160: -1- AC_SUBST_TRACE([LTLIBOBJS])
-m4trace:configure.ac:160: -1- m4_pattern_allow([^LTLIBOBJS$])
-m4trace:configure.ac:160: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])
-m4trace:configure.ac:160: -1- AC_SUBST([am__EXEEXT_TRUE])
-m4trace:configure.ac:160: -1- AC_SUBST_TRACE([am__EXEEXT_TRUE])
-m4trace:configure.ac:160: -1- m4_pattern_allow([^am__EXEEXT_TRUE$])
-m4trace:configure.ac:160: -1- AC_SUBST([am__EXEEXT_FALSE])
-m4trace:configure.ac:160: -1- AC_SUBST_TRACE([am__EXEEXT_FALSE])
-m4trace:configure.ac:160: -1- m4_pattern_allow([^am__EXEEXT_FALSE$])
-m4trace:configure.ac:160: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE])
-m4trace:configure.ac:160: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE])
-m4trace:configure.ac:160: -1- AC_SUBST_TRACE([top_builddir])
-m4trace:configure.ac:160: -1- AC_SUBST_TRACE([top_build_prefix])
-m4trace:configure.ac:160: -1- AC_SUBST_TRACE([srcdir])
-m4trace:configure.ac:160: -1- AC_SUBST_TRACE([abs_srcdir])
-m4trace:configure.ac:160: -1- AC_SUBST_TRACE([top_srcdir])
-m4trace:configure.ac:160: -1- AC_SUBST_TRACE([abs_top_srcdir])
-m4trace:configure.ac:160: -1- AC_SUBST_TRACE([builddir])
-m4trace:configure.ac:160: -1- AC_SUBST_TRACE([abs_builddir])
-m4trace:configure.ac:160: -1- AC_SUBST_TRACE([abs_top_builddir])
-m4trace:configure.ac:160: -1- AC_SUBST_TRACE([INSTALL])
-m4trace:configure.ac:160: -1- AC_SUBST_TRACE([MKDIR_P])
-m4trace:configure.ac:160: -1- AC_REQUIRE_AUX_FILE([ltmain.sh])
+m4trace:configure.ac:158: -1- _m4_warn([obsolete], [The macro `AC_TRY_LINK' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2527: AC_TRY_LINK is expanded from...
+configure.ac:158: the top level])
+m4trace:configure.ac:162: -1- AM_CONDITIONAL([HAVE_SCATTER_FCS], [test "x$HAVE_SCATTER_FCS" = "xyes"])
+m4trace:configure.ac:162: -1- AC_SUBST([HAVE_SCATTER_FCS_TRUE])
+m4trace:configure.ac:162: -1- AC_SUBST_TRACE([HAVE_SCATTER_FCS_TRUE])
+m4trace:configure.ac:162: -1- m4_pattern_allow([^HAVE_SCATTER_FCS_TRUE$])
+m4trace:configure.ac:162: -1- AC_SUBST([HAVE_SCATTER_FCS_FALSE])
+m4trace:configure.ac:162: -1- AC_SUBST_TRACE([HAVE_SCATTER_FCS_FALSE])
+m4trace:configure.ac:162: -1- m4_pattern_allow([^HAVE_SCATTER_FCS_FALSE$])
+m4trace:configure.ac:162: -1- _AM_SUBST_NOTMAKE([HAVE_SCATTER_FCS_TRUE])
+m4trace:configure.ac:162: -1- _AM_SUBST_NOTMAKE([HAVE_SCATTER_FCS_FALSE])
+m4trace:configure.ac:164: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SCATTER_FCS])
+m4trace:configure.ac:164: -1- m4_pattern_allow([^HAVE_SCATTER_FCS$])
+m4trace:configure.ac:164: -1- AH_OUTPUT([HAVE_SCATTER_FCS], [/* Have SCATTER_FCS support */
+#undef HAVE_SCATTER_FCS])
+m4trace:configure.ac:168: -1- AC_SUBST([LIBUMAD])
+m4trace:configure.ac:168: -1- AC_SUBST_TRACE([LIBUMAD])
+m4trace:configure.ac:168: -1- m4_pattern_allow([^LIBUMAD$])
+m4trace:configure.ac:169: -1- AC_SUBST([LIBMATH])
+m4trace:configure.ac:169: -1- AC_SUBST_TRACE([LIBMATH])
+m4trace:configure.ac:169: -1- m4_pattern_allow([^LIBMATH$])
+m4trace:configure.ac:170: -1- AC_CONFIG_FILES([Makefile])
+m4trace:configure.ac:171: -1- AC_SUBST([LIB@&t at OBJS], [$ac_libobjs])
+m4trace:configure.ac:171: -1- AC_SUBST_TRACE([LIB@&t at OBJS])
+m4trace:configure.ac:171: -1- m4_pattern_allow([^LIB@&t at OBJS$])
+m4trace:configure.ac:171: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
+m4trace:configure.ac:171: -1- AC_SUBST_TRACE([LTLIBOBJS])
+m4trace:configure.ac:171: -1- m4_pattern_allow([^LTLIBOBJS$])
+m4trace:configure.ac:171: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])
+m4trace:configure.ac:171: -1- AC_SUBST([am__EXEEXT_TRUE])
+m4trace:configure.ac:171: -1- AC_SUBST_TRACE([am__EXEEXT_TRUE])
+m4trace:configure.ac:171: -1- m4_pattern_allow([^am__EXEEXT_TRUE$])
+m4trace:configure.ac:171: -1- AC_SUBST([am__EXEEXT_FALSE])
+m4trace:configure.ac:171: -1- AC_SUBST_TRACE([am__EXEEXT_FALSE])
+m4trace:configure.ac:171: -1- m4_pattern_allow([^am__EXEEXT_FALSE$])
+m4trace:configure.ac:171: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE])
+m4trace:configure.ac:171: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE])
+m4trace:configure.ac:171: -1- AC_SUBST_TRACE([top_builddir])
+m4trace:configure.ac:171: -1- AC_SUBST_TRACE([top_build_prefix])
+m4trace:configure.ac:171: -1- AC_SUBST_TRACE([srcdir])
+m4trace:configure.ac:171: -1- AC_SUBST_TRACE([abs_srcdir])
+m4trace:configure.ac:171: -1- AC_SUBST_TRACE([top_srcdir])
+m4trace:configure.ac:171: -1- AC_SUBST_TRACE([abs_top_srcdir])
+m4trace:configure.ac:171: -1- AC_SUBST_TRACE([builddir])
+m4trace:configure.ac:171: -1- AC_SUBST_TRACE([abs_builddir])
+m4trace:configure.ac:171: -1- AC_SUBST_TRACE([abs_top_builddir])
+m4trace:configure.ac:171: -1- AC_SUBST_TRACE([INSTALL])
+m4trace:configure.ac:171: -1- AC_SUBST_TRACE([MKDIR_P])
+m4trace:configure.ac:171: -1- AC_REQUIRE_AUX_FILE([ltmain.sh])
diff --git a/config.h.in b/config.h.in
index e742a80..83294d0 100644
--- a/config.h.in
+++ b/config.h.in
@@ -54,6 +54,9 @@
 /* Have RSS in verbs_exp header */
 #undef HAVE_RSS_EXP
 
+/* Have SCATTER_FCS support */
+#undef HAVE_SCATTER_FCS
+
 /* Enable SCIF link Layer */
 #undef HAVE_SCIF
 
diff --git a/configure b/configure
index 0dd7717..14004ac 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.63 for perftest 5.5.
+# Generated by GNU Autoconf 2.63 for perftest 5.6.
 #
 # Report bugs to <linux-rdma at vger.kernel.org>.
 #
@@ -745,10 +745,11 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='perftest'
 PACKAGE_TARNAME='perftest'
-PACKAGE_VERSION='5.5'
-PACKAGE_STRING='perftest 5.5'
+PACKAGE_VERSION='5.6'
+PACKAGE_STRING='perftest 5.6'
 PACKAGE_BUGREPORT='linux-rdma at vger.kernel.org'
 
+ac_default_prefix="/usr"
 # Factoring default headers for most tests.
 ac_includes_default="\
 #include <stdio.h>
@@ -791,6 +792,8 @@ LTLIBOBJS
 LIBOBJS
 LIBMATH
 LIBUMAD
+HAVE_SCATTER_FCS_FALSE
+HAVE_SCATTER_FCS_TRUE
 HAVE_ODP_FALSE
 HAVE_ODP_TRUE
 HAVE_ACCL_VERBS_FALSE
@@ -1518,7 +1521,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 perftest 5.5 to adapt to many kinds of systems.
+\`configure' configures perftest 5.6 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1588,7 +1591,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of perftest 5.5:";;
+     short | recursive ) echo "Configuration of perftest 5.6:";;
    esac
   cat <<\_ACEOF
 
@@ -1697,7 +1700,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-perftest configure 5.5
+perftest configure 5.6
 generated by GNU Autoconf 2.63
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1711,7 +1714,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 perftest $as_me 5.5, which was
+It was created by perftest $as_me 5.6, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   $ $0 $@
@@ -2563,7 +2566,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='perftest'
- VERSION='5.5'
+ VERSION='5.6'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2637,6 +2640,8 @@ else
 fi
 
 
+
+
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -5185,13 +5190,13 @@ if test "${lt_cv_nm_interface+set}" = set; then
 else
   lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:5188: $ac_compile\"" >&5)
+  (eval echo "\"\$as_me:5193: $ac_compile\"" >&5)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:5191: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval echo "\"\$as_me:5196: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:5194: output\"" >&5)
+  (eval echo "\"\$as_me:5199: output\"" >&5)
   cat conftest.out >&5
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
@@ -6397,7 +6402,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 6400 "configure"' > conftest.$ac_ext
+  echo '#line 6405 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -8988,11 +8993,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8991: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8996: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:8995: \$? = $ac_status" >&5
+   echo "$as_me:9000: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -9327,11 +9332,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9330: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9335: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:9334: \$? = $ac_status" >&5
+   echo "$as_me:9339: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -9432,11 +9437,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9435: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9440: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:9439: \$? = $ac_status" >&5
+   echo "$as_me:9444: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -9487,11 +9492,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9490: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9495: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:9494: \$? = $ac_status" >&5
+   echo "$as_me:9499: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -12290,7 +12295,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12293 "configure"
+#line 12298 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12386,7 +12391,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12389 "configure"
+#line 12394 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -14406,11 +14411,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:14409: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14414: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:14413: \$? = $ac_status" >&5
+   echo "$as_me:14418: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -14505,11 +14510,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:14508: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14513: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:14512: \$? = $ac_status" >&5
+   echo "$as_me:14517: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -14557,11 +14562,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:14560: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14565: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:14564: \$? = $ac_status" >&5
+   echo "$as_me:14569: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -17041,6 +17046,71 @@ _ACEOF
 	LIBS=$LIBS" -lcuda"
 fi
 
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <infiniband/verbs.h>
+#include <infiniband/verbs_exp.h>
+int
+main ()
+{
+int x = IBV_EXP_DEVICE_SCATTER_FCS;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
+  HAVE_SCATTER_FCS=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	HAVE_SCATTER_FCS=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+ if test "x$HAVE_SCATTER_FCS" = "xyes"; then
+  HAVE_SCATTER_FCS_TRUE=
+  HAVE_SCATTER_FCS_FALSE='#'
+else
+  HAVE_SCATTER_FCS_TRUE='#'
+  HAVE_SCATTER_FCS_FALSE=
+fi
+
+if test $HAVE_SCATTER_FCS = yes && test $HAVE_VERBS_EXP = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_SCATTER_FCS 1
+_ACEOF
+
+fi
+
 CFLAGS="-g -Wall -D_GNU_SOURCE -O3"
 
 
@@ -17277,6 +17347,13 @@ $as_echo "$as_me: error: conditional \"HAVE_ODP\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${HAVE_SCATTER_FCS_TRUE}" && test -z "${HAVE_SCATTER_FCS_FALSE}"; then
+  { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_SCATTER_FCS\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+$as_echo "$as_me: error: conditional \"HAVE_SCATTER_FCS\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 
 : ${CONFIG_STATUS=./config.status}
 ac_write_fail=0
@@ -17599,7 +17676,7 @@ exec 6>&1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by perftest $as_me 5.5, which was
+This file was extended by perftest $as_me 5.6, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -17662,7 +17739,7 @@ Report bugs to <bug-autoconf at gnu.org>."
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
-perftest config.status 5.5
+perftest config.status 5.6
 configured by $0, generated by GNU Autoconf 2.63,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
diff --git a/configure.ac b/configure.ac
index d4af0e6..4c460e8 100755
--- a/configure.ac
+++ b/configure.ac
@@ -11,7 +11,7 @@
 # $HEADER$
 dnl Process this file with autoconf to produce a configure script.
 
-AC_INIT([perftest],[5.5],[linux-rdma at vger.kernel.org])
+AC_INIT([perftest],[5.6],[linux-rdma at vger.kernel.org])
 AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_AUX_DIR([config])
 AC_CONFIG_MACRO_DIR([m4])
@@ -33,6 +33,8 @@ AS_IF([test "x$enable_verbs_exp" = "xyes"],
       [USE_VERBS_EXP=yes],
         [USE_VERBS_EXP=no])
 
+AC_PREFIX_DEFAULT("/usr")
+
 AC_PROG_CC
 AC_PROG_CXX
 AM_PROG_AS
@@ -153,6 +155,15 @@ if [test "$CUDA_H_PATH" ]; then
 	LIBS=$LIBS" -lcuda"
 fi
 
+AC_TRY_LINK([
+#include <infiniband/verbs.h>
+#include <infiniband/verbs_exp.h>],
+        [int x = IBV_EXP_DEVICE_SCATTER_FCS;],[HAVE_SCATTER_FCS=yes], [HAVE_SCATTER_FCS=no])
+AM_CONDITIONAL([HAVE_SCATTER_FCS],[test "x$HAVE_SCATTER_FCS" = "xyes"])
+if [test $HAVE_SCATTER_FCS = yes] && [test $HAVE_VERBS_EXP = yes]; then
+        AC_DEFINE([HAVE_SCATTER_FCS], [1], [Have SCATTER_FCS support])
+fi
+
 CFLAGS="-g -Wall -D_GNU_SOURCE -O3"
 AC_SUBST([LIBUMAD])
 AC_SUBST([LIBMATH])
diff --git a/perftest.spec b/perftest.spec
index 5e1b0f6..dc56d60 100644
--- a/perftest.spec
+++ b/perftest.spec
@@ -1,10 +1,10 @@
 Name:           perftest
 Summary:        IB Performance tests
 Version: 3.0
-Release: 0.18.gb464d59
+Release: 0.21.g21dc344
 License:        BSD 3-Clause, GPL v2 or later
 Group:          Productivity/Networking/Diagnostic
-Source: http://www.openfabrics.org/downloads/perftest-3.0-0.18.gb464d59.tar.gz
+Source: http://www.openfabrics.org/downloads/perftest-3.0-0.21.g21dc344.tar.gz
 Url:            http://www.openfabrics.org
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 BuildRequires:  libibverbs-devel librdmacm-devel libibumad-devel
diff --git a/src/perftest_parameters.c b/src/perftest_parameters.c
index 41b963f..1cf4985 100755
--- a/src/perftest_parameters.c
+++ b/src/perftest_parameters.c
@@ -163,15 +163,17 @@ static void usage(const char *argv0, VerbType verb, TestType tst, int connection
 		printf(" Measure bidirectional bandwidth (default unidirectional)\n");
 	}
 
-	if (verb == SEND) {
-		printf("  -c, --connection=<RC/XRC/UC/UD/DC> ");
-		printf(" Connection type RC/XRC/UC/UD/DC (default RC)\n");
-	} else 	if (verb == WRITE) {
-		printf("  -c, --connection=<RC/XRC/UC/DC> ");
-		printf(" Connection type RC/XRC/UC/DC (default RC)\n");
-	} else if (verb == READ || verb == ATOMIC) {
-		printf("  -c, --connection=<RC/XRC/DC> ");
-		printf(" Connection type RC/XRC/DC (default RC)\n");
+	if (connection_type != RawEth) {
+		if (verb == SEND) {
+			printf("  -c, --connection=<RC/XRC/UC/UD/DC> ");
+			printf(" Connection type RC/XRC/UC/UD/DC (default RC)\n");
+		} else 	if (verb == WRITE) {
+			printf("  -c, --connection=<RC/XRC/UC/DC> ");
+			printf(" Connection type RC/XRC/UC/DC (default RC)\n");
+		} else if (verb == READ || verb == ATOMIC) {
+			printf("  -c, --connection=<RC/XRC/DC> ");
+			printf(" Connection type RC/XRC/DC (default RC)\n");
+		}
 	}
 
 	if (tst == LAT) {
@@ -185,7 +187,7 @@ static void usage(const char *argv0, VerbType verb, TestType tst, int connection
 	printf("  -D, --duration ");
 	printf(" Run test for a customized period of seconds.\n");
 
-	if (verb != WRITE) {
+	if (verb != WRITE && connection_type != RawEth) {
 		printf("  -e, --events ");
 		printf(" Sleep on CQ events (default poll)\n");
 	}
@@ -224,10 +226,10 @@ static void usage(const char *argv0, VerbType verb, TestType tst, int connection
 
 	if (connection_type == RawEth) {
 		printf("  -m, --mtu=<mtu> ");
-		printf(" Mtu size : 64 - 9600 (default port mtu)\n");
+		printf(" MTU size : 64 - 9600 (default port mtu)\n");
 	} else {
 		printf("  -m, --mtu=<mtu> ");
-		printf(" Mtu size : 256 - 4096 (default port mtu)\n");
+		printf(" MTU size : 256 - 4096 (default port mtu)\n");
 	}
 
 	if (verb == SEND) {
@@ -248,7 +250,7 @@ static void usage(const char *argv0, VerbType verb, TestType tst, int connection
 		printf(" num of outstanding read/atom(default max of device)\n");
 	}
 
-	if (tst == BW) {
+	if (tst == BW && connection_type != RawEth) {
 		printf("  -O, --dualport ");
 		printf(" Run test in dual-port mode.\n");
 	}
@@ -256,7 +258,7 @@ static void usage(const char *argv0, VerbType verb, TestType tst, int connection
 	printf("  -p, --port=<port> ");
 	printf(" Listen on/connect to port <port> (default %d)\n",DEF_PORT);
 
-	if (tst == BW) {
+	if (tst == BW  && connection_type != RawEth) {
 		printf("  -q, --qp=<num of qp's>  Num of qp's(default %d)\n",DEF_NUM_QPS);
 	}
 
@@ -271,8 +273,10 @@ static void usage(const char *argv0, VerbType verb, TestType tst, int connection
 		printf(" If using srq, rx-depth controls max-wr size of the srq\n");
 	}
 
-	printf("  -R, --rdma_cm ");
-	printf(" Connect QPs with rdma_cm and run test on those QPs\n");
+	if (connection_type != RawEth) {
+		printf("  -R, --rdma_cm ");
+		printf(" Connect QPs with rdma_cm and run test on those QPs\n");
+	}
 
 	if (verb != ATOMIC) {
 		printf("  -s, --size=<size> ");
@@ -302,19 +306,24 @@ static void usage(const char *argv0, VerbType verb, TestType tst, int connection
 	printf(" Display version number\n");
 
 	if (tst == BW) {
-		printf("  -w, --limit_bw ");
+		printf("  -w, --limit_bw=<value> ");
 		printf(" Set verifier limit for bandwidth\n");
 	}
-	printf("  -x, --gid-index=<index> ");
-	printf(" Test uses GID with GID index (Default : IB - no gid . ETH - 0)\n");
+
+	if (connection_type != RawEth) {
+		printf("  -x, --gid-index=<index> ");
+		printf(" Test uses GID with GID index (Default : IB - no gid . ETH - 0)\n");
+	}
 
 	if (tst == BW) {
-		printf("  -y, --limit_msgrate ");
+		printf("  -y, --limit_msgrate=<value> ");
 		printf(" Set verifier limit for Msg Rate\n");
 	}
 
-	printf("  -z, --com_rdma_cm ");
-	printf(" Communicate with rdma_cm module to exchange data - use regular QPs\n");
+	if (connection_type != RawEth) {
+		printf("  -z, --com_rdma_cm ");
+		printf(" Communicate with rdma_cm module to exchange data - use regular QPs\n");
+	}
 
 	/*Long flags*/
 	putchar('\n');
@@ -325,26 +334,32 @@ static void usage(const char *argv0, VerbType verb, TestType tst, int connection
 	printf("      --dlid ");
 	printf(" Set a Destination LID instead of getting it from the other side.\n");
 
-	printf("      --dont_xchg_versions ");
-	printf(" Do not exchange versions and MTU with other side \n");
+	if (connection_type != RawEth) {
+		printf("      --dont_xchg_versions ");
+		printf(" Do not exchange versions and MTU with other side \n");
+	}
 
 	if (verb != WRITE) {
 		printf("      --inline_recv=<size> ");
 		printf(" Max size of message to be sent in inline receive\n");
 	}
 
-	printf("      --ipv6 ");
-	printf(" Use IPv6 GID. Default is IPv4\n");
+	if (connection_type != RawEth) {
+		printf("      --ipv6 ");
+		printf(" Use IPv6 GID. Default is IPv4\n");
+	}
 
 	if (tst == LAT) {
 		printf("      --latency_gap=<delay_time> ");
 		printf(" delay time between each post send\n");
 	}
 
-	printf("      --mmap=file ");
-	printf(" Use an mmap'd file as the buffer for testing P2P transfers.\n");
-	printf("      --mmap-offset=<offset> ");
-	printf(" Use an mmap'd file as the buffer for testing P2P transfers.\n");
+	if (connection_type != RawEth) {
+		printf("      --mmap=file ");
+		printf(" Use an mmap'd file as the buffer for testing P2P transfers.\n");
+		printf("      --mmap-offset=<offset> ");
+		printf(" Use an mmap'd file as the buffer for testing P2P transfers.\n");
+	}
 
 	if (tst == BW) {
 		printf("      --mr_per_qp ");
@@ -368,8 +383,10 @@ static void usage(const char *argv0, VerbType verb, TestType tst, int connection
 		printf("      --report_gbits ");
 		printf(" Report Max/Average BW of test in Gbit/sec (instead of MB/sec)\n");
 
-		printf("      --report-per-port ");
-		printf(" Report BW data on both ports when running Dualport and Duration mode\n");
+		if (connection_type != RawEth) {
+			printf("      --report-per-port ");
+			printf(" Report BW data on both ports when running Dualport and Duration mode\n");
+		}
 
 		printf("      --reversed ");
 		printf(" Reverse traffic direction - Server send to client\n");
@@ -378,8 +395,10 @@ static void usage(const char *argv0, VerbType verb, TestType tst, int connection
 		printf(" Run test forever, print results every <duration> seconds\n");
 	}
 
-	printf("      --retry_count=<value> ");
-	printf(" Set retry count value in rdma_cm mode\n");
+	if (connection_type != RawEth) {
+		printf("      --retry_count=<value> ");
+		printf(" Set retry count value in rdma_cm mode\n");
+	}
 
 	printf("      --tclass=<value> ");
 	printf(" Set the Traffic Class in GRH (if GRH is in use)\n");
@@ -420,7 +439,7 @@ static void usage(const char *argv0, VerbType verb, TestType tst, int connection
 /******************************************************************************
   usage
  ******************************************************************************/
-void usage_raw_ethernet()
+void usage_raw_ethernet(TestType tst)
 {
 	printf("  Raw Ethernet options :\n");
 	printf("  -B, --source_mac ");
@@ -456,6 +475,16 @@ void usage_raw_ethernet()
 	printf("  -v, --mac_fwd ");
 	printf(" run mac forwarding test \n");
 
+	#ifdef HAVE_SCATTER_FCS
+	printf("      --disable_fcs ");
+	printf(" Disable Scatter FCS feature. (Scatter FCS is enabled by default when using --use_exp flag). \n");
+	#endif
+
+	if (tst == LAT) {
+		printf("      --flows");
+		printf(" set number of TCP/UDP flows, starting from <src_port, dst_port>. \n");
+	}
+
 	printf("      --promiscuous");
 	printf(" run promiscuous mode.\n");
 
@@ -564,6 +593,8 @@ static void init_perftest_params(struct perftest_parameters *user_param)
 	user_param->mr_per_qp		= 0;
 	user_param->dlid		= 0;
 	user_param->traffic_class	= 0;
+	user_param->disable_fcs		= 0;
+	user_param->flows		= DEF_FLOWS;
 }
 
 /******************************************************************************
@@ -595,35 +626,38 @@ static int ctx_chk_pkey_index(struct ibv_context *context,int pkey_idx)
 /******************************************************************************
  *
  ******************************************************************************/
-static void change_conn_type(int *cptr,VerbType verb,const char *optarg)
+static void change_conn_type(int *cptr, VerbType verb, const char *optarg)
 {
-	if (strcmp(connStr[0],optarg)==0)
+	if (*cptr == RawEth)
+		return;
+
+	if (strcmp(connStr[0], optarg)==0)
 		*cptr = RC;
 
-	else if (strcmp(connStr[1],optarg)==0) {
+	else if (strcmp(connStr[1], optarg)==0) {
 		*cptr = UC;
 		if (verb == READ || verb == ATOMIC) {
 			fprintf(stderr," UC connection not possible in READ/ATOMIC verbs\n");
 			exit(1);
 		}
 
-	} else if (strcmp(connStr[2],optarg)==0)  {
+	} else if (strcmp(connStr[2], optarg)==0)  {
 		*cptr = UD;
 		if (verb != SEND) {
 			fprintf(stderr," UD connection only possible in SEND verb\n");
 			exit(1);
 		}
-	} else if(strcmp(connStr[3],optarg)==0) {
+	} else if(strcmp(connStr[3], optarg)==0) {
 		*cptr = RawEth;
 
-	} else if(strcmp(connStr[4],optarg)==0) {
+	} else if(strcmp(connStr[4], optarg)==0) {
 		#ifdef HAVE_XRCD
 		*cptr = XRC;
 		#else
 		fprintf(stderr," XRC not detected in libibverbs\n");
 		exit(1);
 		#endif
-	} else if (strcmp(connStr[5],optarg)==0) {
+	} else if (strcmp(connStr[5], optarg)==0) {
 		#ifdef HAVE_DC
 		*cptr = DC;
 		#else
@@ -748,80 +782,30 @@ static void force_dependecies(struct perftest_parameters *user_param)
 		fprintf(stderr, " CPU Utilization works only with Duration mode.\n");
 	}
 
-	if (user_param->use_mcg &&  user_param->gid_index == -1) {
-		user_param->gid_index = 0;
-	}
-
-
-	if (user_param->verb == ATOMIC && user_param->connection_type == DC) {
-		printf(RESULT_LINE);
-		fprintf(stderr, " ATOMIC tests don't support DC transport\n");
-		exit(1);
-	}
-
-	if (user_param->work_rdma_cm) {
-
-		if (user_param->connection_type == UC) {
-			printf(RESULT_LINE);
-			printf(" UC is not supported in librdmacm\n");
-			exit(1);
-		}
+	if (user_param->connection_type == RawEth) {
 
-		if (user_param->use_mcg) {
-			printf(RESULT_LINE);
-			printf(" Perftest still doesn't support Multicast with rdma_cm\n");
+		if (user_param->test_method == RUN_ALL) {
+			fprintf(stderr, "Raw Ethernet tests do not support -a / --all flag.\n");
 			exit(1);
 		}
 
-		if (user_param->dualport) {
+		if (user_param->num_of_qps > 1 && !user_param->use_rss) {
 			printf(RESULT_LINE);
-			printf(" Perftest still doesn't support Dual Port with rdma_cm\n");
+			fprintf(stdout," Raw Ethernet test supports only 1 QP for now\n");
 			exit(1);
 		}
-
-		if (user_param->num_of_qps > 1) {
-			printf(RESULT_LINE);
-			fprintf(stdout," Perftest only supports 1 rmda_cm QP for now\n");
+		if (user_param->use_rdma_cm == ON || user_param->work_rdma_cm == ON) {
+			fprintf(stderr," RDMA CM isn't supported for Raw Ethernet tests\n");
 			exit(1);
 		}
-		user_param->use_rdma_cm = ON;
-
-	} else if (user_param->tos != DEF_TOS && user_param->connection_type != RawEth) {
-		fprintf(stdout," TOS only valid for rdma_cm based QP and RawEth QP \n");
-		exit(1);
-	}
-
-	if (user_param->use_mcg) {
-
-		if (user_param->connection_type != UD)
-			user_param->connection_type = UD;
-
-		if (user_param->duplex) {
-			fprintf(stdout,"Bidirectional mode not supported in multicast\n");
-			exit (1);
-		}
 
-		if (user_param->num_of_qps > 1) {
-			fprintf(stdout,"Only 1 QP supported in multicast\n");
+		if (user_param->use_gid_user) {
+			fprintf(stderr," GID index isn't supported for Raw Ethernet tests\n");
 			exit(1);
 		}
-	}
 
-	if(user_param->verb == ATOMIC && user_param->use_odp) {
-		printf(RESULT_LINE);
-		fprintf(stderr," ODP does not support ATOMICS for now\n");
-		exit(1);
-	}
-	if (user_param->connection_type == RawEth) {
-
-		if (user_param->test_method == RUN_ALL) {
-			fprintf(stderr, "Raw Ethernet tests do not support -a / --all flag.\n");
-			exit(1);
-		}
-
-		if (user_param->num_of_qps > 1 && !user_param->use_rss) {
-			printf(RESULT_LINE);
-			fprintf(stdout," Raw Ethernet test supports only 1 QP for now\n");
+		if (user_param->mmap_file != NULL || user_param->mmap_offset) {
+			fprintf(stderr," mmaped files aren't supported for Raw Ethernet tests\n");
 			exit(1);
 		}
 
@@ -831,13 +815,14 @@ static void force_dependecies(struct perftest_parameters *user_param)
 			exit(1);
 		}
 
+		/* Verify the packet */
 		if(user_param->is_source_mac == OFF) {
 			printf(RESULT_LINE);
 			fprintf(stderr," Invalid Command line.\n you must enter source mac by this format -B XX:XX:XX:XX:XX:XX\n");
 			exit(1);
 		}
 
-		if(user_param->machine == CLIENT && user_param->is_dest_mac == OFF && !user_param->raw_mcast) {
+		if(user_param->is_dest_mac == OFF && (user_param->tst == LAT || (user_param->machine == CLIENT && !user_param->raw_mcast))) {
 			printf(RESULT_LINE);
 			fprintf(stderr," Invalid Command line.\n you must enter dest mac by this format -E XX:XX:XX:XX:XX:XX\n");
 			exit(1);
@@ -854,7 +839,7 @@ static void force_dependecies(struct perftest_parameters *user_param)
 			fprintf(stderr," Invalid Command line.\nPlease provide source_ip and/or dest_ip when using UDP\n");
 			exit(1);
 		}
-		//UDP packet is ok by now. check tcp flag
+		/* UDP packet is ok by now. check tcp flag */
 		if (user_param->tcp == ON && user_param->is_server_port == OFF) {
 			printf(RESULT_LINE);
 			fprintf(stderr,"Invalid Command line.\nPlease provide UDP information (IP & UDP Port src/dest) in order to use TCP\n");
@@ -873,10 +858,88 @@ static void force_dependecies(struct perftest_parameters *user_param)
 		}
 
 		if (user_param->raw_mcast && user_param->duplex) {
-			printf(" Multicast feature works on unidirectional traffic only\n");
+			fprintf(stderr, " Multicast feature works on unidirectional traffic only\n");
+			exit(1);
+		}
+
+		if (user_param->flows != DEF_FLOWS) {
+
+			if (user_param->tst != LAT) {
+				fprintf(stderr, " Flows feature works with Latency test only\n");
+				exit(1);
+			}
+
+			/* UDP/TCP must have server_port, so this check is enough */
+			if (user_param->is_server_port == OFF) {
+				fprintf(stderr, " Flows feature works with UDP/TCP packets only for now\n");
+				exit(1);
+			}
+		}
+	}
+
+	if (user_param->use_mcg &&  user_param->gid_index == -1) {
+		user_param->gid_index = 0;
+	}
+
+
+	if (user_param->verb == ATOMIC && user_param->connection_type == DC) {
+		printf(RESULT_LINE);
+		fprintf(stderr, " ATOMIC tests don't support DC transport\n");
+		exit(1);
+	}
+
+	if (user_param->work_rdma_cm) {
+
+		if (user_param->connection_type == UC) {
+			printf(RESULT_LINE);
+			printf(" UC is not supported in librdmacm\n");
+			exit(1);
+		}
+
+		if (user_param->use_mcg) {
+			printf(RESULT_LINE);
+			printf(" Perftest still doesn't support Multicast with rdma_cm\n");
+			exit(1);
+		}
+
+		if (user_param->dualport) {
+			printf(RESULT_LINE);
+			printf(" Perftest still doesn't support Dual Port with rdma_cm\n");
+			exit(1);
+		}
+
+		if (user_param->num_of_qps > 1) {
+			printf(RESULT_LINE);
+			fprintf(stdout," Perftest only supports 1 rmda_cm QP for now\n");
+			exit(1);
+		}
+		user_param->use_rdma_cm = ON;
+
+	} else if (user_param->tos != DEF_TOS && user_param->connection_type != RawEth) {
+		fprintf(stdout," TOS only valid for rdma_cm based QP and RawEth QP \n");
+		exit(1);
+	}
+
+	if (user_param->use_mcg) {
+
+		if (user_param->connection_type != UD)
+			user_param->connection_type = UD;
+
+		if (user_param->duplex) {
+			fprintf(stdout,"Bidirectional mode not supported in multicast\n");
+			exit (1);
+		}
+
+		if (user_param->num_of_qps > 1) {
+			fprintf(stdout,"Only 1 QP supported in multicast\n");
 			exit(1);
 		}
+	}
 
+	if(user_param->verb == ATOMIC && user_param->use_odp) {
+		printf(RESULT_LINE);
+		fprintf(stderr," ODP does not support ATOMICS for now\n");
+		exit(1);
 	}
 
 	if (user_param->verb == SEND && user_param->tst == BW && user_param->machine == SERVER && !user_param->duplex )
@@ -906,19 +969,6 @@ static void force_dependecies(struct perftest_parameters *user_param)
 		}
 	}
 
-	/*raw ethernet send latency
-	client and server must enter the destination mac
-	*/
-	if (user_param->connection_type == RawEth && user_param->tst == LAT && user_param->verb == SEND) {
-
-		if (user_param-> is_dest_mac == OFF) {
-			printf(RESULT_LINE);
-			fprintf(stderr," Invalid Command line.\n you must enter dest mac by this format -E XX:XX:XX:XX:XX:XX\n");
-			exit(1);
-		}
-
-	}
-
 	if (user_param->connection_type == DC && !user_param->use_srq)
 		user_param->use_srq = 1;
 
@@ -1175,7 +1225,17 @@ enum ctx_device ib_dev_name(struct ibv_context *context)
 			case 25418 : dev_fname = CONNECTX;  break;
 			case 25428 : dev_fname = CONNECTX;  break;
 			case 25448 : dev_fname = CONNECTX;  break;
-			case 1824  : dev_fname = SKYHAWK;  break;
+			case 1824  : dev_fname = SKYHAWK;   break;
+			case 5684  : dev_fname = QLOGIC_E4; break;
+			case 5700  : dev_fname = QLOGIC_E4; break;
+			case 5716  : dev_fname = QLOGIC_E4; break;
+			case 5718  : dev_fname = QLOGIC_E4; break;
+			case 5734  : dev_fname = QLOGIC_E4; break;
+			case 32880 : dev_fname = QLOGIC_AH; break;
+			case 32881 : dev_fname = QLOGIC_AH; break;
+			case 32882 : dev_fname = QLOGIC_AH; break;
+			case 32883 : dev_fname = QLOGIC_AH; break;
+			case 32912 : dev_fname = QLOGIC_AH; break;
 			default	   : dev_fname = UNKNOWN;
 		}
 	}
@@ -1355,6 +1415,8 @@ int parser(struct perftest_parameters *user_param,char *argv[], int argc)
 	static int mr_per_qp_flag = 0;
 	static int dlid_flag = 0;
 	static int tclass_flag = 0;
+	static int disable_fcs_flag = 0;
+	static int flows_flag = 0;
 
 	init_perftest_params(user_param);
 
@@ -1446,6 +1508,10 @@ int parser(struct perftest_parameters *user_param,char *argv[], int argc)
 			{ .name = "mr_per_qp",		.has_arg = 0, .flag = &mr_per_qp_flag, .val = 1},
 			{ .name = "dlid",		.has_arg = 1, .flag = &dlid_flag, .val = 1},
 			{ .name = "tclass",		.has_arg = 1, .flag = &tclass_flag, .val = 1},
+			#ifdef HAVE_SCATTER_FCS
+			{ .name = "disable_fcs",	.has_arg = 0, .flag = &disable_fcs_flag, .val = 1},
+			#endif
+			{ .name = "flows",		.has_arg = 1, .flag = &flows_flag, .val = 1},
 			{ 0 }
 		};
 		c = getopt_long(argc,argv,"w:y:p:d:i:m:s:n:t:u:S:x:c:q:I:o:M:r:Q:A:l:D:f:B:T:E:J:j:K:k:aFegzRvhbNVCHUOZP",long_options,NULL);
@@ -1471,7 +1537,7 @@ int parser(struct perftest_parameters *user_param,char *argv[], int argc)
 				  if (user_param->connection_type == RawEth)
 					  user_param->raw_qos = 1;
 				  break;
-			case 'x': CHECK_VALUE(user_param->gid_index,uint8_t,MIN_GID_IX,MAX_GID_IX,"Gid index"); 
+			case 'x': CHECK_VALUE(user_param->gid_index, uint8_t, MIN_GID_IX, MAX_GID_IX, "Gid index");
 				  user_param->use_gid_user = 1; break;
 			case 'c': change_conn_type(&user_param->connection_type,user_param->verb,optarg); break;
 			case 'q':
@@ -1539,7 +1605,7 @@ int parser(struct perftest_parameters *user_param,char *argv[], int argc)
 			case 'V': printf("Version: %s\n",user_param->version); return VERSION_EXIT;
 			case 'h': usage(argv[0], user_param->verb, user_param->tst, user_param->connection_type);
 				  if(user_param->connection_type == RawEth) {
-					  usage_raw_ethernet();
+					  usage_raw_ethernet(user_param->tst);
 				  }
 				  return HELP_EXIT;
 			case 'z': user_param->use_rdma_cm = ON; break;
@@ -1762,6 +1828,15 @@ int parser(struct perftest_parameters *user_param,char *argv[], int argc)
 					  user_param->traffic_class = (uint16_t)strtol(optarg, NULL, 0);
 					  tclass_flag = 0;
 				  }
+				  if (flows_flag) {
+					user_param->flows = (uint16_t)strtol(optarg, NULL, 0);
+					if (user_param->flows <= 0) {
+						fprintf(stderr, "Invalid flows value. Please set a positive number\n");
+						return FAILURE;
+					}
+
+					flows_flag = 0;
+				  }
 				  break;
 
 			default:
@@ -1769,7 +1844,7 @@ int parser(struct perftest_parameters *user_param,char *argv[], int argc)
 				  fprintf(stderr," Please check command line and run again.\n\n");
 				  usage(argv[0], user_param->verb, user_param->tst, user_param->connection_type);
 				  if(user_param->connection_type == RawEth) {
-					  usage_raw_ethernet();
+					  usage_raw_ethernet(user_param->tst);
 				  }
 				  return 1;
 		}
@@ -1841,6 +1916,10 @@ int parser(struct perftest_parameters *user_param,char *argv[], int argc)
 		user_param->mr_per_qp = 1;
 	}
 
+	if (disable_fcs_flag) {
+		user_param->disable_fcs = 1;
+	}
+
 	if (optind == argc - 1) {
 		GET_STRING(user_param->servername,strdupa(argv[optind]));
 
diff --git a/src/perftest_parameters.h b/src/perftest_parameters.h
index e9d28fa..07c539c 100755
--- a/src/perftest_parameters.h
+++ b/src/perftest_parameters.h
@@ -121,6 +121,7 @@
 #define DEF_RETRY_COUNT (7)
 #define DEF_CACHE_LINE_SIZE (64)
 #define DEF_PAGE_SIZE (4096)
+#define DEF_FLOWS (1)
 
 /* Optimal Values for Inline */
 #define DEF_INLINE_WRITE (220)
@@ -261,7 +262,9 @@ enum ctx_device {
 	CONNECTX3_PRO		= 8,
 	SKYHAWK			= 9,
 	CONNECTX4		= 10,
-	CONNECTX4LX		= 11
+	CONNECTX4LX		= 11,
+	QLOGIC_E4		= 12,
+	QLOGIC_AH		= 13
 };
 
 /* Units for rate limiter */
@@ -418,6 +421,8 @@ struct perftest_parameters {
 	int				mr_per_qp;
 	uint16_t			dlid;
 	uint8_t				traffic_class;
+	int				disable_fcs;
+	int				flows;
 };
 
 struct report_options {
diff --git a/src/perftest_resources.c b/src/perftest_resources.c
index 2c42700..6915a66 100755
--- a/src/perftest_resources.c
+++ b/src/perftest_resources.c
@@ -705,7 +705,7 @@ void alloc_ctx(struct pingpong_context *ctx,struct perftest_parameters *user_par
 	ctx->size = user_param->size;
 
 	num_of_qps_factor = (user_param->mr_per_qp) ? 1 : user_param->num_of_qps;
-	ctx->buff_size = BUFF_SIZE(ctx->size, ctx->cycle_buffer) * 2 * num_of_qps_factor;
+	ctx->buff_size = BUFF_SIZE(ctx->size, ctx->cycle_buffer) * 2 * num_of_qps_factor * user_param->flows;
 
 	user_param->buff_size = ctx->buff_size;
 	if (user_param->connection_type == UD)
@@ -1520,6 +1520,7 @@ int create_qp_main(struct pingpong_context *ctx,
 	query |= user_param->masked_atomics;
 	query |= user_param->verb_type != NORMAL_INTF;
 	query |= user_param->use_res_domain;
+	query |= user_param->use_exp;
 
 	if (query == 1)
 		user_param->is_exp_qp = 1;
@@ -1534,7 +1535,25 @@ int create_qp_main(struct pingpong_context *ctx,
 	return ret;
 }
 
+#ifdef HAVE_VERBS_EXP
+#ifdef HAVE_SCATTER_FCS
+static int check_scatter_fcs_support(struct pingpong_context *ctx,
+		struct perftest_parameters *user_param)
+{
+	struct ibv_exp_device_attr dev_attr;
 
+	memset(&dev_attr, 0, sizeof(dev_attr));
+	dev_attr.comp_mask = IBV_EXP_DEVICE_ATTR_EXP_CAP_FLAGS;
+	dev_attr.exp_device_cap_flags = IBV_EXP_DEVICE_SCATTER_FCS;
+	if (ibv_exp_query_device(ctx->context, &dev_attr)) {
+		fprintf(stderr, "ibv_exp_query_device failed\n");
+		return 1;
+	}
+
+	return MASK_IS_SET(IBV_EXP_DEVICE_SCATTER_FCS, dev_attr.exp_device_cap_flags);
+}
+#endif
+#endif
 
 #ifdef HAVE_VERBS_EXP
 struct ibv_qp* ctx_exp_qp_create(struct pingpong_context *ctx,
@@ -1614,6 +1633,14 @@ struct ibv_qp* ctx_exp_qp_create(struct pingpong_context *ctx,
 			  return NULL;
 	}
 
+	#ifdef HAVE_SCATTER_FCS
+	if (!user_param->disable_fcs && (user_param->connection_type == RawEth)) {
+		if(check_scatter_fcs_support(ctx, user_param)) {
+			attr.exp_create_flags |= IBV_EXP_QP_CREATE_SCATTER_FCS;
+		}
+	}
+	#endif
+
 	qp = ibv_exp_create_qp(ctx->context, &attr);
 	if (!qp)
 		return NULL;
@@ -2772,6 +2799,10 @@ int run_iter_bw(struct pingpong_context *ctx,struct perftest_parameters *user_pa
 	int			err = 0;
 	#ifdef HAVE_VERBS_EXP
 	struct ibv_exp_send_wr 	*bad_exp_wr = NULL;
+	#ifdef HAVE_ACCL_VERBS
+	int pl_index;
+	struct ibv_sge		*sg_l;
+	#endif
 	#endif
 	struct ibv_send_wr 	*bad_wr = NULL;
 	struct ibv_wc 	   	*wc = NULL;
@@ -2788,8 +2819,6 @@ int run_iter_bw(struct pingpong_context *ctx,struct perftest_parameters *user_pa
 	int 			cpu_mhz = 0;
 	int 			return_value = 0;
 	int			wc_id;
-	int pl_index;
-	struct ibv_sge		*sg_l;
 
 	ALLOCATE(wc ,struct ibv_wc ,CTX_POLL_BATCH);
 
@@ -4077,7 +4106,11 @@ int run_iter_lat_send(struct pingpong_context *ctx,struct perftest_parameters *u
 					user_param->rx_depth/user_param->num_of_qps : user_param->rx_depth;
 	int 			cpu_mhz = get_cpu_mhz(user_param->cpu_freq_f);
 	int			total_gap_cycles = user_param->latency_gap * cpu_mhz;
+	int			send_flows_index = 0;
+	int			recv_flows_index = 0;
 	cycles_t 		end_cycle, start_gap=0;
+	uintptr_t		primary_send_addr = ctx->sge_list[0].addr;
+	uintptr_t		primary_recv_addr = ctx->recv_sge_list[0].addr;
 
 	if (user_param->connection_type != RawEth) {
 		#ifdef HAVE_VERBS_EXP
@@ -4136,6 +4169,7 @@ int run_iter_lat_send(struct pingpong_context *ctx,struct perftest_parameters *u
 						NOTIFY_COMP_ERROR_RECV(wc,rcnt);
 						return 1;
 					}
+
 					rcnt++;
 
 					if (user_param->test_type==DURATION && user_param->state == SAMPLE_STATE)
@@ -4146,7 +4180,6 @@ int run_iter_lat_send(struct pingpong_context *ctx,struct perftest_parameters *u
 					 * post that you received a packet.
 					 */
 					if (user_param->test_type==DURATION || (rcnt + size_per_qp  <= user_param->iters)) {
-
 						if (user_param->use_srq) {
 
 							if (ibv_post_srq_recv(ctx->srq,&ctx->rwr[wc.wr_id],&bad_wr_recv)) {
@@ -4155,12 +4188,20 @@ int run_iter_lat_send(struct pingpong_context *ctx,struct perftest_parameters *u
 							}
 
 						} else {
-
 							if (ibv_post_recv(ctx->qp[wc.wr_id],&ctx->rwr[wc.wr_id],&bad_wr_recv)) {
 								fprintf(stderr, "Couldn't post recv: rcnt=%lu\n",rcnt);
 								return 15;
 							}
 						}
+
+						if (user_param->flows != DEF_FLOWS) {
+							if (++recv_flows_index == user_param->flows) {
+								recv_flows_index = 0;
+								ctx->recv_sge_list[0].addr = primary_recv_addr;
+							} else {
+								ctx->recv_sge_list[0].addr += INC(user_param->size, ctx->cache_line_size);
+							}
+						}
 					}
 				} else if (ne < 0) {
 					fprintf(stderr, "poll CQ failed %d\n", ne);
@@ -4212,6 +4253,15 @@ int run_iter_lat_send(struct pingpong_context *ctx,struct perftest_parameters *u
 				return 1;
 			}
 
+			if (user_param->flows != DEF_FLOWS) {
+				if (++send_flows_index == user_param->flows) {
+					send_flows_index = 0;
+					ctx->sge_list[0].addr = primary_send_addr;
+				} else {
+					ctx->sge_list[0].addr += INC(user_param->size, ctx->cache_line_size);
+				}
+			}
+
 			if (poll == 1) {
 
 				struct ibv_wc s_wc;
diff --git a/src/perftest_resources.h b/src/perftest_resources.h
index c5b6413..d05631f 100755
--- a/src/perftest_resources.h
+++ b/src/perftest_resources.h
@@ -614,38 +614,6 @@ static __inline int ctx_notify_events(struct ibv_comp_channel *channel)
 	return 0;
 }
 
-
-
-/* gen_udp_header .
-
- * Description :create UDP header on buffer
- *
- * Parameters :
- * 		UDP_header_buffer - Pointer to output
- *		sPort - source UDP port of the packet
- *		dPort -destination UDP port of the packet
- *		sadder -source IP address of the packet(using for UPD checksum)(network order)
- *		dadder - source IP address of the packet(using for UPD checksum)(network order)
- *		sizePkt - size of the packet
- */
-
-void gen_udp_header(void* UDP_header_buffer,int* sPort ,int* dPort,uint32_t saddr,uint32_t daddr,int sizePkt);
-/* increase_rem_addr.
- *
- * Description :
- *	Increases the remote address in RDMA verbs by INC ,
- *  (at least 64 CACHE_LINE size) , so that the system will be a able to cahce the data
- *  in an orginzed way.
- *
- *  Parameters :
- *		wr - The send wqe.
- *		size - size of the message to send.
- *		scnt - The ammount of post_send or post_receive we called.
- *		prim_addr - The address of the original buffer.
- *
- * Return Value : SUCCESS, FAILURE.
- */
-
 #if defined(HAVE_VERBS_EXP)
 static __inline void increase_exp_rem_addr(struct ibv_exp_send_wr *wr,int size,uint64_t scnt,uint64_t prim_addr,VerbType verb, int cache_line_size, int cycle_buffer)
 {
diff --git a/src/raw_ethernet_resources.c b/src/raw_ethernet_resources.c
index 1d92115..13936b4 100755
--- a/src/raw_ethernet_resources.c
+++ b/src/raw_ethernet_resources.c
@@ -39,6 +39,7 @@
 #include <string.h>
 #include <signal.h>
 #include <getopt.h>
+#include <unistd.h>
 #include </usr/include/netinet/ip.h>
 #include <poll.h>
 #include "perftest_parameters.h"
@@ -52,8 +53,10 @@ struct perftest_parameters* duration_param;
 int check_flow_steering_support(char *dev_name)
 {
 	char* file_name = "/sys/module/mlx4_core/parameters/log_num_mgm_entry_size";
+	char* openibd_path = "/etc/init.d/openibd";
 	FILE *fp;
 	char line[4];
+	int is_flow_steering_supported = 0;
 
 	if (strstr(dev_name, "mlx5") != NULL)
 		return 0;
@@ -65,13 +68,15 @@ int check_flow_steering_support(char *dev_name)
 	if (val >= 0) {
 		fprintf(stderr,"flow steering is not supported.\n");
 		fprintf(stderr," please run: echo options mlx4_core log_num_mgm_entry_size=-1 >> /etc/modprobe.d/mlnx.conf\n");
-		fprintf(stderr," and restart the driver: /etc/init.d/openibd restart \n");
-		fclose(fp);
-		return 1;
+		if (access(openibd_path, F_OK) != -1)
+			fprintf(stderr," and restart the driver: %s restart \n", openibd_path);
+		else
+			fprintf(stderr," and restart the driver: modprobe -r mlx4_core; modprobe mlx4_core \n");
+		is_flow_steering_supported =  1;
 	}
 
-	fclose(fp); 
-	return 0;
+	fclose(fp);
+	return is_flow_steering_supported;
 }
 
 /******************************************************************************
@@ -105,7 +110,8 @@ static uint16_t ip_checksum	(void * buf,size_t 	  hdr_len)
 /******************************************************************************
  *
  ******************************************************************************/
-void gen_ip_header(void* ip_header_buffer,uint32_t* saddr ,uint32_t* daddr , uint8_t protocol,int sizePkt, int tos)
+void gen_ip_header(void* ip_header_buffer, uint32_t* saddr, uint32_t* daddr,
+		   uint8_t protocol, int pkt_size, int tos, int flows_offset)
 {
 	struct IP_V4_header ip_header;
 
@@ -114,7 +120,7 @@ void gen_ip_header(void* ip_header_buffer,uint32_t* saddr ,uint32_t* daddr , uin
 	ip_header.version = 4;
 	ip_header.ihl = 5;
 	ip_header.tos = (tos == DEF_TOS)? 0 : tos;
-	ip_header.tot_len = htons(sizePkt);
+	ip_header.tot_len = htons(pkt_size);
 	ip_header.id = htons(0);
 	ip_header.frag_off = htons(0);
 	ip_header.ttl = DEFAULT_TTL;
@@ -129,15 +135,15 @@ void gen_ip_header(void* ip_header_buffer,uint32_t* saddr ,uint32_t* daddr , uin
 /******************************************************************************
  *
  ******************************************************************************/
-void gen_udp_header(void* UDP_header_buffer,int* sPort ,int* dPort,uint32_t saddr,uint32_t daddr,int sizePkt)
+void gen_udp_header(void* UDP_header_buffer, int src_port, int dst_port, int pkt_size)
 {
 	struct UDP_header udp_header;
 
 	memset(&udp_header,0,sizeof(struct UDP_header));
 
-	udp_header.uh_sport = htons(*sPort);
-	udp_header.uh_dport = htons(*dPort);
-	udp_header.uh_ulen = htons(sizePkt - sizeof(struct IP_V4_header));
+	udp_header.uh_sport = htons(src_port);
+	udp_header.uh_dport = htons(dst_port);
+	udp_header.uh_ulen = htons(pkt_size - sizeof(struct IP_V4_header));
 	udp_header.uh_sum = 0;
 
 	memcpy(UDP_header_buffer, &udp_header, sizeof(struct UDP_header));
@@ -147,14 +153,14 @@ void gen_udp_header(void* UDP_header_buffer,int* sPort ,int* dPort,uint32_t sadd
 /******************************************************************************
  *
  ******************************************************************************/
-void gen_tcp_header(void* TCP_header_buffer,int* sPort ,int* dPort)
+void gen_tcp_header(void* TCP_header_buffer,int src_port ,int dst_port)
 {
 	struct TCP_header tcp_header;
 
 	memset(&tcp_header,0,sizeof(struct TCP_header));
 
-	tcp_header.th_sport = htons(*sPort);
-	tcp_header.th_dport = htons(*dPort);
+	tcp_header.th_sport = htons(src_port);
+	tcp_header.th_dport = htons(dst_port);
 	tcp_header.th_doff = 5;
 	tcp_header.th_window = htons(8192);
 	memcpy(TCP_header_buffer, &tcp_header, sizeof(struct TCP_header));
@@ -285,6 +291,7 @@ void print_ip_header(struct IP_V4_header* ip_header)
 {
 	char str_ip_s[INET_ADDRSTRLEN];
 	char str_ip_d[INET_ADDRSTRLEN];
+
 	if (NULL == ip_header) {
 		fprintf(stderr, "IP_V4_header pointer is Null\n");
 		return;
@@ -381,31 +388,39 @@ void print_pkt(void* pkt,struct perftest_parameters *user_param)
  *build single packet on ctx buffer
  ******************************************************************************/
 void build_pkt_on_buffer(struct ETH_header* eth_header,
-		struct raw_ethernet_info *my_dest_info,
-		struct raw_ethernet_info *rem_dest_info,
-		struct perftest_parameters *user_param,
-		uint16_t eth_type,
-		uint16_t ip_next_protocol,
-		int print_flag,
-		int sizePkt)
+			 struct raw_ethernet_info *my_dest_info,
+			 struct raw_ethernet_info *rem_dest_info,
+			 struct perftest_parameters *user_param,
+			 uint16_t eth_type, uint16_t ip_next_protocol,
+			 int print_flag, int pkt_size, int flows_offset)
 {
 	void* header_buff = NULL;
-	gen_eth_header(eth_header,my_dest_info->mac,rem_dest_info->mac,eth_type);
-	if(user_param->is_client_ip || user_param->is_server_ip) {
+	int have_ip_header = user_param->is_client_ip || user_param->is_server_ip;
+	int is_udp_or_tcp = user_param->is_client_port && user_param->is_server_port;
+
+	gen_eth_header(eth_header, my_dest_info->mac, rem_dest_info->mac, eth_type);
+
+	if(have_ip_header) {
+		int offset = is_udp_or_tcp ? 0 : flows_offset;
+
 		header_buff = (void*)eth_header + sizeof(struct ETH_header);
-		gen_ip_header(header_buff,&my_dest_info->ip,&rem_dest_info->ip,ip_next_protocol,sizePkt, user_param->tos);
+		gen_ip_header(header_buff, &my_dest_info->ip, &rem_dest_info->ip,
+			      ip_next_protocol, pkt_size, user_param->tos, offset);
 	}
-	if(user_param->is_client_port && user_param->is_server_port) {
+
+	if(is_udp_or_tcp) {
 		header_buff = header_buff + sizeof(struct IP_V4_header);
 		if (user_param->tcp)
-			gen_tcp_header(header_buff,&my_dest_info->port,&rem_dest_info->port);
+			gen_tcp_header(header_buff, my_dest_info->port + flows_offset,
+				       rem_dest_info->port + flows_offset);
 		else
-			gen_udp_header(header_buff,&my_dest_info->port,&rem_dest_info->port,my_dest_info->ip,rem_dest_info->ip,sizePkt);
+			gen_udp_header(header_buff, my_dest_info->port + flows_offset,
+				       rem_dest_info->port+ flows_offset, pkt_size);
 
 	}
 
 	if(print_flag == PRINT_ON) {
-		print_pkt((void*)eth_header,user_param);
+		print_pkt((void*)eth_header, user_param);
 	}
 }
 
@@ -420,6 +435,7 @@ void create_raw_eth_pkt( struct perftest_parameters *user_param,
 		struct raw_ethernet_info	*rem_dest_info)
 {
 	int offset = 0;
+	int i;
 	struct ETH_header* eth_header;
 	uint16_t ip_next_protocol = 0;
 	uint16_t eth_type = user_param->is_ethertype ? user_param->ethertype :
@@ -432,19 +448,30 @@ void create_raw_eth_pkt( struct perftest_parameters *user_param,
 	eth_header = (void*)ctx->buf[0];
 
 	/* build single packet on ctx buffer */
-	build_pkt_on_buffer(eth_header,my_dest_info,rem_dest_info,user_param,eth_type,ip_next_protocol,PRINT_ON,ctx->size-RAWETH_ADDITION);
+	build_pkt_on_buffer(eth_header, my_dest_info, rem_dest_info, user_param,
+			    eth_type, ip_next_protocol, PRINT_ON,
+			    ctx->size - RAWETH_ADDITION, 0);
 
 	if (user_param->tst == BW) {
 		/* fill ctx buffer with same packets */
 		if (ctx->size <= (ctx->cycle_buffer / 2)) {
 			while (offset < ctx->cycle_buffer-INC(ctx->size,ctx->cache_line_size)) {
-				offset += INC(ctx->size,ctx->cache_line_size);
-				eth_header = (void*)ctx->buf[0]+offset;
-				build_pkt_on_buffer(eth_header,my_dest_info,rem_dest_info,
-						user_param,eth_type,ip_next_protocol,
-						PRINT_OFF,ctx->size-RAWETH_ADDITION);
+				offset += INC(ctx->size, ctx->cache_line_size);
+				eth_header = (void*)ctx->buf[0] + offset;
+				build_pkt_on_buffer(eth_header, my_dest_info, rem_dest_info,
+						    user_param, eth_type, ip_next_protocol,
+						    PRINT_OFF ,ctx->size - RAWETH_ADDITION, 0);
 			}
 		}
+	} else if (user_param->tst == LAT && user_param->flows != DEF_FLOWS) {
+		/* fill ctx buffer with different packets according to flows_offset */
+		for (i = 1; i < user_param->flows; i++) {
+			offset += INC(ctx->size, ctx->cache_line_size);
+			eth_header = (void*)ctx->buf[0] + offset;
+			build_pkt_on_buffer(eth_header, my_dest_info, rem_dest_info,
+					    user_param, eth_type, ip_next_protocol,
+					    PRINT_ON ,ctx->size - RAWETH_ADDITION, i);
+		}
 	}
 
 	DEBUG_LOG(TRACE,"<<<<<<%s",__FUNCTION__);
@@ -474,10 +501,7 @@ int calc_flow_rules_size(int is_ip_header,int is_udp_header)
 	return tot_size;
 }
 
-/******************************************************************************
- *send_set_up_connection - init raw_ethernet_info and ibv_flow_spec to user args
- ******************************************************************************/
-int send_set_up_connection(
+static int set_up_flow_rules(
 		#ifdef HAVE_RAW_ETH_EXP
 		struct ibv_exp_flow_attr **flow_rules,
 		#else
@@ -485,132 +509,152 @@ int send_set_up_connection(
 		#endif
 		struct pingpong_context *ctx,
 		struct perftest_parameters *user_param,
-		struct raw_ethernet_info* my_dest_info,
-		struct raw_ethernet_info* rem_dest_info)
+		int flows_offset)
 {
 
-	union ibv_gid temp_gid;
+	#ifdef HAVE_RAW_ETH_EXP
+	struct ibv_exp_flow_spec* spec_info;
+	struct ibv_exp_flow_attr* attr_info;
+	#else
+	struct ibv_flow_spec* spec_info;
+	struct ibv_flow_attr* attr_info;
+	#endif
 
-	if (user_param->gid_index != -1) {
-		if (ibv_query_gid(ctx->context,user_param->ib_port,user_param->gid_index,&temp_gid)) {
-			DEBUG_LOG(TRACE,"<<<<<<%s",__FUNCTION__);
-			return FAILURE;
-		}
-	}
+	void* header_buff;
+	int flow_rules_size;
+	int is_ip = user_param->is_server_ip || user_param->is_client_ip;
+	int is_port = user_param->is_server_port || user_param->is_client_port;
 
-	if (user_param->machine == SERVER || user_param->duplex) {
+	flow_rules_size = calc_flow_rules_size(is_ip, is_port);
 
-		#ifdef HAVE_RAW_ETH_EXP
-		struct ibv_exp_flow_spec* spec_info;
-		struct ibv_exp_flow_attr* attr_info;
-		#else
-		struct ibv_flow_spec* spec_info;
-		struct ibv_flow_attr* attr_info;
-		#endif
+	ALLOCATE(header_buff, uint8_t, flow_rules_size);
 
-		void* header_buff;
-		int flow_rules_size;
-		int is_ip = user_param->is_server_ip || user_param->is_client_ip;
-		int is_port = user_param->is_server_port || user_param->is_client_port;
+	memset(header_buff, 0, flow_rules_size);
 
-		flow_rules_size = calc_flow_rules_size(is_ip,is_port);
+	#ifdef HAVE_RAW_ETH_EXP
+	*flow_rules = (struct ibv_exp_flow_attr*)header_buff;
+	attr_info = (struct ibv_exp_flow_attr*)header_buff;
+	#else
+	*flow_rules = (struct ibv_flow_attr*)header_buff;
+	attr_info = (struct ibv_flow_attr*)header_buff;
+	#endif
 
-		ALLOCATE(header_buff,uint8_t,flow_rules_size);
+	attr_info->size = flow_rules_size;
+	attr_info->priority = 0;
+	attr_info->num_of_specs = 1 + is_ip + is_port;
+	attr_info->port = user_param->ib_port;
+	attr_info->flags = 0;
 
-		memset(header_buff, 0,flow_rules_size);
+	#ifdef HAVE_RAW_ETH_EXP
+	attr_info->type = IBV_EXP_FLOW_ATTR_NORMAL;
+	header_buff = header_buff + sizeof(struct ibv_exp_flow_attr);
+	spec_info = (struct ibv_exp_flow_spec*)header_buff;
+	spec_info->eth.type = IBV_EXP_FLOW_SPEC_ETH;
+	spec_info->eth.size = sizeof(struct ibv_exp_flow_spec_eth);
+	#else
+	attr_info->type = IBV_FLOW_ATTR_NORMAL;
+	header_buff = header_buff + sizeof(struct ibv_flow_attr);
+	spec_info = (struct ibv_flow_spec*)header_buff;
+	spec_info->eth.type = IBV_FLOW_SPEC_ETH;
+	spec_info->eth.size = sizeof(struct ibv_flow_spec_eth);
+	#endif
 
-		#ifdef HAVE_RAW_ETH_EXP
-		*flow_rules = (struct ibv_exp_flow_attr*)header_buff;
-		attr_info = (struct ibv_exp_flow_attr*)header_buff;
-		#else
-		*flow_rules = (struct ibv_flow_attr*)header_buff;
-		attr_info = (struct ibv_flow_attr*)header_buff;
-		#endif
+	spec_info->eth.val.ether_type = 0;
 
-		attr_info->size = flow_rules_size;
-		attr_info->priority = 0;
-		attr_info->num_of_specs = 1 + is_ip + is_port;
-		attr_info->port = user_param->ib_port;
-		attr_info->flags = 0;
+	mac_from_user(spec_info->eth.val.dst_mac, &(user_param->source_mac[0]), sizeof(user_param->source_mac));
 
+	memset(spec_info->eth.mask.dst_mac, 0xFF,sizeof(spec_info->eth.mask.src_mac));
+	if(user_param->is_server_ip || user_param->is_client_ip) {
 		#ifdef HAVE_RAW_ETH_EXP
-		attr_info->type = IBV_EXP_FLOW_ATTR_NORMAL;
-		header_buff = header_buff + sizeof(struct ibv_exp_flow_attr);
+		header_buff = header_buff + sizeof(struct ibv_exp_flow_spec_eth);
 		spec_info = (struct ibv_exp_flow_spec*)header_buff;
-		spec_info->eth.type = IBV_EXP_FLOW_SPEC_ETH;
-		spec_info->eth.size = sizeof(struct ibv_exp_flow_spec_eth);
+		spec_info->ipv4.type = IBV_EXP_FLOW_SPEC_IPV4;
+		spec_info->ipv4.size = sizeof(struct ibv_exp_flow_spec_ipv4);
 		#else
-		attr_info->type = IBV_FLOW_ATTR_NORMAL;
-		header_buff = header_buff + sizeof(struct ibv_flow_attr);
+		header_buff = header_buff + sizeof(struct ibv_flow_spec_eth);
 		spec_info = (struct ibv_flow_spec*)header_buff;
-		spec_info->eth.type = IBV_FLOW_SPEC_ETH;
-		spec_info->eth.size = sizeof(struct ibv_flow_spec_eth);
+		spec_info->ipv4.type = IBV_FLOW_SPEC_IPV4;
+		spec_info->ipv4.size = sizeof(struct ibv_flow_spec_ipv4);
 		#endif
 
-		spec_info->eth.val.ether_type = 0;
+		if(user_param->machine == SERVER) {
 
-		mac_from_user(spec_info->eth.val.dst_mac , &(user_param->source_mac[0]) , sizeof(user_param->source_mac));
+			spec_info->ipv4.val.dst_ip = user_param->server_ip;
+			spec_info->ipv4.val.src_ip = user_param->client_ip;
 
-		memset(spec_info->eth.mask.dst_mac, 0xFF,sizeof(spec_info->eth.mask.src_mac));
-		if(user_param->is_server_ip || user_param->is_client_ip) {
-			#ifdef HAVE_RAW_ETH_EXP
-			header_buff = header_buff + sizeof(struct ibv_exp_flow_spec_eth);
-			spec_info = (struct ibv_exp_flow_spec*)header_buff;
-			spec_info->ipv4.type = IBV_EXP_FLOW_SPEC_IPV4;
-			spec_info->ipv4.size = sizeof(struct ibv_exp_flow_spec_ipv4);
-			#else
-			header_buff = header_buff + sizeof(struct ibv_flow_spec_eth);
-			spec_info = (struct ibv_flow_spec*)header_buff;
-			spec_info->ipv4.type = IBV_FLOW_SPEC_IPV4;
-			spec_info->ipv4.size = sizeof(struct ibv_flow_spec_ipv4);
-			#endif
+		} else{
+
+			spec_info->ipv4.val.dst_ip = user_param->client_ip;
+			spec_info->ipv4.val.src_ip = user_param->server_ip;
+		}
 
-			if(user_param->machine == SERVER) {
+		memset((void*)&spec_info->ipv4.mask.dst_ip, 0xFF,sizeof(spec_info->ipv4.mask.dst_ip));
+		memset((void*)&spec_info->ipv4.mask.src_ip, 0xFF,sizeof(spec_info->ipv4.mask.src_ip));
+	}
 
-				spec_info->ipv4.val.dst_ip = user_param->server_ip;
-				spec_info->ipv4.val.src_ip = user_param->client_ip;
+	if(user_param->is_server_port && user_param->is_client_port) {
+		#ifdef HAVE_RAW_ETH_EXP
+		header_buff = header_buff + sizeof(struct ibv_exp_flow_spec_ipv4);
+		spec_info = (struct ibv_exp_flow_spec*)header_buff;
+		spec_info->tcp_udp.type = (user_param->tcp) ? IBV_EXP_FLOW_SPEC_TCP : IBV_EXP_FLOW_SPEC_UDP;
+		spec_info->tcp_udp.size = sizeof(struct ibv_exp_flow_spec_tcp_udp);
+		#else
+		header_buff = header_buff + sizeof(struct ibv_flow_spec_ipv4);
+		spec_info = (struct ibv_flow_spec*)header_buff;
+		spec_info->tcp_udp.type = (user_param->tcp) ? IBV_FLOW_SPEC_TCP : IBV_FLOW_SPEC_UDP;
+		spec_info->tcp_udp.size = sizeof(struct ibv_flow_spec_tcp_udp);
+		#endif
 
-			} else{
+		if(user_param->machine == SERVER) {
 
-				spec_info->ipv4.val.dst_ip = user_param->client_ip;
-				spec_info->ipv4.val.src_ip = user_param->server_ip;
-			}
+			spec_info->tcp_udp.val.dst_port = htons(user_param->server_port);
+			spec_info->tcp_udp.val.src_port = htons(user_param->client_port);
 
-			memset((void*)&spec_info->ipv4.mask.dst_ip, 0xFF,sizeof(spec_info->ipv4.mask.dst_ip));
-			memset((void*)&spec_info->ipv4.mask.src_ip, 0xFF,sizeof(spec_info->ipv4.mask.src_ip));
+		} else {
+			spec_info->tcp_udp.val.dst_port = htons(user_param->client_port + flows_offset);
+			spec_info->tcp_udp.val.src_port = htons(user_param->server_port + flows_offset);
 		}
 
-		if(user_param->is_server_port && user_param->is_client_port) {
-			#ifdef HAVE_RAW_ETH_EXP
-			header_buff = header_buff + sizeof(struct ibv_exp_flow_spec_ipv4);
-			spec_info = (struct ibv_exp_flow_spec*)header_buff;
-			spec_info->tcp_udp.type = (user_param->tcp) ? IBV_EXP_FLOW_SPEC_TCP : IBV_EXP_FLOW_SPEC_UDP;
-			spec_info->tcp_udp.size = sizeof(struct ibv_exp_flow_spec_tcp_udp);
-			#else
-			header_buff = header_buff + sizeof(struct ibv_flow_spec_ipv4);
-			spec_info = (struct ibv_flow_spec*)header_buff;
-			spec_info->tcp_udp.type = (user_param->tcp) ? IBV_FLOW_SPEC_TCP : IBV_FLOW_SPEC_UDP;
-			spec_info->tcp_udp.size = sizeof(struct ibv_flow_spec_tcp_udp);
-			#endif
-			if(user_param->machine == SERVER) {
+		memset((void*)&spec_info->tcp_udp.mask.dst_port, 0xFF,sizeof(spec_info->ipv4.mask.dst_ip));
+		memset((void*)&spec_info->tcp_udp.mask.src_port, 0xFF,sizeof(spec_info->ipv4.mask.src_ip));
+	}
 
-				spec_info->tcp_udp.val.dst_port = htons(user_param->server_port);
-				spec_info->tcp_udp.val.src_port = htons(user_param->client_port);
+	if (user_param->is_ethertype) {
+		spec_info->eth.val.ether_type = htons(user_param->ethertype);
+		spec_info->eth.mask.ether_type = 0xffff;
+	}
 
-			} else{
-				spec_info->tcp_udp.val.dst_port = htons(user_param->client_port);
-				spec_info->tcp_udp.val.src_port = htons(user_param->server_port);
-			}
+	return 0;
+}
 
-			memset((void*)&spec_info->tcp_udp.mask.dst_port, 0xFF,sizeof(spec_info->ipv4.mask.dst_ip));
-			memset((void*)&spec_info->tcp_udp.mask.src_port, 0xFF,sizeof(spec_info->ipv4.mask.src_ip));
-		}
+/******************************************************************************
+ *send_set_up_connection - init raw_ethernet_info and ibv_flow_spec to user args
+ ******************************************************************************/
+int send_set_up_connection(
+		#ifdef HAVE_RAW_ETH_EXP
+		struct ibv_exp_flow_attr **flow_rules,
+		#else
+		struct ibv_flow_attr **flow_rules,
+		#endif
+		struct pingpong_context *ctx,
+		struct perftest_parameters *user_param,
+		struct raw_ethernet_info* my_dest_info,
+		struct raw_ethernet_info* rem_dest_info)
+{
 
-		if (user_param->is_ethertype) {
-			spec_info->eth.val.ether_type = htons(user_param->ethertype);
-			spec_info->eth.mask.ether_type = 0xffff;
+	union ibv_gid temp_gid;
+	int i;
+
+	if (user_param->gid_index != -1) {
+		if (ibv_query_gid(ctx->context,user_param->ib_port,user_param->gid_index,&temp_gid)) {
+			DEBUG_LOG(TRACE,"<<<<<<%s",__FUNCTION__);
+			return FAILURE;
 		}
+	}
 
+	if (user_param->machine == SERVER || user_param->duplex) {
+		for (i = 0; i < user_param->flows; i++)
+			set_up_flow_rules(&flow_rules[i], ctx, user_param, i);
 	}
 
 	if (user_param->machine == CLIENT || user_param->duplex) {
@@ -652,7 +696,8 @@ int run_iter_fw(struct pingpong_context *ctx,struct perftest_parameters *user_pa
 	uint64_t		totscnt    = 0;
 	uint64_t		totccnt    = 0;
 	uint64_t		totrcnt    = 0;
-	int			i,index      = 0;
+	int			i;
+	int			index      = 0;
 	int			ne = 0;
 	int			err = 0;
 	uint64_t		*rcnt_for_qp = NULL;
@@ -670,22 +715,24 @@ int run_iter_fw(struct pingpong_context *ctx,struct perftest_parameters *user_pa
 	int			return_value = 0;
 	int			wc_id;
 
-	ALLOCATE(wc,struct ibv_wc,CTX_POLL_BATCH);
-	ALLOCATE(wc_tx,struct ibv_wc,CTX_POLL_BATCH);
+	ALLOCATE(wc, struct ibv_wc, CTX_POLL_BATCH);
+	ALLOCATE(wc_tx, struct ibv_wc, CTX_POLL_BATCH);
 	ALLOCATE(rcnt_for_qp,uint64_t,user_param->num_of_qps);
 
-	memset(rcnt_for_qp,0,sizeof(uint64_t)*user_param->num_of_qps);
+	memset(wc, 0, sizeof(struct ibv_wc));
+	memset(wc_tx, 0, sizeof(struct ibv_wc));
+	memset(rcnt_for_qp, 0, sizeof(uint64_t) * user_param->num_of_qps);
 
-	tot_iters = (uint64_t)user_param->iters*user_param->num_of_qps;
-	iters=user_param->iters;
+	tot_iters = (uint64_t)user_param->iters * user_param->num_of_qps;
+	iters = user_param->iters;
 
 	if (user_param->noPeak == ON)
 		user_param->tposted[0] = get_cycles();
 
 	if(user_param->test_type == DURATION && user_param->machine == CLIENT && firstRx) {
 		firstRx = OFF;
-		duration_param=user_param;
-		user_param->iters=0;
+		duration_param = user_param;
+		user_param->iters = 0;
 		duration_param->state = START_STATE;
 		signal(SIGALRM, catch_alarm);
 		alarm(user_param->margin);
@@ -695,7 +742,7 @@ int run_iter_fw(struct pingpong_context *ctx,struct perftest_parameters *user_pa
 
 		for (index=0; index < user_param->num_of_qps; index++) {
 
-			while (((ctx->scnt[index] < iters) || ((firstRx == OFF) && (user_param->test_type == DURATION)))&&
+			while (((ctx->scnt[index] < iters) || ((firstRx == OFF) && (user_param->test_type == DURATION))) &&
 					((ctx->scnt[index] - ctx->ccnt[index]) < user_param->tx_depth) && (rcnt_for_qp[index] - ctx->scnt[index] > 0)) {
 
 				if (user_param->post_list == 1 && (ctx->scnt[index] % user_param->cq_mod == 0 && user_param->cq_mod > 1)) {
@@ -731,7 +778,7 @@ int run_iter_fw(struct pingpong_context *ctx,struct perftest_parameters *user_pa
 				#endif
 					if (user_param->use_exp == 1) {
 						err = (ctx->exp_post_send_func_pointer)(ctx->qp[index],
-							&ctx->exp_wr[index*user_param->post_list],&bad_exp_wr);
+							&ctx->exp_wr[index*user_param->post_list], &bad_exp_wr);
 					}
 					else {
 						err = (ctx->post_send_func_pointer)(ctx->qp[index],
@@ -741,10 +788,10 @@ int run_iter_fw(struct pingpong_context *ctx,struct perftest_parameters *user_pa
 				}
 				#endif
 				#else
-				err = ibv_post_send(ctx->qp[index],&ctx->wr[index*user_param->post_list],&bad_wr);
+				err = ibv_post_send(ctx->qp[index], &ctx->wr[index*user_param->post_list], &bad_wr);
 				#endif
 				if(err) {
-					fprintf(stderr,"Couldn't post send: qp %d scnt=%lu \n",index,ctx->scnt[index]);
+					fprintf(stderr, "Couldn't post send: qp %d scnt=%lu \n", index, ctx->scnt[index]);
 					return_value = 1;
 					goto cleaning;
 				}
@@ -752,19 +799,21 @@ int run_iter_fw(struct pingpong_context *ctx,struct perftest_parameters *user_pa
 				if (user_param->post_list == 1 && user_param->size <= (ctx->cycle_buffer / 2)) {
 					#ifdef HAVE_VERBS_EXP
 					if (user_param->use_exp == 1)
-						increase_loc_addr(ctx->exp_wr[index].sg_list,user_param->size,
-								ctx->scnt[index],ctx->my_addr[index],0,ctx->cache_line_size,ctx->cycle_buffer);
+						increase_loc_addr(ctx->exp_wr[index].sg_list, user_param->size,
+								  ctx->scnt[index], ctx->my_addr[index], 0,
+								  ctx->cache_line_size, ctx->cycle_buffer);
 					else
 					#endif
-						increase_loc_addr(ctx->wr[index].sg_list,user_param->size,
-								ctx->scnt[index],ctx->my_addr[index],0,ctx->cache_line_size,ctx->cycle_buffer);
+						increase_loc_addr(ctx->wr[index].sg_list, user_param->size,
+								  ctx->scnt[index], ctx->my_addr[index], 0,
+								  ctx->cache_line_size, ctx->cycle_buffer);
 				}
 				ctx->scnt[index] += user_param->post_list;
 				totscnt += user_param->post_list;
 
 				if (user_param->post_list == 1 &&
-					(ctx->scnt[index]%user_param->cq_mod == user_param->cq_mod - 1 ||
-						(user_param->test_type == ITERATIONS && ctx->scnt[index] == iters-1))){
+					(ctx->scnt[index]%user_param->cq_mod == (user_param->cq_mod - 1) ||
+						(user_param->test_type == ITERATIONS && ctx->scnt[index] == (iters - 1)))) {
 					#ifdef HAVE_VERBS_EXP
 					#ifdef HAVE_ACCL_VERBS
 					if (user_param->verb_type == ACCL_INTF)
@@ -786,25 +835,26 @@ int run_iter_fw(struct pingpong_context *ctx,struct perftest_parameters *user_pa
 		if (user_param->use_event) {
 
 			if (ctx_notify_events(ctx->channel)) {
-				fprintf(stderr,"Failed to notify events to CQ");
+				fprintf(stderr, "Failed to notify events to CQ");
 				return_value = 1;
 				goto cleaning;
 			}
 		}
 
-		if ((user_param->test_type == ITERATIONS && (totrcnt < tot_iters)) || (user_param->test_type == DURATION && user_param->state != END_STATE)) {
+		if ((user_param->test_type == ITERATIONS && (totrcnt < tot_iters)) ||
+			(user_param->test_type == DURATION && user_param->state != END_STATE)) {
 			#ifdef HAVE_ACCL_VERBS
 			if (user_param->verb_type == ACCL_INTF)
 				ne = ctx->recv_cq_family->poll_cnt(ctx->recv_cq, CTX_POLL_BATCH);
 			else
 			#endif
-				ne = ibv_poll_cq(ctx->recv_cq,CTX_POLL_BATCH,wc);
+				ne = ibv_poll_cq(ctx->recv_cq, CTX_POLL_BATCH, wc);
 
 			if (ne > 0) {
 				if (user_param->machine == SERVER && firstRx && user_param->test_type == DURATION) {
 					firstRx = OFF;
-					duration_param=user_param;
-					user_param->iters=0;
+					duration_param = user_param;
+					user_param->iters = 0;
 					duration_param->state = START_STATE;
 					signal(SIGALRM, catch_alarm);
 					alarm(user_param->margin);
@@ -816,7 +866,7 @@ int run_iter_fw(struct pingpong_context *ctx,struct perftest_parameters *user_pa
 
 					if (user_param->verb_type != ACCL_INTF) {
 						if (wc[i].status != IBV_WC_SUCCESS) {
-							NOTIFY_COMP_ERROR_RECV(wc[i],totrcnt);
+							NOTIFY_COMP_ERROR_RECV(wc[i], totrcnt);
 						}
 					}
 
@@ -835,7 +885,7 @@ int run_iter_fw(struct pingpong_context *ctx,struct perftest_parameters *user_pa
 				ne = ctx->send_cq_family->poll_cnt(ctx->send_cq, CTX_POLL_BATCH);
 			else
 			#endif
-				ne = ibv_poll_cq(ctx->send_cq,CTX_POLL_BATCH,wc_tx);
+				ne = ibv_poll_cq(ctx->send_cq, CTX_POLL_BATCH, wc_tx);
 
 			if (ne > 0) {
 				for (i = 0; i < ne; i++) {
@@ -844,7 +894,7 @@ int run_iter_fw(struct pingpong_context *ctx,struct perftest_parameters *user_pa
 
 					if (user_param->verb_type != ACCL_INTF) {
 						if (wc_tx[i].status != IBV_WC_SUCCESS)
-							NOTIFY_COMP_ERROR_SEND(wc_tx[i],totscnt,totccnt);
+							NOTIFY_COMP_ERROR_SEND(wc_tx[i], totscnt, totccnt);
 					}
 
 					totccnt += user_param->cq_mod;
@@ -855,10 +905,10 @@ int run_iter_fw(struct pingpong_context *ctx,struct perftest_parameters *user_pa
 						if ((user_param->test_type == ITERATIONS && (totccnt >= tot_iters - 1)))
 							user_param->tcompleted[tot_iters - 1] = get_cycles();
 						else
-							user_param->tcompleted[totccnt-1] = get_cycles();
+							user_param->tcompleted[totccnt - 1] = get_cycles();
 					}
 
-					if (user_param->test_type==DURATION && user_param->state == SAMPLE_STATE)
+					if (user_param->test_type == DURATION && user_param->state == SAMPLE_STATE)
 						user_param->iters += user_param->cq_mod;
 				}
 			} else if (ne < 0) {
@@ -867,7 +917,8 @@ int run_iter_fw(struct pingpong_context *ctx,struct perftest_parameters *user_pa
 				goto cleaning;
 			}
 			while (rwqe_sent - totccnt < user_param->rx_depth) {    /* Post more than buffer_size */
-				if (user_param->test_type==DURATION || rcnt_for_qp[0] + user_param->rx_depth <= user_param->iters) {
+				if (user_param->test_type==DURATION ||
+					rcnt_for_qp[0] + user_param->rx_depth <= user_param->iters) {
 					#ifdef HAVE_ACCL_VERBS
 					if (user_param->verb_type == ACCL_INTF) {
 						if (ctx->qp_burst_family[0]->recv_burst(ctx->qp[0], ctx->rwr[0].sg_list, 1)) {
@@ -877,8 +928,8 @@ int run_iter_fw(struct pingpong_context *ctx,struct perftest_parameters *user_pa
 						}
 					} else {
 					#endif
-						if (ibv_post_recv(ctx->qp[0],&ctx->rwr[0],&bad_wr_recv)) {
-							fprintf(stderr, "Couldn't post recv Qp=%d rcnt=%lu\n",0,rcnt_for_qp[0]);
+						if (ibv_post_recv(ctx->qp[0], &ctx->rwr[0], &bad_wr_recv)) {
+							fprintf(stderr, "Couldn't post recv Qp=%d rcnt=%lu\n", 0, rcnt_for_qp[0]);
 							return_value = 15;
 							goto cleaning;
 						}
@@ -886,10 +937,10 @@ int run_iter_fw(struct pingpong_context *ctx,struct perftest_parameters *user_pa
 					}
 					#endif
 
-					if (SIZE(user_param->connection_type,user_param->size,!(int)user_param->machine) <= (ctx->cycle_buffer / 2)) {
+					if (SIZE(user_param->connection_type, user_param->size, !(int)user_param->machine) <= (ctx->cycle_buffer / 2)) {
 						increase_loc_addr(ctx->rwr[0].sg_list,
 								user_param->size,
-								rwqe_sent ,
+								rwqe_sent,
 								ctx->rx_buffer_addr[0],user_param->connection_type,
 								ctx->cache_line_size,ctx->cycle_buffer);
 					}
diff --git a/src/raw_ethernet_resources.h b/src/raw_ethernet_resources.h
index ce3061d..d28cf76 100644
--- a/src/raw_ethernet_resources.h
+++ b/src/raw_ethernet_resources.h
@@ -121,7 +121,8 @@ int check_flow_steering_support(char *dev_name);
  *		eth_type -
  *		ip_next_protocol -
  *		print_flag - if print_flag == TRUE : print the packet after it's done
- *		sizePkt - size of the requested packet
+ *		pkt_size - size of the requested packet
+ *		flows_offset - current offset from the base flow
  */
 void build_pkt_on_buffer(struct ETH_header* eth_header,
 		struct raw_ethernet_info *my_dest_info,
@@ -130,7 +131,8 @@ void build_pkt_on_buffer(struct ETH_header* eth_header,
 		uint16_t eth_type,
 		uint16_t ip_next_protocol,
 		int print_flag,
-		int sizePkt);
+		int pkt_size,
+		int flows_offset);
 
 /*  create_raw_eth_pkt
  * 	Description: build raw Ethernet packet by user arguments
@@ -188,9 +190,11 @@ int send_set_up_connection(
  * 		ip_header_buff - Pointer to output
  * 		saddr - source IP address of the packet(network order)
  * 		daddr - destination IP address of the packet(network order)
- * 		sizePkt - size of the packet
+ * 		pkt_size - size of the packet
+ *		flows_offset - current offset from the base flow
  */
-void gen_ip_header(void* ip_header_buff,uint32_t* saddr ,uint32_t* daddr,uint8_t protocol,int sizePkt, int tos);
+void gen_ip_header(void* ip_header_buff, uint32_t* saddr, uint32_t* daddr,
+		   uint8_t protocol, int pkt_size, int tos, int flows_offset);
 
 /* gen_udp_header .
 
@@ -198,24 +202,22 @@ void gen_ip_header(void* ip_header_buff,uint32_t* saddr ,uint32_t* daddr,uint8_t
  *
  * Parameters :
  * 		UDP_header_buffer - Pointer to output
- *		sPort - source UDP port of the packet
- *		dPort -destination UDP port of the packet
- *		sadder -source IP address of the packet(using for UPD checksum)(network order)
- *		dadder - source IP address of the packet(using for UPD checksum)(network order)
- *		sizePkt - size of the packet
+ *		src_port - source UDP port of the packet
+ *		dst_port -destination UDP port of the packet
+ *		pkt_size - size of the packet
  */
-void gen_udp_header(void* UDP_header_buffer,int* sPort ,int* dPort,uint32_t saddr,uint32_t daddr,int sizePkt);
+void gen_udp_header(void* UDP_header_buffer, int src_port, int dst_port, int pkt_size);
 
-/* gen_udp_header .
+/* gen_tcp_header .
 
- * Description :create UDP header on buffer
+ * Description :create TCP header on buffer
  *
  * Parameters :
  * 		TCP_header_buffer - Pointer to output
- *		sPort - source TCP port of the packet
- *		dPort -destination TCP port of the packet
+ *		src_port - source TCP port of the packet
+ *		dst_port -destination TCP port of the packet
  */
-void gen_tcp_header(void* TCP_header_buffer,int* sPort ,int* dPort);
+void gen_tcp_header(void* TCP_header_buffer,int src_port ,int dst_port);
 
 /* run_iter_fw
  *
diff --git a/src/raw_ethernet_send_lat.c b/src/raw_ethernet_send_lat.c
index 052ef3c..4c8f815 100755
--- a/src/raw_ethernet_send_lat.c
+++ b/src/raw_ethernet_send_lat.c
@@ -60,14 +60,15 @@ int main(int argc, char *argv[])
 	int				ret_parser;
 	struct perftest_parameters	user_param;
 	#ifdef HAVE_RAW_ETH_EXP
-	struct ibv_exp_flow		*flow_create_result = NULL;
-	struct ibv_exp_flow_attr	*flow_rules = NULL;
+	struct ibv_exp_flow		**flow_create_result;
+	struct ibv_exp_flow_attr	**flow_rules;
 	struct ibv_exp_flow 		*flow_promisc = NULL;
 	#else
-	struct ibv_flow		*flow_create_result = NULL;
-	struct ibv_flow_attr	*flow_rules = NULL;
+	struct ibv_flow			**flow_create_result;
+	struct ibv_flow_attr		**flow_rules;
 	#endif
 	struct report_options		report;
+	int				i;
 
 	/* allocate memory space for user parameters &*/
 	memset(&ctx,		0, sizeof(struct pingpong_context));
@@ -96,13 +97,20 @@ int main(int argc, char *argv[])
 		DEBUG_LOG(TRACE,"<<<<<<%s",__FUNCTION__);
 		return 1;
 	}
+	#ifdef HAVE_RAW_ETH_EXP
+	ALLOCATE(flow_create_result, struct ibv_exp_flow*, user_param.flows);
+	ALLOCATE(flow_rules, struct ibv_exp_flow_attr*, user_param.flows);
+	#else
+	ALLOCATE(flow_create_result, struct ibv_flow*, user_param.flows);
+	ALLOCATE(flow_rules, struct ibv_flow_attr*, user_param.flows);
+	#endif
+
 
 	/*this is a bidirectional test, so we need to let the init functions
 	 * think we are in duplex mode
 	 */
 	user_param.duplex  = 1;
 
-
 	/* Find the selected IB device (or default if the user didn't select one). */
 	ib_dev = ctx_find_dev(user_param.ib_devname);
 	if (!ib_dev) {
@@ -140,12 +148,13 @@ int main(int argc, char *argv[])
 	/*set up the connection, return the required flow rules (notice that user_param->duplex == TRUE)
 	 * so the function will setup like it's a bidirectional test
 	 */
-	if (send_set_up_connection(&flow_rules, &ctx, &user_param, &my_dest_info, &rem_dest_info)) {
+	if (send_set_up_connection(flow_rules, &ctx, &user_param, &my_dest_info, &rem_dest_info)) {
 		fprintf(stderr," Unable to set up socket connection\n");
 		return 1;
 	}
 
-	print_spec(flow_rules,&user_param);
+	for (i = 0; i < user_param.flows; i++)
+		print_spec(flow_rules[i], &user_param);
 
 	/* Create (if necessary) the rdma_cm ids and channel. */
 	if (user_param.work_rdma_cm == ON) {
@@ -180,16 +189,18 @@ int main(int argc, char *argv[])
 
 
 	/* attaching the qp to the spec */
-	#ifdef HAVE_RAW_ETH_EXP
-	flow_create_result = ibv_exp_create_flow(ctx.qp[0], flow_rules);
-	#else
-	flow_create_result = ibv_create_flow(ctx.qp[0], flow_rules);
-	#endif
-
-	if (!flow_create_result){
-		perror("error");
-		fprintf(stderr, "Couldn't attach QP\n");
-		return FAILURE;
+	for (i = 0; i < user_param.flows; i++) {
+		#ifdef HAVE_RAW_ETH_EXP
+		flow_create_result[i] = ibv_exp_create_flow(ctx.qp[0], flow_rules[i]);
+		#else
+		flow_create_result[i] = ibv_create_flow(ctx.qp[0], flow_rules[i]);
+		#endif
+
+		if (!flow_create_result[i]){
+			perror("error");
+			fprintf(stderr, "Couldn't attach QP\n");
+			return FAILURE;
+		}
 	}
 
 	#ifdef HAVE_RAW_ETH_EXP
@@ -255,19 +266,20 @@ int main(int argc, char *argv[])
 	}
 	#endif
 
-
 	/* destroy flow */
-	#ifdef HAVE_RAW_ETH_EXP
-	if (ibv_exp_destroy_flow(flow_create_result)) {
-	#else
-	if (ibv_destroy_flow(flow_create_result)) {
-	#endif
-		perror("error");
-		fprintf(stderr, "Couldn't Destory flow\n");
-		return FAILURE;
-	}
+	for (i = 0; i < user_param.flows; i++) {
+		#ifdef HAVE_RAW_ETH_EXP
+		if (ibv_exp_destroy_flow(flow_create_result[i])) {
+		#else
+		if (ibv_destroy_flow(flow_create_result[i])) {
+		#endif
+			perror("error");
+			fprintf(stderr, "Couldn't Destory flow\n");
+			return FAILURE;
+		}
 
-	free(flow_rules);
+		free(flow_rules[i]);
+	}
 
 	/* Deallocate all perftest resources. */
 	if (destroy_ctx(&ctx, &user_param)) {

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



More information about the Pkg-ofed-commits mailing list