summaryrefslogtreecommitdiffstats
path: root/ctdb/ib/ibwrapper_internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'ctdb/ib/ibwrapper_internal.h')
-rw-r--r--ctdb/ib/ibwrapper_internal.h19
1 files changed, 14 insertions, 5 deletions
diff --git a/ctdb/ib/ibwrapper_internal.h b/ctdb/ib/ibwrapper_internal.h
index b819c483d3d..6e34917755b 100644
--- a/ctdb/ib/ibwrapper_internal.h
+++ b/ctdb/ib/ibwrapper_internal.h
@@ -22,10 +22,11 @@
*/
struct ibw_opts {
- int max_send_wr;
- int max_recv_wr;
- int avg_send_size;
- int recv_bufsize;
+ uint32_t max_send_wr;
+ uint32_t max_recv_wr;
+ uint32_t avg_send_size;
+ uint32_t recv_bufsize;
+ uint32_t recv_threshold;
};
struct ibw_wr {
@@ -56,6 +57,13 @@ struct ibw_ctx_priv {
long pagesize; /* sysconf result for memalign */
};
+struct ibw_part {
+ char *buf; /* talloced memory buffer */
+ uint32_t bufsize; /* allocated size of buf - always grows */
+ uint32_t len; /* message part length */
+ uint32_t to_read; /* 4 or *((uint32_t)buf) if len>=sizeof(uint32_t) */
+};
+
struct ibw_conn_priv {
struct ibv_comp_channel *verbs_channel;
struct fd_event *verbs_channel_event;
@@ -74,6 +82,7 @@ struct ibw_conn_priv {
/* buf_recv is a ring buffer */
char *buf_recv; /* max_recv_wr * avg_recv_size */
struct ibv_mr *mr_recv;
- int recv_index; /* index of the next recv buffer */
+ int recv_index; /* index of the next recv buffer when refilling */
+ struct ibw_part part;
};