summaryrefslogtreecommitdiff
path: root/net/smc/smc_wr.h
diff options
context:
space:
mode:
authorUrsula Braun <ubraun@linux.vnet.ibm.com>2017-01-09 18:55:22 +0300
committerDavid S. Miller <davem@davemloft.net>2017-01-10 00:07:40 +0300
commit5f08318f617b05b6ee389d8bd174c7af921ebf19 (patch)
treea9cb73bf47554bd92ad3e9861a49683df2c11ab9 /net/smc/smc_wr.h
parent9bf9abead28abaf11d0776b6e0c5d34b6525e846 (diff)
downloadlinux-5f08318f617b05b6ee389d8bd174c7af921ebf19.tar.xz
smc: connection data control (CDC)
send and receive CDC messages (via IB message send and CQE) Signed-off-by: Ursula Braun <ubraun@linux.vnet.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/smc/smc_wr.h')
-rw-r--r--net/smc/smc_wr.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/net/smc/smc_wr.h b/net/smc/smc_wr.h
index 0b626728ce44..124f857ddaa8 100644
--- a/net/smc/smc_wr.h
+++ b/net/smc/smc_wr.h
@@ -36,6 +36,11 @@ typedef void (*smc_wr_tx_handler)(struct smc_wr_tx_pend_priv *,
struct smc_link *,
enum ib_wc_status);
+typedef bool (*smc_wr_tx_filter)(struct smc_wr_tx_pend_priv *,
+ unsigned long);
+
+typedef void (*smc_wr_tx_dismisser)(struct smc_wr_tx_pend_priv *);
+
struct smc_wr_rx_handler {
struct hlist_node list; /* hash table collision resolution */
void (*handler)(struct ib_wc *, void *);
@@ -87,6 +92,10 @@ int smc_wr_tx_put_slot(struct smc_link *link,
int smc_wr_tx_send(struct smc_link *link,
struct smc_wr_tx_pend_priv *wr_pend_priv);
void smc_wr_tx_cq_handler(struct ib_cq *ib_cq, void *cq_context);
+void smc_wr_tx_dismiss_slots(struct smc_link *lnk, u8 wr_rx_hdr_type,
+ smc_wr_tx_filter filter,
+ smc_wr_tx_dismisser dismisser,
+ unsigned long data);
int smc_wr_rx_register_handler(struct smc_wr_rx_handler *handler);
int smc_wr_rx_post_init(struct smc_link *link);