Check CRC32 sig-handover supported
diff --git a/configure.ac b/configure.ac
index d503c3a..0347115 100644
--- a/configure.ac
+++ b/configure.ac
@@ -161,7 +161,12 @@
AC_DEFINE(HAVE_VXLAN, 1, [Vxlan is supported])
fi
-AC_CHECK_DECL([IBV_EXP_SIG_TYPE_T10_DIF], [sig_handover=1], [], [
+AC_CHECK_DECL([IBV_EXP_SIG_TYPE_T10_DIF], [
+ sig_handover=1
+ AC_CHECK_DECLS([IBV_EXP_SIG_TYPE_CRC32], [], [], [
+#include <infiniband/verbs_exp.h>
+ ])
+], [], [
#include <infiniband/verbs_exp.h>
])
AM_CONDITIONAL([SIG_HANDOVER], [test x$sig_handover = x1])
diff --git a/tests/sig-handover/pillar.cc b/tests/sig-handover/pillar.cc
index 5a1881b..d4e6a02 100644
--- a/tests/sig-handover/pillar.cc
+++ b/tests/sig-handover/pillar.cc
@@ -309,7 +309,7 @@
assert(rc == 0);
}
-TEST_F(sig_test_t10diff, ext0) {
+TEST_F(sig_test_t10dif, ext0) {
CHK_SUT(sig_handover);
EXEC(config(this->insert_mr, this->src_mr.sge(), this->nosig(), this->sig()));
EXEC(send_qp.rdma(this->insert_mr.sge(0,SZD(this->pi_size())), this->mid_mr.sge(), IBV_WR_RDMA_WRITE));
diff --git a/tests/sig-handover/smoke.cc b/tests/sig-handover/smoke.cc
index c4e7a04..e047ffd 100644
--- a/tests/sig-handover/smoke.cc
+++ b/tests/sig-handover/smoke.cc
@@ -187,6 +187,7 @@
}
};
+#if HAVE_DECL_IBV_EXP_SIG_TYPE_CRC32
struct sig_crc32 : public sig_domain {
static unsigned pi_size() {
return 4;
@@ -210,6 +211,7 @@
return sd;
}
};
+#endif
template <typename QP, typename SD>
struct sig_test_base : public testing::Test, public SD, public ibvt_env {
@@ -359,10 +361,15 @@
template <typename SD>
struct sig_test : public sig_test_base<ibvt_qp_sig, SD> {};
-typedef testing::Types<sig_t10dif, sig_crc32> sig_domain_types;
+typedef testing::Types<
+#if HAVE_DECL_IBV_EXP_SIG_TYPE_CRC32
+ sig_crc32,
+#endif
+ sig_t10dif
+> sig_domain_types;
TYPED_TEST_CASE(sig_test, sig_domain_types);
-typedef sig_test<sig_t10dif> sig_test_t10diff;
+typedef sig_test<sig_t10dif> sig_test_t10dif;
typedef sig_test_base<ibvt_qp_sig_pipeline, sig_t10dif> sig_test_pipeline;
TYPED_TEST(sig_test, c0) {