From: Sean Hefty Date: Mon, 10 Jun 2013 18:14:05 +0000 (-0700) Subject: refresh (create temporary patch) X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=6dd53f0492d590cd24181a293c97b911901e2d77;p=~shefty%2Flibrdmacm.git refresh (create temporary patch) --- diff --git a/meta b/meta index 1b052300..e35ad5d1 100644 --- a/meta +++ b/meta @@ -1,10 +1,11 @@ Version: 1 -Previous: f829022517f74eeb895c5dfa1c90353c32e16502 -Head: 906512e39ae182d84ed5ce5fb7d510df188ba91f +Previous: 878004bbca699ccedb220409b0fcc404efd8b14f +Head: 75f0398ec1b0e9e2c17cbe2883f10290a961a03b Applied: ex-ib: d71ebf70cf74111cfd5f0982d9abe6ec68fb38e3 use_acm: 282058197859038e66b5bc42cccc12f6fb9bbd93 acm_msg: 906512e39ae182d84ed5ce5fb7d510df188ba91f + refresh-temp: 75f0398ec1b0e9e2c17cbe2883f10290a961a03b Unapplied: seterr: 47eb0c419687c2690292c1910acae83a46e5388c clisvr: 0db572abcf3d78374a5ea0f91b709136948809cc diff --git a/patches/refresh-temp b/patches/refresh-temp new file mode 100644 index 00000000..d8dad663 --- /dev/null +++ b/patches/refresh-temp @@ -0,0 +1,139 @@ +Bottom: 08cdb9a8cfd429d8b0018d91813c88ace4431342 +Top: ac7a8b594dbde179439d51d04b7a4fbafbf49d2a +Author: Sean Hefty +Date: 2013-06-10 11:14:05 -0700 + +Refresh of acm_msg + +--- + +diff --git a/configure.ac b/configure.ac +index 3ce7a6e..327f85b 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -70,11 +70,6 @@ AC_CHECK_HEADER(valgrind/memcheck.h, [], + fi + fi + +-AC_CHECK_HEADER(infiniband/acm.h, +- AC_CHECK_MEMBER(struct acm_msg.resolve_data, [], +- AC_DEFINE(DEFINE_ACM_MSG, 1, [adding ACM message definition]), +- [#include ]), []) +- + AC_CACHE_CHECK(whether ld accepts --version-script, ac_cv_version_script, + if test -n "`$LD --help < /dev/null 2>/dev/null | grep version-script`"; then + ac_cv_version_script=yes +diff --git a/src/acm.c b/src/acm.c +index c423bb7..58cea7c 100755 +--- a/src/acm.c ++++ b/src/acm.c +@@ -45,19 +45,85 @@ + #include + #include + +-#include ++#define ACM_VERSION 1 ++ ++#define ACM_OP_RESOLVE 0x01 ++//#define ACM_OP_ACK 0x80 ++ ++//#define ACM_STATUS_SUCCESS 0 ++//#define ACM_STATUS_ENOMEM 1 ++//#define ACM_STATUS_EINVAL 2 ++//#define ACM_STATUS_ENODATA 3 ++//#define ACM_STATUS_ENOTCONN 5 ++//#define ACM_STATUS_ETIMEDOUT 6 ++//#define ACM_STATUS_ESRCADDR 7 ++//#define ACM_STATUS_ESRCTYPE 8 ++//#define ACM_STATUS_EDESTADDR 9 ++//#define ACM_STATUS_EDESTTYPE 10 ++ ++//#define ACM_FLAGS_QUERY_SA (1<<31) ++#define ACM_FLAGS_NODELAY (1<<30) ++ ++#define ACM_MSG_HDR_LENGTH 16 ++#define ACM_MAX_ADDRESS 64 ++#define ACM_MSG_EP_LENGTH 72 ++/* ++ * Support up to 6 path records (primary and alternate CM paths, ++ * inbound and outbound primary and alternate data paths), plus CM data. ++ */ ++#define ACM_MSG_DATA_LENGTH (ACM_MSG_EP_LENGTH * 8) ++ ++struct acm_hdr { ++ uint8_t version; ++ uint8_t opcode; ++ uint8_t status; ++ uint8_t data[3]; ++ uint16_t length; ++ uint64_t tid; ++}; ++ ++//#define ACM_EP_INFO_NAME 0x0001 ++#define ACM_EP_INFO_ADDRESS_IP 0x0002 ++#define ACM_EP_INFO_ADDRESS_IP6 0x0003 ++#define ACM_EP_INFO_PATH 0x0010 ++ ++union acm_ep_info { ++ uint8_t addr[ACM_MAX_ADDRESS]; ++ uint8_t name[ACM_MAX_ADDRESS]; ++ struct ibv_path_record path; ++}; ++ ++#define ACM_EP_FLAG_SOURCE (1<<0) ++#define ACM_EP_FLAG_DEST (1<<1) ++ ++struct acm_ep_addr_data { ++ uint32_t flags; ++ uint16_t type; ++ uint16_t reserved; ++ union acm_ep_info info; ++}; + +-#if DEFINE_ACM_MSG +-typedef struct cma_acm_msg { ++/* ++ * Resolve messages with the opcode set to ACM_OP_RESOLVE are only ++ * used to communicate with the local ib_acm service. Message fields ++ * in this case are not byte swapped, but note that the acm_ep_info ++ * data is in network order. ++ */ ++struct acm_resolve_msg { ++ struct acm_hdr hdr; ++ struct acm_ep_addr_data data[0]; ++}; ++ ++struct acm_msg { + struct acm_hdr hdr; + union{ + uint8_t data[ACM_MSG_DATA_LENGTH]; + struct acm_ep_addr_data resolve_data[0]; + }; +-} cma_acm_msg_t; +-#else +-typedef struct acm_msg cma_acm_msg_t; +-#endif ++}; ++ ++ ++ + + static pthread_mutex_t acm_lock = PTHREAD_MUTEX_INITIALIZER; + static int sock = -1; +@@ -241,7 +307,7 @@ err: + rdma_freeaddrinfo(ib_rai); + } + +-static void ucma_ib_save_resp(struct rdma_addrinfo *rai, cma_acm_msg_t *msg) ++static void ucma_ib_save_resp(struct rdma_addrinfo *rai, struct acm_msg *msg) + { + struct acm_ep_addr_data *ep_data; + struct ibv_path_data *path_data = NULL; +@@ -325,7 +391,7 @@ static int ucma_ib_addr(struct sockaddr *addr, socklen_t len) + + void ucma_ib_resolve(struct rdma_addrinfo **rai, struct rdma_addrinfo *hints) + { +- cma_acm_msg_t msg; ++ struct acm_msg msg; + struct acm_ep_addr_data *data; + int ret;