Work completions are posted for every WQE posted on the Send Queue. Completions are not posted for Receive Queue (RQ) entries, instead doorbells are rung per Queue Pair (QP) at the address pointed to by RQWPTRDBADDi when a new receive buffer is consumed by an incoming RDMA SEND request. The structure of a Completion Queue Entry (CQE) is given in
Table: Completion Queue Entry Structure
. Each CQE is 4 bytes in size.
Table 2-2:
Completion Queue Entry Structure
|
Bitwidth
|
Content
|
Size (B)
|
Comment
|
|
[15:0]
|
WRID
|
2
|
Work Request ID. Unique identifier for every WQE
|
|
[23:16]
|
OPCODE
|
1
|
•
8'd0 = RDMA WRITE
•
8'd1 = RDMA WRITE Immediate
•
8'd2 = RDMA SEND
•
8'd3 = RDMA SEND Immediate
•
8'd4 = RDMA READ
•
8'd5 - 8'd11 = RESERVED
•
8'd12 = RDMA SEND Invalidate
•
8'd13 - 8'd255 = RESERVED
|
|
[31:24]
|
ERRFLAG
|
1
|
Error flag. Set to 8'b1 in case QP enters a fatal state
|