RDMA Read - Data Sink STag
Caitlin Bestler <[email protected]>
| Newsgroups | gmane.ietf.rddp |
|---|---|
| Message-ID | <[email protected]> |
In section 6.4, the RDMAP specification specifies the
following about the Data Sink Steering Tag:
> The Data Sink Steering Tag identifies the Data
> Sink's Tagged Buffer. This field MUST be copied,
> without interpretation, from the RDMA Read
> Request into the corresponding RDMA Read Response
> and allows the Data Sink to place the returning
> data. The STag is associated with the RDMAP
> Stream through a mechanism that is outside the
> scope of the RDMAP specification (see Section
> 10.3 Other Security Considerations).
The intent of this clause is to ensure that
a) RDMA Read Replies obtain their STag strictly from
the RDMA Read Request, without interpretation.
b) The RDMA Read Request cannot be inferred to be
a general form of "buffer advertisement".
That is, it was intended to be compatible with the
STag being a completely normal STag that just happens
to be in use for RDMA Reads, and for it to be a
special form of STag that is limited in scope to
supporting RDMA Reads only on a specific DDP Stream.
One strategy for multi-client servers is to avoid
advertising their own buffers. Clients advertise their
buffers. The server RDMA Writes to them, or RDMA Reads
from them.
In such an environment it would be a highly desirable
feature of the local interface to restrict the usage
of an STag to RDMA Read responses on a single DDP
Stream. And further, to automatically limit its
lifespan to that of the RDMA Read Work Request.
Essentially, the "RDMA Read only" STag would be a
reference to a pending local request to perform an
RDMA Read.
There is one minor problem point in the draft that is
inconsistent with allowing an implementation to use
this strategy. The protocol overview section (3.2)
says the following in clause 6:
> The Data Sink STag associated with the Tagged Buffer
> remains valid until the ULP at the Data Sink invalidates
> it.
If there is no objection, I would like to have that
changed to:
The Data Sink STag associated with the Tagged
Buffer remains valid until it is invalidated
at the direction of the Data Sink ULP.
This makes it clear that an implementation may have
a local interface that, with permission of the ULP,
automatically invalidates an STag at completion of
an RDMA Read operation.