[openib-general] RDMA connection and address translation API
James Lentini
jlentini at netapp.com
Thu Aug 25 09:01:10 PDT 2005
On Wed, 24 Aug 2005, Roland Dreier wrote:
> James> You need to consider what makes sense for *both* ib and
> James> iwarp. Keep in mind that the correct API will allow a
> James> consumer to use ib and iwarp devices transparently. In
> James> other words their will be one code path that support both.
>
> James> If we were to adopt your proposal, the consumer would need
> James> to perform unnecessary operations on iWARP.
>
> No, I think we just need to realize that a perfectly transport neutral
> protocol implementation is not achievable.
It is achievable. Although the IB and iWARP protocols are different,
they can provide the same services to NFS-RDMA.
IB is missing one service that iWARP has, namely that nodes can be
identified with IP addresses. The ATS mechanism provides this
capability for IB networks. If there are better mechanisms that do the
same thing, then NFS-RDMA can use them.
The important things is not to push this up into the ULPs. The NFS-RDMA
protocol is being standardized in the IETF. There is no reason to
upset that process. If an additional IB specific protocol is
necessary, it should be standardized in the IBTA.
> It's unfortunate that kDAPL fooled people by hiding the details of
> the wire protocol under a supposedly "neutral API," but the fact is
> that mapping an abstract RDMA transport to a real implementation
> will always involve arbitrary transport-dependent choices.
The kDAPL API *is* transport neutral. This has been demonstrated at
several interoperability tests at which the same applications were run
on both IB and iWARP.
kDAPL isn't the only transport neutral networking API. The Sockets API
supports UDP and TCP transports via the same interface.
I believe we are very close to reaching agreement on a transport
neutral RDMA connection API. Comparing your API proposal to the API
that we proposed at the BOF, they are very similar. The most important
similarity is that both use IP addressing.
The only real point of debate is over how to perform the address
translation (IP <-> GID) on IB. I believe we should separate that from
the API discussion.
More information about the general
mailing list