All of lore.kernel.org
 help / color / mirror / Atom feed
From: Leon Romanovsky <leon@kernel.org>
To: Doug Ledford <dledford@redhat.com>, Jason Gunthorpe <jgg@mellanox.com>
Cc: Leon Romanovsky <leonro@mellanox.com>,
	RDMA mailing list <linux-rdma@vger.kernel.org>
Subject: [PATCH rdma-next 10/43] RDMA/cm: Alternate Path Response (APR) message definitions
Date: Sun, 27 Oct 2019 09:05:48 +0200	[thread overview]
Message-ID: <20191027070621.11711-11-leon@kernel.org> (raw)
In-Reply-To: <20191027070621.11711-1-leon@kernel.org>

From: Leon Romanovsky <leonro@mellanox.com>

Add APR definitions as it is written in IBTA release 1.3 volume 1.

Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
---
 drivers/infiniband/core/cm.c      |  6 +++---
 drivers/infiniband/core/cm_msgs.h | 20 ++++++++++++++++++--
 include/rdma/ib_cm.h              |  1 -
 3 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c
index a735481d85f0..e72fc4071313 100644
--- a/drivers/infiniband/core/cm.c
+++ b/drivers/infiniband/core/cm.c
@@ -3320,8 +3320,8 @@ int ib_send_cm_apr(struct ib_cm_id *cm_id,
 	unsigned long flags;
 	int ret;
 
-	if ((private_data && private_data_len > IB_CM_APR_PRIVATE_DATA_SIZE) ||
-	    (info && info_length > IB_CM_APR_INFO_LENGTH))
+	if ((private_data && private_data_len > CM_APR_PRIVATE_DATA_SIZE) ||
+	    (info && info_length > CM_APR_ADDITIONAL_INFORMATION_SIZE))
 		return -EINVAL;
 
 	cm_id_priv = container_of(cm_id, struct cm_id_private, id);
@@ -3375,7 +3375,7 @@ static int cm_apr_handler(struct cm_work *work)
 	work->cm_event.param.apr_rcvd.apr_info = &apr_msg->info;
 	work->cm_event.param.apr_rcvd.info_len = apr_msg->info_length;
 	work->cm_event.private_data = &apr_msg->private_data;
-	work->cm_event.private_data_len = IB_CM_APR_PRIVATE_DATA_SIZE;
+	work->cm_event.private_data_len = CM_APR_PRIVATE_DATA_SIZE;
 
 	spin_lock_irq(&cm_id_priv->lock);
 	if (cm_id_priv->id.state != IB_CM_ESTABLISHED ||
diff --git a/drivers/infiniband/core/cm_msgs.h b/drivers/infiniband/core/cm_msgs.h
index 76a5053933e9..656641e6f447 100644
--- a/drivers/infiniband/core/cm_msgs.h
+++ b/drivers/infiniband/core/cm_msgs.h
@@ -302,6 +302,22 @@
 #define CM_LAP_PRIVATE_DATA_OFFSET 64
 #define CM_LAP_PRIVATE_DATA_SIZE 168
 
+#define CM_APR_LOCAL_COMM_ID_OFFSET 0
+#define CM_APR_LOCAL_COMM_ID_MASK GENMASK(31, 0)
+#define CM_APR_REMOTE_COMM_ID_OFFSET 4
+#define CM_APR_REMOTE_COMM_ID_MASK GENMASK(31, 0)
+#define CM_APR_ADDITIONAL_INFORMATION_LENGTH_OFFSET 8
+#define CM_APR_ADDITIONAL_INFORMATION_LENGTH_MASK GENMASK(7, 0)
+
+#define CM_APR_AR_STATUS_OFFSET 9
+#define CM_APR_AR_STATUS_MASK GENMASK(7, 0)
+
+#define CM_APR_ADDITIONAL_INFORMATION_OFFSET 12
+#define CM_APR_ADDITIONAL_INFORMATION_SIZE 72
+
+#define CM_APR_PRIVATE_DATA_OFFSET 84
+#define CM_APR_PRIVATE_DATA_SIZE 148
+
 struct cm_req_msg {
 	struct ib_mad_hdr hdr;
 
@@ -1039,9 +1055,9 @@ struct cm_apr_msg {
 	u8 info_length;
 	u8 ap_status;
 	__be16 rsvd;
-	u8 info[IB_CM_APR_INFO_LENGTH];
+	u8 info[CM_APR_ADDITIONAL_INFORMATION_SIZE];
 
-	u8 private_data[IB_CM_APR_PRIVATE_DATA_SIZE];
+	u8 private_data[CM_APR_PRIVATE_DATA_SIZE];
 } __packed;
 
 struct cm_sidr_req_msg {
diff --git a/include/rdma/ib_cm.h b/include/rdma/ib_cm.h
index 08d3217bdaf1..18a3e2ee0758 100644
--- a/include/rdma/ib_cm.h
+++ b/include/rdma/ib_cm.h
@@ -65,7 +65,6 @@ enum ib_cm_event_type {
 };
 
 enum ib_cm_data_size {
-	IB_CM_APR_PRIVATE_DATA_SIZE	 = 148,
 	IB_CM_APR_INFO_LENGTH		 = 72,
 	IB_CM_SIDR_REQ_PRIVATE_DATA_SIZE = 216,
 	IB_CM_SIDR_REP_PRIVATE_DATA_SIZE = 136,
-- 
2.20.1


  parent reply	other threads:[~2019-10-27  7:07 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-27  7:05 [PATCH rdma-next 00/43] Convert CM to bitmaps Leon Romanovsky
2019-10-27  7:05 ` [PATCH rdma-next 01/43] RDMA/cm: Add naive SET/GET implementations to hide CM wire format Leon Romanovsky
2019-11-15 20:45   ` Jason Gunthorpe
2019-11-18 13:04     ` Leon Romanovsky
2019-11-18 13:43       ` Jason Gunthorpe
2019-10-27  7:05 ` [PATCH rdma-next 02/43] RDMA/cm: Request For Communication (REQ) message definitions Leon Romanovsky
2019-10-27  7:05 ` [PATCH rdma-next 03/43] RDMA/cm: Message Receipt Acknowledgment (MRA) " Leon Romanovsky
2019-10-27  7:05 ` [PATCH rdma-next 04/43] RDMA/cm: Reject (REJ) " Leon Romanovsky
2019-10-27  7:05 ` [PATCH rdma-next 05/43] RDMA/cm: Reply To Request for communication (REP) definitions Leon Romanovsky
2019-10-27  7:05 ` [PATCH rdma-next 06/43] RDMA/cm: Ready To Use (RTU) definitions Leon Romanovsky
2019-10-27  7:05 ` [PATCH rdma-next 07/43] RDMA/cm: Request For Communication Release (DREQ) definitions Leon Romanovsky
2019-10-27  7:05 ` [PATCH rdma-next 08/43] RDMA/cm: Reply To Request For Communication Release (DREP) definitions Leon Romanovsky
2019-10-27  7:05 ` [PATCH rdma-next 09/43] RDMA/cm: Load Alternate Path (LAP) definitions Leon Romanovsky
2019-10-27  7:05 ` Leon Romanovsky [this message]
2019-10-27  7:05 ` [PATCH rdma-next 11/43] RDMA/cm: Service ID Resolution Request (SIDR_REQ) definitions Leon Romanovsky
2019-10-27  7:05 ` [PATCH rdma-next 12/43] RDMA/cm: Service ID Resolution Response (SIDR_REP) definitions Leon Romanovsky
2019-10-27  7:05 ` [PATCH rdma-next 13/43] RDMA/cm: Convert QPN and EECN to be u32 variables Leon Romanovsky
2019-10-27  7:05 ` [PATCH rdma-next 14/43] RDMA/cm: Convert REQ responded resources to the new scheme Leon Romanovsky
2019-10-27  7:05 ` [PATCH rdma-next 15/43] RDMA/cm: Convert REQ initiator depth " Leon Romanovsky
2019-10-27  7:05 ` [PATCH rdma-next 16/43] RDMA/cm: Convert REQ remote response timeout Leon Romanovsky
2019-10-27  7:05 ` [PATCH rdma-next 17/43] RDMA/cm: Simplify QP type to wire protocol translation Leon Romanovsky
2019-10-27  7:05 ` [PATCH rdma-next 18/43] RDMA/cm: Convert REQ flow control Leon Romanovsky
2019-10-27  7:05 ` [PATCH rdma-next 19/43] RDMA/cm: Convert starting PSN to be u32 variable Leon Romanovsky
2019-10-27  7:05 ` [PATCH rdma-next 20/43] RDMA/cm: Update REQ local response timeout Leon Romanovsky
2019-10-27  7:05 ` [PATCH rdma-next 21/43] RDMA/cm: Convert REQ retry count to use new scheme Leon Romanovsky
2019-10-27  7:06 ` [PATCH rdma-next 22/43] RDMA/cm: Update REQ path MTU field Leon Romanovsky
2019-10-27  7:06 ` [PATCH rdma-next 23/43] RDMA/cm: Convert REQ RNR retry timeout counter Leon Romanovsky
2019-10-27  7:06 ` [PATCH rdma-next 24/43] RDMA/cm: Convert REQ MAX CM retries Leon Romanovsky
2019-10-27  7:06 ` [PATCH rdma-next 25/43] RDMA/cm: Convert REQ SRQ field Leon Romanovsky
2019-10-27  7:06 ` [PATCH rdma-next 26/43] RDMA/cm: Convert REQ flow label field Leon Romanovsky
2019-10-27  7:06 ` [PATCH rdma-next 27/43] RDMA/cm: Convert REQ packet rate Leon Romanovsky
2019-10-27  7:06 ` [PATCH rdma-next 28/43] RDMA/cm: Convert REQ SL fields Leon Romanovsky
2019-10-27  7:06 ` [PATCH rdma-next 29/43] RDMA/cm: Convert REQ subnet local fields Leon Romanovsky
2019-10-27  7:06 ` [PATCH rdma-next 30/43] RDMA/cm: Convert REQ local ack timeout Leon Romanovsky
2019-10-27  7:06 ` [PATCH rdma-next 31/43] RDMA/cm: Convert MRA MRAed field Leon Romanovsky
2019-10-27  7:06 ` [PATCH rdma-next 32/43] RDMA/cm: Convert MRA service timeout Leon Romanovsky
2019-10-27  7:06 ` [PATCH rdma-next 33/43] RDMA/cm: Update REJ struct to use new scheme Leon Romanovsky
2019-10-27  7:06 ` [PATCH rdma-next 34/43] RDMA/cm: Convert REP target ack delay field Leon Romanovsky
2019-10-27  7:06 ` [PATCH rdma-next 35/43] RDMA/cm: Convert REP failover accepted field Leon Romanovsky
2019-10-27  7:06 ` [PATCH rdma-next 36/43] RDMA/cm: Convert REP flow control field Leon Romanovsky
2019-10-27  7:06 ` [PATCH rdma-next 37/43] RDMA/cm: Convert REP RNR retry count field Leon Romanovsky
2019-10-27  7:06 ` [PATCH rdma-next 38/43] RDMA/cm: Convert REP SRQ field Leon Romanovsky
2019-10-27  7:06 ` [PATCH rdma-next 39/43] RDMA/cm: Delete unused CM LAP functions Leon Romanovsky
2019-10-27  7:06 ` [PATCH rdma-next 40/43] RDMA/cm: Convert LAP flow label field Leon Romanovsky
2019-10-27  7:06 ` [PATCH rdma-next 41/43] RDMA/cm: Convert LAP fields Leon Romanovsky
2019-10-27  7:06 ` [PATCH rdma-next 42/43] RDMA/cm: Delete unused CM ARP functions Leon Romanovsky
2019-10-27  7:06 ` [PATCH rdma-next 43/43] RDMA/cm: Convert SIDR_REP to new scheme Leon Romanovsky

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=20191027070621.11711-11-leon@kernel.org \
    --to=leon@kernel.org \
    --cc=dledford@redhat.com \
    --cc=jgg@mellanox.com \
    --cc=leonro@mellanox.com \
    --cc=linux-rdma@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.