From: sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org
To: roland-BHEL68pLQRGGvPXPguhicg@public.gmane.org,
linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: Sean Hefty <sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Subject: [PATCH v5 22/28] rdma/cm: Export cma_get_service_id
Date: Wed, 29 May 2013 10:09:28 -0700 [thread overview]
Message-ID: <1369847374-12176-23-git-send-email-sean.hefty@intel.com> (raw)
In-Reply-To: <1369847374-12176-1-git-send-email-sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
From: Sean Hefty <sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Allow the rdma_ucm to query the IB service ID formed or
allocated by the rdma_cm by exporting the cma_get_service_id
functionality.
Signed-off-by: Sean Hefty <sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
---
drivers/infiniband/core/cma.c | 13 +++++++------
include/rdma/rdma_cm.h | 7 +++++++
2 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 797fb05..7034c84 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -1336,13 +1336,14 @@ err1:
return ret;
}
-static __be64 cma_get_service_id(enum rdma_port_space ps, struct sockaddr *addr)
+__be64 rdma_get_service_id(struct rdma_cm_id *id, struct sockaddr *addr)
{
if (addr->sa_family == AF_IB)
return ((struct sockaddr_ib *) addr)->sib_sid;
- return cpu_to_be64(((u64)ps << 16) + be16_to_cpu(cma_port(addr)));
+ return cpu_to_be64(((u64)id->ps << 16) + be16_to_cpu(cma_port(addr)));
}
+EXPORT_SYMBOL(rdma_get_service_id);
static void cma_set_compare_data(enum rdma_port_space ps, struct sockaddr *addr,
struct ib_cm_compare_data *compare)
@@ -1556,7 +1557,7 @@ static int cma_ib_listen(struct rdma_id_private *id_priv)
id_priv->cm_id.ib = id;
addr = cma_src_addr(id_priv);
- svc_id = cma_get_service_id(id_priv->id.ps, addr);
+ svc_id = rdma_get_service_id(&id_priv->id, addr);
if (cma_any_addr(addr) && !id_priv->afonly)
ret = ib_cm_listen(id_priv->cm_id.ib, svc_id, 0, NULL);
else {
@@ -1699,7 +1700,7 @@ static int cma_query_ib_route(struct rdma_id_private *id_priv, int timeout_ms,
path_rec.pkey = cpu_to_be16(ib_addr_get_pkey(dev_addr));
path_rec.numb_path = 1;
path_rec.reversible = 1;
- path_rec.service_id = cma_get_service_id(id_priv->id.ps, cma_dst_addr(id_priv));
+ path_rec.service_id = rdma_get_service_id(&id_priv->id, cma_dst_addr(id_priv));
comp_mask = IB_SA_PATH_REC_DGID | IB_SA_PATH_REC_SGID |
IB_SA_PATH_REC_PKEY | IB_SA_PATH_REC_NUMB_PATH |
@@ -2710,7 +2711,7 @@ static int cma_resolve_ib_udp(struct rdma_id_private *id_priv,
id_priv->cm_id.ib = id;
req.path = id_priv->id.route.path_rec;
- req.service_id = cma_get_service_id(id_priv->id.ps, cma_dst_addr(id_priv));
+ req.service_id = rdma_get_service_id(&id_priv->id, cma_dst_addr(id_priv));
req.timeout_ms = 1 << (CMA_CM_RESPONSE_TIMEOUT - 8);
req.max_cm_retries = CMA_MAX_CM_RETRIES;
@@ -2770,7 +2771,7 @@ static int cma_connect_ib(struct rdma_id_private *id_priv,
if (route->num_paths == 2)
req.alternate_path = &route->path_rec[1];
- req.service_id = cma_get_service_id(id_priv->id.ps, cma_dst_addr(id_priv));
+ req.service_id = rdma_get_service_id(&id_priv->id, cma_dst_addr(id_priv));
req.qp_num = id_priv->qp_num;
req.qp_type = id_priv->id.qp_type;
req.starting_psn = id_priv->seq_num;
diff --git a/include/rdma/rdma_cm.h b/include/rdma/rdma_cm.h
index 966f90b..1ed2088 100644
--- a/include/rdma/rdma_cm.h
+++ b/include/rdma/rdma_cm.h
@@ -373,4 +373,11 @@ int rdma_set_reuseaddr(struct rdma_cm_id *id, int reuse);
*/
int rdma_set_afonly(struct rdma_cm_id *id, int afonly);
+ /**
+ * rdma_get_service_id - Return the IB service ID for a specified address.
+ * @id: Communication identifier associated with the address.
+ * @addr: Address for the service ID.
+ */
+__be64 rdma_get_service_id(struct rdma_cm_id *id, struct sockaddr *addr);
+
#endif /* RDMA_CM_H */
--
1.7.3
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2013-05-29 17:09 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-29 17:09 [PATCH v5 00/28] rdma/cm: Add support for native IB addressing sean.hefty-ral2JQCrhuEAvxtiuMwx3w
2013-05-29 17:09 ` [PATCH v5 08/28] rdma/cm: Add helper functions to return id address information sean.hefty
2013-05-29 17:09 ` [PATCH v5 13/28] rdma/cm: Add support for AF_IB to cma_get_service_id sean.hefty
[not found] ` <1369847374-12176-1-git-send-email-sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2013-05-29 17:09 ` [PATCH v5 01/28] rdma/cm: define native IB address sean.hefty-ral2JQCrhuEAvxtiuMwx3w
[not found] ` <1369847374-12176-2-git-send-email-sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2013-06-10 17:49 ` Hefty, Sean
2013-05-29 17:09 ` [PATCH v5 02/28] rdma/cm: Allow enabling reuseaddr in any state sean.hefty-ral2JQCrhuEAvxtiuMwx3w
2013-05-29 17:09 ` [PATCH v5 03/28] rdma/cm: Include AF_IB in loopback and any address checks sean.hefty-ral2JQCrhuEAvxtiuMwx3w
2013-05-29 17:09 ` [PATCH v5 04/28] ib/addr: Add AF_IB support to ip_addr_size sean.hefty-ral2JQCrhuEAvxtiuMwx3w
2013-05-29 17:09 ` [PATCH v5 05/28] rdma/cm: Update port reservation to support AF_IB sean.hefty-ral2JQCrhuEAvxtiuMwx3w
2013-05-29 17:09 ` [PATCH v5 06/28] rdma/cm: Allow user to specify AF_IB when binding sean.hefty-ral2JQCrhuEAvxtiuMwx3w
2013-05-29 17:09 ` [PATCH v5 07/28] rdma/cm: Do not modify sa_family when setting loopback address sean.hefty-ral2JQCrhuEAvxtiuMwx3w
2013-05-29 17:09 ` [PATCH v5 09/28] rdma/cm: Restrict AF_IB loopback to binding to IB devices only sean.hefty-ral2JQCrhuEAvxtiuMwx3w
2013-05-29 17:09 ` [PATCH v5 10/28] rdma/cm: Verify that source and dest sa_family are the same sean.hefty-ral2JQCrhuEAvxtiuMwx3w
2013-05-29 17:09 ` [PATCH v5 11/28] rdma/cm: Add support for AF_IB to rdma_resolve_addr sean.hefty-ral2JQCrhuEAvxtiuMwx3w
2013-05-29 17:09 ` [PATCH v5 12/28] rdma/cm: Add support for AF_IB to rdma_resolve_route sean.hefty-ral2JQCrhuEAvxtiuMwx3w
2013-05-29 17:09 ` [PATCH v5 14/28] rdma/cm: Remove unused SDP related code sean.hefty-ral2JQCrhuEAvxtiuMwx3w
2013-05-29 17:09 ` [PATCH v5 15/28] rdma/cm: Merge cma_get/save_net_info sean.hefty-ral2JQCrhuEAvxtiuMwx3w
2013-05-29 17:09 ` [PATCH v5 16/28] rdma/cm: Expose private data when using AF_IB sean.hefty-ral2JQCrhuEAvxtiuMwx3w
2013-05-29 17:09 ` [PATCH v5 18/28] rdma/cm: Only listen on IB devices " sean.hefty-ral2JQCrhuEAvxtiuMwx3w
2013-05-29 17:09 ` [PATCH v5 19/28] rdma/ucm: Support querying for AF_IB addresses sean.hefty-ral2JQCrhuEAvxtiuMwx3w
2013-05-29 17:09 ` [PATCH v5 20/28] ib/sa: Export function to pack a path record into wire format sean.hefty-ral2JQCrhuEAvxtiuMwx3w
2013-05-29 17:09 ` [PATCH v5 21/28] rdma/ucm: Support querying when IB paths are not reversible sean.hefty-ral2JQCrhuEAvxtiuMwx3w
2013-05-29 17:09 ` sean.hefty-ral2JQCrhuEAvxtiuMwx3w [this message]
2013-05-29 17:09 ` [PATCH v5 26/28] rdma/ucm: Allow user space to pass AF_IB into resolve sean.hefty-ral2JQCrhuEAvxtiuMwx3w
2013-05-29 17:09 ` [PATCH v5 27/28] rdma/ucm: Allow user space to specify AF_IB when joining multicast sean.hefty-ral2JQCrhuEAvxtiuMwx3w
2013-05-29 17:09 ` [PATCH v5 28/28] rdma/cm: Export AF_IB statistics sean.hefty-ral2JQCrhuEAvxtiuMwx3w
2013-05-29 17:09 ` [PATCH v5 17/28] rdma/cm: Set qkey for AF_IB sean.hefty
2013-05-29 17:09 ` [PATCH v5 23/28] rdma/ucm: Add ability to query GID addresses sean.hefty
2013-05-29 17:09 ` [PATCH v5 24/28] rdma/ucm: Name changes to indicate only IP addresses supported sean.hefty
2013-05-29 17:09 ` [PATCH v5 25/28] rdma/ucm: Allow user space to bind to AF_IB sean.hefty
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=1369847374-12176-23-git-send-email-sean.hefty@intel.com \
--to=sean.hefty-ral2jqcrhueavxtiumwx3w@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=roland-BHEL68pLQRGGvPXPguhicg@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox