Re: [PATCH rdma-next 1/3] IB/CM: Add OPA Path record support to CM

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 6/5/2017 12:33 PM, Jason Gunthorpe wrote:
On Mon, Jun 05, 2017 at 02:20:01PM -0400, Don Hiatt wrote:
Add OPA path record support to the Connection Manager.

Reviewed-by: Ira Weiny <ira.weiny@xxxxxxxxx>
Signed-off-by: Don Hiatt <don.hiatt@xxxxxxxxx>
  drivers/infiniband/core/cm.c | 50 +++++++++++++++++++++++++++++++++++++-------
  include/rdma/opa_addr.h      | 18 ++++++++++++++++
  2 files changed, 60 insertions(+), 8 deletions(-)

diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c
index 8525d65..f8602e0 100644
+++ b/drivers/infiniband/core/cm.c
@@ -1175,6 +1175,11 @@ static void cm_format_req(struct cm_req_msg *req_msg,
  {
  	struct sa_path_rec *pri_path = param->primary_path;
  	struct sa_path_rec *alt_path = param->alternate_path;
+	bool pri_ext = false;
+
+	if (pri_path->rec_type == SA_PATH_REC_TYPE_OPA)
+		pri_ext = opa_is_extended_lid(pri_path->opa.dlid,
+					      pri_path->opa.slid);
cm_format_mad_hdr(&req_msg->hdr, CM_REQ_ATTR_ID,
  			  cm_form_tid(cm_id_priv, CM_MSG_SEQUENCE_REQ));
@@ -1202,18 +1207,24 @@ static void cm_format_req(struct cm_req_msg *req_msg,
  		cm_req_set_srq(req_msg, param->srq);
  	}
+ req_msg->primary_local_gid = pri_path->sgid;
+	req_msg->primary_remote_gid = pri_path->dgid;
+	if (pri_ext) {
+		req_msg->primary_local_gid.global.interface_id
+			= OPA_MAKE_ID(be32_to_cpu(pri_path->opa.slid));
+		req_msg->primary_remote_gid.global.interface_id
+			=
OPA_MAKE_ID(be32_to_cpu(pri_path->opa.dlid));
Doesn't OPA have a CM format that includes 32 bit lids?

Jason
Since 32bit LIDs can be carried in the OPA GID and all the other fields are the same, there is no need to define a new protocol at this time.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux