[LTP] [PATCH 1/2] lapi: Add fallback rdma_user_cm.h definitions

Andrea Cervesato andrea.cervesato@suse.de
Wed Mar 25 16:25:34 CET 2026


From: Andrea Cervesato <andrea.cervesato@suse.com>

Add LAPI header with fallback definitions for RDMA user CM structures
and command enums, used when <rdma/rdma_user_cm.h> is not available.

Add the corresponding configure check for rdma/rdma_user_cm.h.

Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com>
---
 configure.ac                |  1 +
 include/lapi/rdma_user_cm.h | 72 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 73 insertions(+)

diff --git a/configure.ac b/configure.ac
index 9d6ec7f13ad421aa35840ebc65745c962b11e1db..8f67018dc692685d88acfb51232446659c1eeb3d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -85,6 +85,7 @@ AC_CHECK_HEADERS_ONCE([ \
     linux/userfaultfd.h \
     netinet/sctp.h \
     pthread.h \
+    rdma/rdma_user_cm.h \
     sys/epoll.h \
     sys/fanotify.h \
     sys/inotify.h \
diff --git a/include/lapi/rdma_user_cm.h b/include/lapi/rdma_user_cm.h
new file mode 100644
index 0000000000000000000000000000000000000000..801dd83ec0df215901a86855bc51ad2b416d9855
--- /dev/null
+++ b/include/lapi/rdma_user_cm.h
@@ -0,0 +1,72 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Copyright (c) 2026 Linux Test Project
+ */
+
+#ifndef LAPI_RDMA_USER_CM_H__
+#define LAPI_RDMA_USER_CM_H__
+
+#include "config.h"
+
+#ifdef HAVE_RDMA_RDMA_USER_CM_H
+# include <rdma/rdma_user_cm.h>
+#endif
+
+#include <netinet/in.h>
+#include <stdint.h>
+
+#ifndef RDMA_USER_CM_ABI_VERSION
+
+enum {
+	RDMA_USER_CM_CMD_CREATE_ID,
+	RDMA_USER_CM_CMD_DESTROY_ID,
+	RDMA_USER_CM_CMD_BIND_IP,
+	RDMA_USER_CM_CMD_RESOLVE_IP,
+	RDMA_USER_CM_CMD_RESOLVE_ROUTE,
+	RDMA_USER_CM_CMD_QUERY_ROUTE,
+	RDMA_USER_CM_CMD_CONNECT,
+	RDMA_USER_CM_CMD_LISTEN,
+};
+
+enum rdma_ucm_port_space {
+	RDMA_PS_IPOIB = 0x0002,
+};
+
+struct rdma_ucm_cmd_hdr {
+	uint32_t cmd;
+	uint16_t in;
+	uint16_t out;
+};
+
+struct rdma_ucm_create_id {
+	uint64_t uid;
+	uint64_t response;
+	uint16_t ps;
+	uint8_t  qp_type;
+	uint8_t  reserved[5];
+};
+
+struct rdma_ucm_create_id_resp {
+	uint32_t id;
+};
+
+struct rdma_ucm_destroy_id {
+	uint64_t response;
+	uint32_t id;
+	uint32_t reserved;
+};
+
+struct rdma_ucm_bind_ip {
+	uint64_t response;
+	struct sockaddr_in6 addr;
+	uint32_t id;
+};
+
+struct rdma_ucm_listen {
+	uint32_t id;
+	uint32_t backlog;
+};
+
+#endif /* RDMA_USER_CM_ABI_VERSION */
+
+#endif /* LAPI_RDMA_USER_CM_H__ */

-- 
2.51.0



More information about the ltp mailing list