linux-nvme.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: swise@opengridcomputing.com (Steve Wise)
Subject: [PATCH v5 2/8] rdma_cm: add rdma_is_consumer_reject() helper function
Date: Wed, 26 Oct 2016 12:36:47 -0700	[thread overview]
Message-ID: <43be5a7d10e325a5c0a735539c160355029d08e2.1477510827.git.swise@opengridcomputing.com> (raw)
In-Reply-To: <cover.1477510827.git.swise@opengridcomputing.com>

Return true if the peer consumer application rejected the
connection attempt.

Reviewed-by: Sagi Grimberg <sagi at grimberg.me>
Reviewed-by: Christoph Hellwig <hch at lst.de>
Signed-off-by: Steve Wise <swise at opengridcomputing.com>
---
 drivers/infiniband/core/cma.c | 13 +++++++++++++
 include/rdma/rdma_cm.h        |  7 +++++++
 2 files changed, 20 insertions(+)

diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 427f74e..71d2a06 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -115,6 +115,19 @@ const char *__attribute_const__ rdma_reject_msg(struct rdma_cm_id *id,
 }
 EXPORT_SYMBOL(rdma_reject_msg);
 
+bool rdma_is_consumer_reject(struct rdma_cm_id *id, int reason)
+{
+	if (rdma_ib_or_roce(id->device, id->port_num))
+		return reason == IB_CM_REJ_CONSUMER_DEFINED;
+
+	if (rdma_protocol_iwarp(id->device, id->port_num))
+		return reason == -ECONNREFUSED;
+
+	WARN_ON_ONCE(1);
+	return false;
+}
+EXPORT_SYMBOL(rdma_is_consumer_reject);
+
 static void cma_add_one(struct ib_device *device);
 static void cma_remove_one(struct ib_device *device, void *client_data);
 
diff --git a/include/rdma/rdma_cm.h b/include/rdma/rdma_cm.h
index f11a768..62039c2 100644
--- a/include/rdma/rdma_cm.h
+++ b/include/rdma/rdma_cm.h
@@ -395,5 +395,12 @@ __be64 rdma_get_service_id(struct rdma_cm_id *id, struct sockaddr *addr);
  */
 const char *__attribute_const__ rdma_reject_msg(struct rdma_cm_id *id,
 						int reason);
+/**
+ * rdma_is_consumer_reject - return true if the consumer rejected the connect
+ *                           request.
+ * @id: Communication identifier that received the REJECT event.
+ * @reason: Value returned in the REJECT event status field.
+ */
+bool rdma_is_consumer_reject(struct rdma_cm_id *id, int reason);
 
 #endif /* RDMA_CM_H */
-- 
2.7.0

  parent reply	other threads:[~2016-10-26 19:36 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-26 19:40 [PATCH v5 0/8] connect reject event helpers Steve Wise
2016-10-26 19:36 ` [PATCH v5 1/8] rdma_cm: add rdma_reject_msg() helper function Steve Wise
2016-10-26 20:02   ` Bart Van Assche
2016-10-26 19:36 ` [PATCH v5 3/8] rdma_cm: add rdma_consumer_reject_data " Steve Wise
2016-10-26 20:03   ` Bart Van Assche
2016-10-26 19:36 ` Steve Wise [this message]
2016-10-26 20:02   ` [PATCH v5 2/8] rdma_cm: add rdma_is_consumer_reject() " Bart Van Assche
2016-10-26 19:36 ` [PATCH v5 5/8] ib_iser: log the connection reject message Steve Wise
2016-10-27 12:49   ` Christoph Hellwig
2016-10-26 19:36 ` [PATCH v5 4/8] nvme-rdma: use rdma connection reject helper functions Steve Wise
2016-10-26 20:04   ` Bart Van Assche
2016-10-26 19:36 ` [PATCH v5 7/8] ib_isert: log the connection reject message Steve Wise
2016-10-27 12:50   ` Christoph Hellwig
2016-10-26 19:36 ` [PATCH v5 6/8] rds_rdma: " Steve Wise
2016-10-26 19:36 ` [PATCH v5 8/8] nvmet_rdma: " Steve Wise
2016-10-27 12:50   ` Christoph Hellwig
2016-11-29 17:05 ` [PATCH v5 0/8] connect reject event helpers Steve Wise
2016-12-14 16:38   ` Doug Ledford

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=43be5a7d10e325a5c0a735539c160355029d08e2.1477510827.git.swise@opengridcomputing.com \
    --to=swise@opengridcomputing.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).