RDMA/bnxt_re: Update missing hsi data structures
Adding fast path support data structure into hardware HSI. These structures are header only definition of RQE/SRQE/SQE. This is to help calculating the size of hardware wqe size. Link: https://lore.kernel.org/r/1585851136-2316-3-git-send-email-devesh.sharma@broadcom.com Signed-off-by: Devesh Sharma <devesh.sharma@broadcom.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
Родитель
99bf84e24e
Коммит
c78671a4e6
|
@ -210,6 +210,20 @@ struct sq_send {
|
|||
__le32 data[24];
|
||||
};
|
||||
|
||||
/* sq_send_hdr (size:256b/32B) */
|
||||
struct sq_send_hdr {
|
||||
u8 wqe_type;
|
||||
u8 flags;
|
||||
u8 wqe_size;
|
||||
u8 reserved8_1;
|
||||
__le32 inv_key_or_imm_data;
|
||||
__le32 length;
|
||||
__le32 q_key;
|
||||
__le32 dst_qp;
|
||||
__le32 avid;
|
||||
__le64 reserved64;
|
||||
};
|
||||
|
||||
/* Send Raw Ethernet and QP1 SQ WQE (40 bytes) */
|
||||
struct sq_send_raweth_qp1 {
|
||||
u8 wqe_type;
|
||||
|
@ -265,6 +279,21 @@ struct sq_send_raweth_qp1 {
|
|||
__le32 data[24];
|
||||
};
|
||||
|
||||
/* sq_send_raweth_qp1_hdr (size:256b/32B) */
|
||||
struct sq_send_raweth_qp1_hdr {
|
||||
u8 wqe_type;
|
||||
u8 flags;
|
||||
u8 wqe_size;
|
||||
u8 reserved8;
|
||||
__le16 lflags;
|
||||
__le16 cfa_action;
|
||||
__le32 length;
|
||||
__le32 reserved32_1;
|
||||
__le32 cfa_meta;
|
||||
__le32 reserved32_2;
|
||||
__le64 reserved64;
|
||||
};
|
||||
|
||||
/* RDMA SQ WQE (40 bytes) */
|
||||
struct sq_rdma {
|
||||
u8 wqe_type;
|
||||
|
@ -288,6 +317,20 @@ struct sq_rdma {
|
|||
__le32 data[24];
|
||||
};
|
||||
|
||||
/* sq_rdma_hdr (size:256b/32B) */
|
||||
struct sq_rdma_hdr {
|
||||
u8 wqe_type;
|
||||
u8 flags;
|
||||
u8 wqe_size;
|
||||
u8 reserved8;
|
||||
__le32 imm_data;
|
||||
__le32 length;
|
||||
__le32 reserved32_1;
|
||||
__le64 remote_va;
|
||||
__le32 remote_key;
|
||||
__le32 reserved32_2;
|
||||
};
|
||||
|
||||
/* Atomic SQ WQE (40 bytes) */
|
||||
struct sq_atomic {
|
||||
u8 wqe_type;
|
||||
|
@ -307,6 +350,17 @@ struct sq_atomic {
|
|||
__le32 data[24];
|
||||
};
|
||||
|
||||
/* sq_atomic_hdr (size:256b/32B) */
|
||||
struct sq_atomic_hdr {
|
||||
u8 wqe_type;
|
||||
u8 flags;
|
||||
__le16 reserved16;
|
||||
__le32 remote_key;
|
||||
__le64 remote_va;
|
||||
__le64 swap_data;
|
||||
__le64 cmp_data;
|
||||
};
|
||||
|
||||
/* Local Invalidate SQ WQE (40 bytes) */
|
||||
struct sq_localinvalidate {
|
||||
u8 wqe_type;
|
||||
|
@ -324,6 +378,16 @@ struct sq_localinvalidate {
|
|||
__le32 data[24];
|
||||
};
|
||||
|
||||
/* sq_localinvalidate_hdr (size:256b/32B) */
|
||||
struct sq_localinvalidate_hdr {
|
||||
u8 wqe_type;
|
||||
u8 flags;
|
||||
__le16 reserved16;
|
||||
__le32 inv_l_key;
|
||||
__le64 reserved64;
|
||||
u8 reserved128[16];
|
||||
};
|
||||
|
||||
/* FR-PMR SQ WQE (40 bytes) */
|
||||
struct sq_fr_pmr {
|
||||
u8 wqe_type;
|
||||
|
@ -380,6 +444,21 @@ struct sq_fr_pmr {
|
|||
__le32 data[24];
|
||||
};
|
||||
|
||||
/* sq_fr_pmr_hdr (size:256b/32B) */
|
||||
struct sq_fr_pmr_hdr {
|
||||
u8 wqe_type;
|
||||
u8 flags;
|
||||
u8 access_cntl;
|
||||
u8 zero_based_page_size_log;
|
||||
__le32 l_key;
|
||||
u8 length[5];
|
||||
u8 reserved8_1;
|
||||
u8 reserved8_2;
|
||||
u8 numlevels_pbl_page_size_log;
|
||||
__le64 pblptr;
|
||||
__le64 va;
|
||||
};
|
||||
|
||||
/* Bind SQ WQE (40 bytes) */
|
||||
struct sq_bind {
|
||||
u8 wqe_type;
|
||||
|
@ -417,6 +496,22 @@ struct sq_bind {
|
|||
#define SQ_BIND_DATA_SFT 0
|
||||
};
|
||||
|
||||
/* sq_bind_hdr (size:256b/32B) */
|
||||
struct sq_bind_hdr {
|
||||
u8 wqe_type;
|
||||
u8 flags;
|
||||
u8 access_cntl;
|
||||
u8 reserved8_1;
|
||||
u8 mw_type_zero_based;
|
||||
u8 reserved8_2;
|
||||
__le16 reserved16;
|
||||
__le32 parent_l_key;
|
||||
__le32 l_key;
|
||||
__le64 va;
|
||||
u8 length[5];
|
||||
u8 reserved24[3];
|
||||
};
|
||||
|
||||
/* RQ/SRQ WQE Structures */
|
||||
/* RQ/SRQ WQE (40 bytes) */
|
||||
struct rq_wqe {
|
||||
|
@ -435,6 +530,17 @@ struct rq_wqe {
|
|||
__le32 data[24];
|
||||
};
|
||||
|
||||
/* rq_wqe_hdr (size:256b/32B) */
|
||||
struct rq_wqe_hdr {
|
||||
u8 wqe_type;
|
||||
u8 flags;
|
||||
u8 wqe_size;
|
||||
u8 reserved8;
|
||||
__le32 reserved32;
|
||||
__le32 wr_id[2];
|
||||
u8 reserved128[16];
|
||||
};
|
||||
|
||||
/* CQ CQE Structures */
|
||||
/* Base CQE (32 bytes) */
|
||||
struct cq_base {
|
||||
|
|
Загрузка…
Ссылка в новой задаче