On 04-Dec-18 17:45, Leon Romanovsky wrote: > On Tue, Dec 04, 2018 at 04:38:52PM +0200, Gal Pressman wrote: >> On 04-Dec-18 14:44, Leon Romanovsky wrote: >>> On Tue, Dec 04, 2018 at 02:04:17PM +0200, Gal Pressman wrote: >>>> Add EFA node type, transport type and protocol type to core code. >>>> EFA relies on underlying implementation similar to reliable datagram, so >>>> we also define a new QP type named Scalable Reliable Datagram (SRD). >>>> >>>> EFA reliable datagram transport provides reliable out-of-order delivery, >>>> transparently utilizing multiple network paths to reduce network tail >>>> latency. Its interface is similar to UD, in particular it supports >>>> message size up to MTU, with error handling extended to support reliable >>>> communication. >>>> >>>> Signed-off-by: Gal Pressman <galpress@xxxxxxxxxx> >>>> --- >>>> drivers/infiniband/core/verbs.c | 2 ++ >>>> include/rdma/ib_verbs.h | 9 +++++++-- >>>> 2 files changed, 9 insertions(+), 2 deletions(-) >>>> >>> >>> Do you have any specification/documentation for that? >>> >>> I'm afraid that awesome press release [1] is not enough. >>> >>> [1] >>> https://aws.amazon.com/about-aws/whats-new/2018/11/introducing-elastic-fabric-adapter/ >>> >>> Thanks >>> >> >> Hey Leon, >> The commit message (and part of the cover letter) contains a description of SRD. >> It is similar to UD in most ways with the addition of reliable out-of-order >> delivery. The work requests usage are the same as UD with a minor difference in >> the completion's status codes. >> >> The exact specification is internal to AWS, but if you have any more questions >> I'll be more than happy to answer. > > All structures which you extended are backed by IBTA and everything > that "internal to .." is supposed to be implemented by various extensions > which we already have in RDMA/core. For example, in case of SRD, we have > IB_QPT_DRIVER exactly for that. > > Otherwise, please provide full semantics of this SRD type: out-of-order > semantics, handle of errors, state diagram, retransmission e.t.c. > > Thanks > We can use IB_QPT_DRIVER, if I understand correctly the only downside is that kernel QPs will not be able to utilize SRD.