Work Requests are used to submit units of work to the ERNIC IP. The operations which can be posted to the Send Work Queues by the application are:
•
RDMA Write
•
RDMA WRITE Immediate
•
RDMA SEND
•
RDMA SEND Immediate
•
RDMA Read
•
RDMA SEND Invalidate
The following work requests are not allowed:
•
ATOMIC
•
Bind Memory Window
•
Local Invalidate
•
Fast Register Physical MR
The Receive Queue work requests need not be posted by application as the ERNIC Hardware automatically re-posts consumed receive buffers as per the configured receive queue depth.
Table: WQE Structure
shows the structure of Send work requests. Each Work Queue Entry (WQE) is 64 bytes in size.
Table 2-1:
WQE Structure
|
Bitwidth
|
Content
|
Size (B)
|
Comment
|
|
[15:0]
|
WRID
|
2
|
Work Request ID. Unique identifier for every WQE
|
|
[31:16]
|
Reserved
|
2
|
|
|
[95:32]
|
LADDR
|
8
|
Local address. Data Buffer address for operations
|
|
[127:96]
|
LENGTH
|
4
|
Length of the transfer
|
|
[135:128]
|
OPCODE
|
1
|
8’h00 -- RDMA WRITE
8’h01 -- RDMA_WRITE WITH IMMDT
8’h02 -- RDMA SEND
8’h03 -- RDMA SEND WITH IMMDT
8’h04 -- RDMA READ
8’h0C -- RDMA SEND WITH INVALIDATE
All other values are reserved.
|
|
[159:136]
|
Reserved
|
3
|
3
|
|
[223:160]
|
ROFFSET
|
8
|
Remote offset address
|
|
[255:224]
|
RTAG
|
4
|
Remote TAG
|
|
[383:256]
|
SDATA
|
16
|
RDMA SEND Data. If the data to be sent is less than or equal to 16B, this field is used to represent the data.
|
|
[511:384]
|
Reserved
|
16
|
|
|
[415:384]
|
IMMDT DATA
|
4
|
Immediate data to be send in ImmDt header
|
|
[511:416]
|
Reserved
|
12
|
Reserved
|