From f5a41da8c5488903f7c57cec220f9392c70b19f2 Mon Sep 17 00:00:00 2001 From: Sean Hefty Date: Mon, 17 Sep 2012 16:13:50 -0700 Subject: [PATCH] Refresh of xrc_qp --- include/infiniband/kern-abi.h | 5 +++++ include/infiniband/verbs.h | 32 ++++++++++++++++++++++++++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/include/infiniband/kern-abi.h b/include/infiniband/kern-abi.h index 3d72fa7..b6d5ce9 100644 --- a/include/infiniband/kern-abi.h +++ b/include/infiniband/kern-abi.h @@ -617,6 +617,11 @@ struct ibv_kern_send_wr { __u32 remote_qkey; __u32 reserved; } ud; + struct { + __u64 reserved[3]; + __u32 reserved2; + __u32 remote_srqn; + } xrc; } wr; }; diff --git a/include/infiniband/verbs.h b/include/infiniband/verbs.h index 58d6927..1d03c4b 100644 --- a/include/infiniband/verbs.h +++ b/include/infiniband/verbs.h @@ -462,7 +462,9 @@ struct ibv_srq_init_attr_ex { enum ibv_qp_type { IBV_QPT_RC = 2, IBV_QPT_UC, - IBV_QPT_UD + IBV_QPT_UD, + IBV_QPT_XRC_SEND = 9, + IBV_QPT_XRC_RECV }; struct ibv_qp_cap { @@ -483,6 +485,24 @@ struct ibv_qp_init_attr { int sq_sig_all; }; +enum ibv_qp_init_attr_mask { + IBV_QP_INIT_ATTR_XRCD = 1 << 0, + IBV_QP_INIT_ATTR_RESERVED = 1 << 1 +}; + +struct ibv_qp_init_attr_ex { + void *qp_context; + struct ibv_cq *send_cq; + struct ibv_cq *recv_cq; + struct ibv_srq *srq; + struct ibv_qp_cap cap; + enum ibv_qp_type qp_type; + int sq_sig_all; + + uint64_t comp_mask; + struct ibv_xrcd *xrcd; +}; + enum ibv_qp_attr_mask { IBV_QP_STATE = 1 << 0, IBV_QP_CUR_STATE = 1 << 1, @@ -598,6 +618,11 @@ struct ibv_send_wr { uint32_t remote_qpn; uint32_t remote_qkey; } ud; + struct { + uint64_t reserved[3]; + uint32_t reserved2; + uint32_t remote_srqn; + }; } wr; }; @@ -642,8 +667,11 @@ struct ibv_srq { uint32_t srq_num; }; +// set device xrc support +//XXX TO DO: check mask for all calls enum ibv_qp_mask { - IBV_QP_RESERVED = 1 << 0 + IBV_QP_XRCD = 1 << 0, + IBV_QP_RESERVED = 1 << 1 }; struct ibv_qp { -- 2.46.0