qed: Add srq core support for RoCE and iWARP

This patch adds support for configuring SRQ and provides the necessary
APIs for rdma upper layer driver (qedr) to enable the SRQ feature.

Signed-off-by: Michal Kalderon <michal.kalderon@cavium.com>
Signed-off-by: Ariel Elior <ariel.elior@cavium.com>
Signed-off-by: Yuval Bason <yuval.bason@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Yuval Bason
2018-06-03 19:13:07 +03:00
committed by David S. Miller
parent 7a9ee41b83
commit 39dbc646fd
9 changed files with 234 additions and 8 deletions

View File

@@ -485,7 +485,9 @@ enum qed_iwarp_event_type {
QED_IWARP_EVENT_ACTIVE_MPA_REPLY,
QED_IWARP_EVENT_LOCAL_ACCESS_ERROR,
QED_IWARP_EVENT_REMOTE_OPERATION_ERROR,
QED_IWARP_EVENT_TERMINATE_RECEIVED
QED_IWARP_EVENT_TERMINATE_RECEIVED,
QED_IWARP_EVENT_SRQ_LIMIT,
QED_IWARP_EVENT_SRQ_EMPTY,
};
enum qed_tcp_ip_version {
@@ -646,6 +648,14 @@ struct qed_rdma_ops {
int (*rdma_alloc_tid)(void *rdma_cxt, u32 *itid);
void (*rdma_free_tid)(void *rdma_cxt, u32 itid);
int (*rdma_create_srq)(void *rdma_cxt,
struct qed_rdma_create_srq_in_params *iparams,
struct qed_rdma_create_srq_out_params *oparams);
int (*rdma_destroy_srq)(void *rdma_cxt,
struct qed_rdma_destroy_srq_in_params *iparams);
int (*rdma_modify_srq)(void *rdma_cxt,
struct qed_rdma_modify_srq_in_params *iparams);
int (*ll2_acquire_connection)(void *rdma_cxt,
struct qed_ll2_acquire_data *data);