From 758c6d2ab7b1a09d49caccbe424c9f49958b59da Mon Sep 17 00:00:00 2001 From: Sean Hefty Date: Tue, 12 Jun 2012 12:43:39 -0700 Subject: [PATCH] refresh (create temporary patch) --- meta | 5 ++-- patches/refresh-temp | 69 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 patches/refresh-temp diff --git a/meta b/meta index 3281125e..b4a7f083 100644 --- a/meta +++ b/meta @@ -1,9 +1,10 @@ Version: 1 -Previous: f4789fce029417f5b42b70d44909eaccd60c009b -Head: f88a811e7d0631b6a4396e9797bd971ddb8aa1ee +Previous: 614e1e26ce4bfbe85464f4b0943846585f927136 +Head: a71c8b60bc12c2c1023c7caac295e868fdf57022 Applied: rs-man: dba7b4833fd1208813028483451d389cbeecf02a v6only: f88a811e7d0631b6a4396e9797bd971ddb8aa1ee + refresh-temp: a71c8b60bc12c2c1023c7caac295e868fdf57022 Unapplied: rs-1sge: 8ec392829399dec7ed5c608b8697a482e5faa2de ip6-opt: 7e43a759255e9890d1e41f1edf71792836f53941 diff --git a/patches/refresh-temp b/patches/refresh-temp new file mode 100644 index 00000000..1302f05d --- /dev/null +++ b/patches/refresh-temp @@ -0,0 +1,69 @@ +Bottom: b2be28c058bcea1f57039dd4966c64ac692e6bfa +Top: 44f8f1d4ce3fc0356402ae05bbe8b63c973a4865 +Author: Sean Hefty +Date: 2012-06-12 12:43:39 -0700 + +Refresh of v6only + +--- + +diff --git a/include/rdma/rdma_cma.h b/include/rdma/rdma_cma.h +index c0f83b1..1487f8f 100755 +--- a/include/rdma/rdma_cma.h ++++ b/include/rdma/rdma_cma.h +@@ -650,6 +650,7 @@ enum { + enum { + RDMA_OPTION_ID_TOS = 0, /* uint8_t: RFC 2474 */ + RDMA_OPTION_ID_REUSEADDR = 1, /* int: ~SO_REUSEADDR */ ++ RDMA_OPTION_ID_AFONLY = 2, /* int: ~IPV6_V6ONLY */ + RDMA_OPTION_IB_PATH = 1 /* struct ibv_path_data[] */ + }; + +diff --git a/src/rsocket.c b/src/rsocket.c +index a3c2c6a..860c63e 100644 +--- a/src/rsocket.c ++++ b/src/rsocket.c +@@ -161,6 +161,7 @@ struct rsocket { + long fd_flags; + uint64_t so_opts; + uint64_t tcp_opts; ++ uint64_t ipv6_opts; + enum rs_state state; + int cq_armed; + int retries; +@@ -1817,6 +1818,18 @@ int rsetsockopt(int socket, int level, int optname, + break; + } + break; ++ case IPPROTO_IPV6: ++ opts = &rs->ipv6_opts; ++ switch (optname) { ++ case IPV6_V6ONLY: ++ ret = rdma_set_option(rs->cm_id, RDMA_OPTION_ID, ++ RDMA_OPTION_ID_AFONLY, ++ (void *) optval, optlen); ++ opt_on = *(int *) optval; ++ break; ++ default: ++ break; ++ } + case SOL_RDMA: + if (rs->state > rs_listening) { + ret = ERR(EINVAL); +@@ -1910,6 +1923,16 @@ int rgetsockopt(int socket, int level, int optname, + break; + } + break; ++ case IPPROTO_IPV6: ++ switch (optname) { ++ case IPV6_V6ONLY: ++ *((int *) optval) = !!(rs->ipv6_opts & (1 << optname)); ++ *optlen = sizeof(int); ++ break; ++ default: ++ ret = ENOTSUP; ++ break; ++ } + case SOL_RDMA: + switch (optname) { + case RDMA_SQSIZE: -- 2.41.0