From: Sean Hefty Date: Mon, 10 Jun 2013 17:56:57 +0000 (-0700) Subject: cmatose: Support GID addresses X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=bd2046e789dedd1ce9604e0cbbf1b231b6a1b4e0;p=~shefty%2Flibrdmacm.git cmatose: Support GID addresses Allow a user to specify a GID address as input into cmatose. This allows the use of native IB addresses via AF_IB support. Signed-off-by: Sean Hefty --- diff --git a/configure.ac b/configure.ac index 35d79dd4..3ce7a6ea 100644 --- a/configure.ac +++ b/configure.ac @@ -70,9 +70,6 @@ AC_CHECK_HEADER(valgrind/memcheck.h, [], fi fi -AC_CHECK_HEADER(infiniband/acm.h, - AC_DEFINE([USE_IB_ACM], 1, [setting IBACM support]), []) - AC_CHECK_HEADER(infiniband/acm.h, AC_CHECK_MEMBER(struct acm_msg.resolve_data, [], AC_DEFINE(DEFINE_ACM_MSG, 1, [adding ACM message definition]), diff --git a/examples/cmatose.c b/examples/cmatose.c index 2b6b2b13..2971ed1a 100644 --- a/examples/cmatose.c +++ b/examples/cmatose.c @@ -44,6 +44,7 @@ #include #include +#include #include "common.h" struct cmatest_node { @@ -81,6 +82,7 @@ static uint8_t tos; static uint8_t migrate = 0; static char *dst_addr; static char *src_addr; +static char addr_type = 'u'; static int create_message(struct cmatest_node *node) { @@ -508,7 +510,11 @@ static int run_server(void) } memset(&hints, 0, sizeof hints); - hints.ai_flags = RAI_PASSIVE; + if (addr_type == 'g') { + hints.ai_flags = RAI_FAMILY | RAI_NUMERICHOST; + hints.ai_family = AF_IB; + } + hints.ai_flags |= RAI_PASSIVE; hints.ai_port_space = RDMA_PS_TCP; ret = get_rdma_addr(src_addr, dst_addr, port, &hints, &test.rai); if (ret) { @@ -585,6 +591,10 @@ static int run_client(void) printf("cmatose: starting client\n"); memset(&hints, 0, sizeof hints); + if (addr_type == 'g') { + hints.ai_flags = RAI_FAMILY | RAI_NUMERICHOST; + hints.ai_family = AF_IB; + } hints.ai_port_space = RDMA_PS_TCP; ret = get_rdma_addr(src_addr, dst_addr, port, &hints, &test.rai); if (ret) { @@ -642,7 +652,7 @@ int main(int argc, char **argv) { int op, ret; - while ((op = getopt(argc, argv, "s:b:c:C:S:t:p:m")) != -1) { + while ((op = getopt(argc, argv, "s:b:c:C:S:t:p:mf:")) != -1) { switch (op) { case 's': dst_addr = optarg; @@ -669,6 +679,9 @@ int main(int argc, char **argv) case 'm': migrate = 1; break; + case 'f': + addr_type = optarg[0]; + break; default: printf("usage: %s\n", argv[0]); printf("\t[-s server_address]\n"); @@ -679,6 +692,8 @@ int main(int argc, char **argv) printf("\t[-t type_of_service]\n"); printf("\t[-p port_number]\n"); printf("\t[-m(igrate)]\n"); + printf("\t[-f addr_format] - i(p), n(ame), l(id), g(gid), or u(nspecified)\n"); + printf("\t address format for -s and -b options, default: 'u'\n"); exit(1); } }