> (1) fetch the next receive queue / shared receive queue entry and
>     store the value of the immediate data (32 bits at the API)
>     along with that RQE.
> 
> (2) place data according to the inbound WRITE hdr but ignore the
>     SGL of the RQE.
> 
> (3) after completion processing the WRITE:
>     (1) create a work completion of type IBV_WC_RECV_RDMA_WITH_IMM,
>     (2) transfer the immediate data value into the 'imm_data' field,
>     (3) set the WC's 'byte_len' to the received WRITE payload,
>     (4) set IBV_WC_WITH_IMM at 'wc_flags', and
>     (5) append the WC to the associated CQ.
> 
> With that, the receiver would have to carefully inspect the operation
> type of the work completion, since a receive queue entry may turn into
> a IBV_WC_RECV or IBV_WC_RECV_RDMA_WITH_IMM. In the second case, the data
> are placed according to the senders opinion, which may not be the
> result a non-aware receiver would expect.
> 
> correct?

This looks correct to me, but I didn't trace through the spec.  The only other 
thing I can think of is to check the solicited bit.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to