From: Jason Gunthorpe <jgg@nvidia.com>
To: Tom Talpey <tom@talpey.com>
Cc: Chuck Lever <cel@kernel.org>,
BMT@zurich.ibm.com, Chuck Lever <chuck.lever@oracle.com>,
linux-rdma@vger.kernel.org
Subject: Re: [PATCH v1] RDMA/core: Handle ARPHRD_NONE devices for iWARP
Date: Sat, 10 Jun 2023 09:05:10 -0300 [thread overview]
Message-ID: <ZIRm9s9xjq3ioKtQ@nvidia.com> (raw)
In-Reply-To: <dd9f65ab-d54f-7830-8043-57ea66c76149@talpey.com>
On Fri, Jun 09, 2023 at 04:49:49PM -0400, Tom Talpey wrote:
> On 6/7/2023 3:43 PM, Chuck Lever wrote:
> > From: Chuck Lever <chuck.lever@oracle.com>
> >
> > We would like to enable the use of siw on top of a VPN that is
> > constructed and managed via a tun device. That hasn't worked up
> > until now because ARPHRD_NONE devices (such as tun devices) have
> > no GID for the RDMA/core to look up.
> >
> > But it turns out that the egress device has already been picked for
> > us. addr_handler() just has to do the right thing with it.
> >
> > Tested with siw and qedr, both initiator and target.
> >
> > Suggested-by: Jason Gunthorpe <jgg@nvidia.com>
> > Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
> > ---
> > drivers/infiniband/core/cma.c | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > This of course needs broader testing, but it seems to work, and it's
> > a little nicer than "if (dev_type == ARPHRD_NONE)".
> >
> > One thing I discovered is that the NFS/RDMA server implementation
> > does not deal at all with more than one RDMA device on the system.
> > I will address that with an ib_client; SunRPC patches forthcoming.
> >
> > diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
> > index 56e568fcd32b..c9a2bdb49e3c 100644
> > --- a/drivers/infiniband/core/cma.c
> > +++ b/drivers/infiniband/core/cma.c
> > @@ -694,6 +694,9 @@ cma_validate_port(struct ib_device *device, u32 port,
> > if (!rdma_dev_access_netns(device, id_priv->id.route.addr.dev_addr.net))
> > return ERR_PTR(-ENODEV);
> > + if (rdma_protocol_iwarp(device, port))
> > + return rdma_get_gid_attr(device, port, 0);
>
> This might work, but I'm skeptical of the conditional. There's nothing
> special about iWARP that says a GID should come from the outgoing device
> mac. And, other protocols without IB GID addressing won't benefit.
The GID represents the source address, so it better come from the
outgoing device or something is really wrong.
iWARP gets a conditional because iwarp always has a single GID, other
devices do not work that way.
Jason
next prev parent reply other threads:[~2023-06-10 12:05 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-07 19:43 [PATCH v1] RDMA/core: Handle ARPHRD_NONE devices for iWARP Chuck Lever
2023-06-08 15:30 ` Chuck Lever III
2023-06-09 20:49 ` Tom Talpey
2023-06-10 0:04 ` Zhu Yanjun
2023-06-10 16:43 ` Chuck Lever III
2023-06-11 0:27 ` Zhu Yanjun
2023-06-10 12:05 ` Jason Gunthorpe [this message]
2023-06-10 16:38 ` Tom Talpey
2023-06-10 17:11 ` Chuck Lever III
2023-06-11 1:08 ` Jason Gunthorpe
2023-06-11 0:33 ` Zhu Yanjun
2023-06-12 0:19 ` Chuck Lever III
2023-06-12 2:33 ` Zhu Yanjun
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=ZIRm9s9xjq3ioKtQ@nvidia.com \
--to=jgg@nvidia.com \
--cc=BMT@zurich.ibm.com \
--cc=cel@kernel.org \
--cc=chuck.lever@oracle.com \
--cc=linux-rdma@vger.kernel.org \
--cc=tom@talpey.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 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.