IB/hfi1: Add functions to build TID RDMA READ request
authorKaike Wan <kaike.wan@intel.com>
Thu, 24 Jan 2019 03:30:40 +0000 (19:30 -0800)
committerDoug Ledford <dledford@redhat.com>
Tue, 5 Feb 2019 22:53:55 +0000 (17:53 -0500)
commit742a3826cf82395e304df99f6494d04b0dd03a84
treef36c338bbe73a3a5971a8ac2c9364b5641b3f71e
parent84f4a40d46d83003bc762df0d3dd051087cc30ea
IB/hfi1: Add functions to build TID RDMA READ request

This patch adds the helper functions to build the TID RDMA READ request
on the requester side. The key is to allocate TID resources (TID flow
and TID entries) and send the resource information to the responder side
along with the read request. Since the TID resources are limited, each
TID RDMA READ request has to be split into segments with a default
segment size of 256K. A software flow is allocated to track the data
transaction for each segment. The work request opcode, packet opcode, and
packet formats for TID RDMA READ protocol are also defined in this patch.

Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Kaike Wan <kaike.wan@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/hfi1/tid_rdma.c
drivers/infiniband/hw/hfi1/tid_rdma.h
drivers/infiniband/hw/hfi1/verbs.h
include/rdma/ib_hdrs.h
include/rdma/tid_rdma_defs.h [new file with mode: 0644]