From 6de1c7ffc0aa0f1e6227e318f8c24396f91696df Mon Sep 17 00:00:00 2001 From: Sean Hefty Date: Fri, 31 Aug 2012 14:38:14 -0700 Subject: [PATCH] refresh --- meta | 7 +-- patches/addrinfo-af-ib | 96 +++++++++++++++++++++----------- patches/refresh-temp | 121 ----------------------------------------- 3 files changed, 67 insertions(+), 157 deletions(-) delete mode 100644 patches/refresh-temp diff --git a/meta b/meta index b08fbad7..982d7c02 100644 --- a/meta +++ b/meta @@ -1,12 +1,11 @@ Version: 1 -Previous: d1654da06e944ce982709f4578e8e3f24f254a02 -Head: 0ff21f914510cf90ff48a88bee3ddf0138c60fdf +Previous: dd43dde342b861e2766a332f361ba86c8a210e96 +Head: 85f5450d0f68ce36d85b46e31a45c6e4bbee333a Applied: sa_family: 79ecff9afd483c22821eca679e7ed668035ab4c1 af_ib: ed14c624d882d21df3e2d0c022cffab0b7f664b9 ren-copy-rai: a7ae817991416863772d28d97839ee8daeefb07e - addrinfo-af-ib: 137754c860b7cce38378f14b0eee7f56214a855d - refresh-temp: 0ff21f914510cf90ff48a88bee3ddf0138c60fdf + addrinfo-af-ib: 85f5450d0f68ce36d85b46e31a45c6e4bbee333a Unapplied: addrtype: b252c6e657aeafdaa842b34555ceb3a5d4626fe1 dbg-fork: 5679a32af8305db3c0406f9abb961259304a384a diff --git a/patches/addrinfo-af-ib b/patches/addrinfo-af-ib index 59967f0a..bc73ae5a 100644 --- a/patches/addrinfo-af-ib +++ b/patches/addrinfo-af-ib @@ -1,5 +1,5 @@ Bottom: 4e01eb8a1c0681cd7bcca9c1bf3502036b929d4b -Top: a83c8510e141c14a58d3a80280254cbe08f2f4db +Top: 6b67ab7929dea022d63f78b08828f18a26afca60 Author: Sean Hefty Date: 2012-08-28 12:33:04 -0700 @@ -46,7 +46,7 @@ index 86e00ca..cd819c6 100755 Address family for the source and destination address. Supported families are: AF_INET, AF_INET6, and AF_IB. diff --git a/src/acm.c b/src/acm.c -index 95eee73..125d44a 100755 +index 95eee73..3d8c912 100755 --- a/src/acm.c +++ b/src/acm.c @@ -1,5 +1,5 @@ @@ -56,29 +56,31 @@ index 95eee73..125d44a 100755 * * This software is available to you under a choice of one of two * licenses. You may choose to be licensed under the terms of the GNU -@@ -128,16 +128,13 @@ static void ucma_set_sid(enum rdma_port_space ps, struct sockaddr *addr, - { - uint16_t port; +@@ -123,23 +123,6 @@ void ucma_ib_cleanup(void) + } + } +-static void ucma_set_sid(enum rdma_port_space ps, struct sockaddr *addr, +- struct sockaddr_ib *sib) +-{ +- uint16_t port; +- - if (addr->sa_family == AF_INET) - port = ((struct sockaddr_in *) addr)->sin_port; - else - port = ((struct sockaddr_in6 *) addr)->sin6_port; - -+ port = addr ? ucma_get_port(addr) : 0; - sib->sib_sid = htonll(((uint64_t) ps << 16) + ntohs(port)); -+ -+ if (ps) -+ sib->sib_sid_mask = htonll(RDMA_IB_IP_PORT_MASK); - if (port) +- sib->sib_sid = htonll(((uint64_t) ps << 16) + ntohs(port)); +- if (port) - sib->sib_sid_mask = ~0ULL; - else - sib->sib_sid_mask = htonll(RDMA_IB_IP_PS_MASK); -+ sib->sib_sid_mask |= htonll(RDMA_IB_IP_PORT_MASK); - } - +-} +- static int ucma_ib_set_addr(struct rdma_addrinfo *ib_rai, -@@ -184,6 +181,9 @@ static int ucma_ib_set_connect(struct rdma_addrinfo *ib_rai, + struct rdma_addrinfo *rai) + { +@@ -184,6 +167,9 @@ static int ucma_ib_set_connect(struct rdma_addrinfo *ib_rai, { struct ib_connect_hdr *hdr; @@ -88,7 +90,7 @@ index 95eee73..125d44a 100755 hdr = calloc(1, sizeof *hdr); if (!hdr) return ERR(ENOMEM); -@@ -360,16 +360,16 @@ void ucma_ib_resolve(struct rdma_addrinfo **rai, struct rdma_addrinfo *hints) +@@ -360,16 +346,16 @@ void ucma_ib_resolve(struct rdma_addrinfo **rai, struct rdma_addrinfo *hints) if (ucma_inet_addr((*rai)->ai_dst_addr, (*rai)->ai_dst_len)) { data->flags = ACM_EP_FLAG_DEST; @@ -108,7 +110,7 @@ index 95eee73..125d44a 100755 struct ibv_path_record *path; if (hints->ai_route_len == sizeof(struct ibv_path_record)) -@@ -409,8 +409,7 @@ void ucma_ib_resolve(struct rdma_addrinfo **rai, struct rdma_addrinfo *hints) +@@ -409,8 +395,7 @@ void ucma_ib_resolve(struct rdma_addrinfo **rai, struct rdma_addrinfo *hints) ucma_ib_save_resp(*rai, &msg); @@ -119,7 +121,7 @@ index 95eee73..125d44a 100755 } diff --git a/src/addrinfo.c b/src/addrinfo.c -index 2da35f0..9c43043 100755 +index 2da35f0..0582955 100755 --- a/src/addrinfo.c +++ b/src/addrinfo.c @@ -53,12 +53,17 @@ @@ -143,7 +145,7 @@ index 2da35f0..9c43043 100755 switch (rai->ai_qp_type) { case IBV_QPT_RC: -@@ -99,15 +104,47 @@ static void ucma_convert_to_ai(struct addrinfo *ai, struct rdma_addrinfo *rai) +@@ -99,15 +104,58 @@ static void ucma_convert_to_ai(struct addrinfo *ai, struct rdma_addrinfo *rai) ai->ai_next = NULL; } @@ -159,7 +161,21 @@ index 2da35f0..9c43043 100755 + return 0; +} + -+static int ucma_convert_in6(struct sockaddr_ib **dst, socklen_t *dst_len, ++void ucma_set_sid(enum rdma_port_space ps, struct sockaddr *addr, ++ struct sockaddr_ib *sib) ++{ ++ uint16_t port; ++ ++ port = addr ? ucma_get_port(addr) : 0; ++ sib->sib_sid = htonll(((uint64_t) ps << 16) + ntohs(port)); ++ ++ if (ps) ++ sib->sib_sid_mask = htonll(RDMA_IB_IP_PORT_MASK); ++ if (port) ++ sib->sib_sid_mask |= htonll(RDMA_IB_IP_PORT_MASK); ++} ++ ++static int ucma_convert_in6(int ps, struct sockaddr_ib **dst, socklen_t *dst_len, + struct sockaddr_in6 *src, socklen_t src_len) +{ + *dst = calloc(1, sizeof(struct sockaddr_ib)); @@ -172,10 +188,7 @@ index 2da35f0..9c43043 100755 + ib_addr_set(&(*dst)->sib_addr, src->sin6_addr.s6_addr32[0], + src->sin6_addr.s6_addr32[1], src->sin6_addr.s6_addr32[2], + src->sin6_addr.s6_addr32[3]); -+ if (src->sin6_port) { -+ (*dst)->sib_sid = htonll((uint64_t) ntohs(src->sin6_port)); -+ (*dst)->sib_sid_mask = htonll((uint64_t) 0x0000FFFF); -+ } ++ ucma_set_sid(ps, (struct sockaddr *) src, *dst); + (*dst)->sib_scope_id = src->sin6_scope_id; + + *dst_len = sizeof(struct sockaddr_ib); @@ -196,7 +209,7 @@ index 2da35f0..9c43043 100755 rai->ai_qp_type = hints->ai_qp_type; } else { switch (ai->ai_socktype) { -@@ -120,7 +157,7 @@ static int ucma_convert_to_rai(struct rdma_addrinfo *rai, +@@ -120,7 +168,7 @@ static int ucma_convert_to_rai(struct rdma_addrinfo *rai, } } @@ -205,7 +218,7 @@ index 2da35f0..9c43043 100755 rai->ai_port_space = hints->ai_port_space; } else { switch (ai->ai_protocol) { -@@ -133,43 +170,57 @@ static int ucma_convert_to_rai(struct rdma_addrinfo *rai, +@@ -133,43 +181,59 @@ static int ucma_convert_to_rai(struct rdma_addrinfo *rai, } } @@ -228,7 +241,8 @@ index 2da35f0..9c43043 100755 + if ((hints->ai_flags & RAI_FAMILY) && (hints->ai_family == AF_IB) && + (hints->ai_flags & RAI_NUMERICHOST)) { + rai->ai_family = AF_IB; -+ ret = ucma_convert_in6((struct sockaddr_ib **) &rai->ai_src_addr, ++ ret = ucma_convert_in6(rai->ai_port_space, ++ (struct sockaddr_ib **) &rai->ai_src_addr, + &rai->ai_src_len, + (struct sockaddr_in6 *) ai->ai_addr, + ai->ai_addrlen); @@ -247,7 +261,8 @@ index 2da35f0..9c43043 100755 + if ((hints->ai_flags & RAI_FAMILY) && (hints->ai_family == AF_IB) && + (hints->ai_flags & RAI_NUMERICHOST)) { + rai->ai_family = AF_IB; -+ ret = ucma_convert_in6((struct sockaddr_ib **) &rai->ai_dst_addr, ++ ret = ucma_convert_in6(rai->ai_port_space, ++ (struct sockaddr_ib **) &rai->ai_dst_addr, + &rai->ai_dst_len, + (struct sockaddr_in6 *) ai->ai_addr, + ai->ai_addrlen); @@ -287,7 +302,7 @@ index 2da35f0..9c43043 100755 if (ret) return ret; -@@ -178,18 +229,6 @@ static int ucma_convert_gai(char *node, char *service, +@@ -178,18 +242,6 @@ static int ucma_convert_gai(char *node, char *service, return ret; } @@ -306,7 +321,7 @@ index 2da35f0..9c43043 100755 int rdma_getaddrinfo(char *node, char *service, struct rdma_addrinfo *hints, struct rdma_addrinfo **res) -@@ -208,24 +247,27 @@ int rdma_getaddrinfo(char *node, char *service, +@@ -208,24 +260,27 @@ int rdma_getaddrinfo(char *node, char *service, if (!rai) return ERR(ENOMEM); @@ -354,14 +369,31 @@ index f460967..d168df6 100755 switch (addr->sa_family) { case AF_INET: diff --git a/src/cma.h b/src/cma.h -index 6c3df27..3c4388c 100644 +index 6c3df27..6a1cd75 100644 --- a/src/cma.h +++ b/src/cma.h -@@ -137,6 +137,7 @@ typedef struct { volatile int val; } atomic_t; +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2005-2010 Intel Corporation. All rights reserved. ++ * Copyright (c) 2005-2012 Intel Corporation. All rights reserved. + * + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU +@@ -45,6 +45,7 @@ + #include + + #include ++#include + + #ifdef INCLUDE_VALGRIND + # include +@@ -137,6 +138,9 @@ typedef struct { volatile int val; } atomic_t; #define atomic_get(v) ((v)->val) #define atomic_set(v, s) ((v)->val = s) +uint16_t ucma_get_port(struct sockaddr *addr); ++void ucma_set_sid(enum rdma_port_space ps, struct sockaddr *addr, ++ struct sockaddr_ib *sib); int ucma_max_qpsize(struct rdma_cm_id *id); int ucma_complete(struct rdma_cm_id *id); static inline int ERR(int err) diff --git a/patches/refresh-temp b/patches/refresh-temp deleted file mode 100644 index d66e963f..00000000 --- a/patches/refresh-temp +++ /dev/null @@ -1,121 +0,0 @@ -Bottom: a83c8510e141c14a58d3a80280254cbe08f2f4db -Top: 6b67ab7929dea022d63f78b08828f18a26afca60 -Author: Sean Hefty -Date: 2012-08-31 14:38:14 -0700 - -Refresh of addrinfo-af-ib - ---- - -diff --git a/src/acm.c b/src/acm.c -index 125d44a..3d8c912 100755 ---- a/src/acm.c -+++ b/src/acm.c -@@ -123,20 +123,6 @@ void ucma_ib_cleanup(void) - } - } - --static void ucma_set_sid(enum rdma_port_space ps, struct sockaddr *addr, -- struct sockaddr_ib *sib) --{ -- uint16_t port; -- -- port = addr ? ucma_get_port(addr) : 0; -- sib->sib_sid = htonll(((uint64_t) ps << 16) + ntohs(port)); -- -- if (ps) -- sib->sib_sid_mask = htonll(RDMA_IB_IP_PORT_MASK); -- if (port) -- sib->sib_sid_mask |= htonll(RDMA_IB_IP_PORT_MASK); --} -- - static int ucma_ib_set_addr(struct rdma_addrinfo *ib_rai, - struct rdma_addrinfo *rai) - { -diff --git a/src/addrinfo.c b/src/addrinfo.c -index 9c43043..0582955 100755 ---- a/src/addrinfo.c -+++ b/src/addrinfo.c -@@ -116,7 +116,21 @@ static int ucma_copy_addr(struct sockaddr **dst, socklen_t *dst_len, - return 0; - } - --static int ucma_convert_in6(struct sockaddr_ib **dst, socklen_t *dst_len, -+void ucma_set_sid(enum rdma_port_space ps, struct sockaddr *addr, -+ struct sockaddr_ib *sib) -+{ -+ uint16_t port; -+ -+ port = addr ? ucma_get_port(addr) : 0; -+ sib->sib_sid = htonll(((uint64_t) ps << 16) + ntohs(port)); -+ -+ if (ps) -+ sib->sib_sid_mask = htonll(RDMA_IB_IP_PORT_MASK); -+ if (port) -+ sib->sib_sid_mask |= htonll(RDMA_IB_IP_PORT_MASK); -+} -+ -+static int ucma_convert_in6(int ps, struct sockaddr_ib **dst, socklen_t *dst_len, - struct sockaddr_in6 *src, socklen_t src_len) - { - *dst = calloc(1, sizeof(struct sockaddr_ib)); -@@ -129,10 +143,7 @@ static int ucma_convert_in6(struct sockaddr_ib **dst, socklen_t *dst_len, - ib_addr_set(&(*dst)->sib_addr, src->sin6_addr.s6_addr32[0], - src->sin6_addr.s6_addr32[1], src->sin6_addr.s6_addr32[2], - src->sin6_addr.s6_addr32[3]); -- if (src->sin6_port) { -- (*dst)->sib_sid = htonll((uint64_t) ntohs(src->sin6_port)); -- (*dst)->sib_sid_mask = htonll((uint64_t) 0x0000FFFF); -- } -+ ucma_set_sid(ps, (struct sockaddr *) src, *dst); - (*dst)->sib_scope_id = src->sin6_scope_id; - - *dst_len = sizeof(struct sockaddr_ib); -@@ -178,7 +189,8 @@ static int ucma_convert_to_rai(struct rdma_addrinfo *rai, - if ((hints->ai_flags & RAI_FAMILY) && (hints->ai_family == AF_IB) && - (hints->ai_flags & RAI_NUMERICHOST)) { - rai->ai_family = AF_IB; -- ret = ucma_convert_in6((struct sockaddr_ib **) &rai->ai_src_addr, -+ ret = ucma_convert_in6(rai->ai_port_space, -+ (struct sockaddr_ib **) &rai->ai_src_addr, - &rai->ai_src_len, - (struct sockaddr_in6 *) ai->ai_addr, - ai->ai_addrlen); -@@ -194,7 +206,8 @@ static int ucma_convert_to_rai(struct rdma_addrinfo *rai, - if ((hints->ai_flags & RAI_FAMILY) && (hints->ai_family == AF_IB) && - (hints->ai_flags & RAI_NUMERICHOST)) { - rai->ai_family = AF_IB; -- ret = ucma_convert_in6((struct sockaddr_ib **) &rai->ai_dst_addr, -+ ret = ucma_convert_in6(rai->ai_port_space, -+ (struct sockaddr_ib **) &rai->ai_dst_addr, - &rai->ai_dst_len, - (struct sockaddr_in6 *) ai->ai_addr, - ai->ai_addrlen); -diff --git a/src/cma.h b/src/cma.h -index 3c4388c..6a1cd75 100644 ---- a/src/cma.h -+++ b/src/cma.h -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2005-2010 Intel Corporation. All rights reserved. -+ * Copyright (c) 2005-2012 Intel Corporation. All rights reserved. - * - * This software is available to you under a choice of one of two - * licenses. You may choose to be licensed under the terms of the GNU -@@ -45,6 +45,7 @@ - #include - - #include -+#include - - #ifdef INCLUDE_VALGRIND - # include -@@ -138,6 +139,8 @@ typedef struct { volatile int val; } atomic_t; - #define atomic_set(v, s) ((v)->val = s) - - uint16_t ucma_get_port(struct sockaddr *addr); -+void ucma_set_sid(enum rdma_port_space ps, struct sockaddr *addr, -+ struct sockaddr_ib *sib); - int ucma_max_qpsize(struct rdma_cm_id *id); - int ucma_complete(struct rdma_cm_id *id); - static inline int ERR(int err) -- 2.46.0