summaryrefslogtreecommitdiffstats
path: root/src/plugins/rdma/rdma_mlx5dv.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/rdma/rdma_mlx5dv.h')
-rw-r--r--src/plugins/rdma/rdma_mlx5dv.h22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/plugins/rdma/rdma_mlx5dv.h b/src/plugins/rdma/rdma_mlx5dv.h
index 43d9002d050..efcefe7fbf7 100644
--- a/src/plugins/rdma/rdma_mlx5dv.h
+++ b/src/plugins/rdma/rdma_mlx5dv.h
@@ -21,7 +21,8 @@
#undef always_inline
#include <infiniband/mlx5dv.h>
#define always_inline static_always_inline
-
+#include <vppinfra/types.h>
+#include <vppinfra/error.h>
/* CQE flags - bits 16-31 of qword at offset 0x1c */
#define CQE_FLAG_L4_OK 10
#define CQE_FLAG_L3_OK 9
@@ -35,6 +36,11 @@
#define CQE_FLAG_L3_HDR_TYPE_IP6 2
#define CQE_FLAG_IP_EXT_OPTS 1
+/* CQE byte count (Striding RQ) */
+#define CQE_BC_FILLER_MASK (1 << 31)
+#define CQE_BC_CONSUMED_STRIDES_SHIFT (16)
+#define CQE_BC_CONSUMED_STRIDES_MASK (0x3fff << CQE_BC_CONSUMED_STRIDES_SHIFT)
+#define CQE_BC_BYTE_COUNT_MASK (0xffff)
typedef struct
{
struct
@@ -47,7 +53,9 @@ typedef struct
u32 byte_cnt;
u32 mini_cqe_num;
};
- u8 pad3[15];
+ u8 pad3[12];
+ u16 wqe_counter;
+ u8 signature;
u8 opcode_cqefmt_se_owner;
};
} mlx5dv_cqe_t;
@@ -68,7 +76,15 @@ typedef struct
{
u64 dsz_and_lkey;
u64 addr;
-} mlx5dv_rwq_t;
+} mlx5dv_wqe_ds_t; /* a WQE data segment */
+
+typedef struct
+{
+ u8 rsvd0[2];
+ u16 next_wqe_index;
+ u8 signature;
+ u8 rsvd1[11];
+} mlx5dv_wqe_srq_next_t;
#define foreach_cqe_rx_field \
_(0x1c, 26, 26, l4_ok) \