Version: 1
-Previous: 04ff288d4d44acab3ebcce1450fd5dcf04995e26
-Head: eb0d1fd153da48d411e15a9ace059dd79efb4cb3
+Previous: da981908ac8859adf685cf983802489d5c4020c6
+Head: 1c02d2aef3764466d4362d9ce78cdd7398dc0705
Applied:
af-ib-conn: eb0d1fd153da48d411e15a9ace059dd79efb4cb3
+ refresh-temp: 1c02d2aef3764466d4362d9ce78cdd7398dc0705
Unapplied:
addrtype: 066c2615bf5399848088a9771093a76c5e205bf1
dbg-fork: 5679a32af8305db3c0406f9abb961259304a384a
--- /dev/null
+Bottom: fd25e5104198197967ac10d49db6570c49bf661c
+Top: 2eca3cd3b24997915efff050cef4f004a68a9b56
+Author: Sean Hefty <sean.hefty@intel.com>
+Date: 2012-09-21 16:05:20 -0700
+
+Refresh of af-ib-conn
+
+---
+
+diff --git a/src/acm.c b/src/acm.c
+index 3d8c912..eec5826 100755
+--- a/src/acm.c
++++ b/src/acm.c
+@@ -167,9 +167,6 @@ static int ucma_ib_set_connect(struct rdma_addrinfo *ib_rai,
+ {
+ struct ib_connect_hdr *hdr;
+
+- if (rai->ai_family == AF_IB)
+- return 0;
+-
+ hdr = calloc(1, sizeof *hdr);
+ if (!hdr)
+ return ERR(ENOMEM);
+@@ -180,12 +177,21 @@ static int ucma_ib_set_connect(struct rdma_addrinfo *ib_rai,
+ &((struct sockaddr_in *) rai->ai_src_addr)->sin_addr, 4);
+ memcpy(&hdr->cma_dst_ip4,
+ &((struct sockaddr_in *) rai->ai_dst_addr)->sin_addr, 4);
+- } else {
++ } else if (rai->ai_family == AF_INET6) {
+ hdr->ip_version = 6 << 4;
+ memcpy(&hdr->cma_src_ip6,
+ &((struct sockaddr_in6 *) rai->ai_src_addr)->sin6_addr, 16);
+ memcpy(&hdr->cma_dst_ip6,
+ &((struct sockaddr_in6 *) rai->ai_dst_addr)->sin6_addr, 16);
++ } else if (rai->ai_family == AF_IB) {
++ hdr->ip_version = 6 << 4;
++ memcpy(&hdr->cma_src_ip6,
++ &((struct sockaddr_ib *) rai->ai_src_addr)->sib_addr, 16);
++ memcpy(&hdr->cma_dst_ip6,
++ &((struct sockaddr_ib *) rai->ai_dst_addr)->sib_addr, 16);
++ } else {
++ free(hdr);
++ return ERR(EINVAL);
+ }
+
+ ib_rai->ai_connect = hdr;