WRs

WRs Posted to SQ

Purpose of a SQ WR

Software posts a WR to a QP's SQ in order to initiate a message transfer with a QP of the same type in a remote CA.

Posting a WR to the SQ

A WR is posted to the SQ by executing the Post Send Request verb call. Refer to “Content of SQ WRs” on page 262 for a description of the WR's content.

Types of SQ Operations

The types of WRs that can be posted to a QP's SQ depends on the type of QP:

  • Message Send operation. Supported on RC, RD, UC, UD, and Raw QPs.

  • RDMA Write operation. Supported on UC, RC, and RD QPs.

  • RDMA Read operation. Supported on RD and RC QPs.

  • Atomic operations. Supported on RD and RC QPs.

  • Memory Window Bind operation. Supported on RC, UC, and RD QPs.

Resync operation is atypical. Supported on RD QPs. It should be noted that this operation is automatically initiated by the EEC hardware in the event of an error. It is not initiated by software posting a WR to the SQ of a QP. When a Resync is required, the EEC's Send Logic automatically initiates it. For a detailed description, refer to “Resync Operation” on page 499.

Note that only the Send operation is supported on Raw QPs.

WRs Posted to RQ

Purpose of a RQ WR

Software posts WRs to a QP's RQ in order to handle two types of inbound message transfer requests issued by the remote QP's SQ Logic (see “Inbound Message Types Handled by RQ WQEs” on this page).

Posting a WR to the RQ

A WR is posted to the RQ by executing the Post Receive Request verb. Refer to “Content of RQ WRs” on page 276 for a description of the WR's content.

Only One Type of RQ Operation

Only one type of operation may be specified in a WR posted to the RQ. It is the Receive operation.

Inbound Message Types Handled by RQ WQEs

Software posts WRs to a QP's RQ (once posted, it's referred to as a WQE) to handle the receipt of one of two types of messages sent by the remote QP's SQ Logic:

  • An inbound message Send operation. In this case, the top RQ WQE contains the Scatter Buffer List defining the series of one or more buffers in the CA's local memory to which the message will be written. When the message's final request packet data payload has been written to the CA's local memory, the top entry on the RQ is retired and a CQE is created on the RCQ. If the final packet includes the ImmDtETH containing a 32-bit immediate data value, the 32-bit immediate data value is stored in the CQE. This data value can be used to inform software associated with the destination QP regarding the nature of the message just sent to it.

  • An inbound RDMA Write With Immediate message transfer operation. In this case, the WR is really a dummy WR. The final request packet of the RDMA Write operation includes the ImmDtETH containing the 32-bit immediate data value. When the data payload of the final request packet has been written to the CA's local memory, the top entry on the RQ is retired and a CQE is created on the RCQ. The 32-bit immediate data value is stored in the CQE. This data value can be used to inform software associated with the destination QP regarding the nature of the message just sent to it.

Inbound Message Types Not Handled by RQ WQEs

RQ WQEs do not handle the following types of inbound operations sent by the remote QP's SQ Logic:

  • RDMA Write Without Immediate message transfer operation. Although this operation is handled by the destination QP's RQ Logic, a RQ WQE is not used to define where the inbound message is written in the CA's local memory. Rather, the start memory address, transfer length, and a remote access key (R_Key) are supplied by the remote QP's SQ Logic in the first request packet of the message transfer.

  • RDMA Read message transfer operation. This type of inbound operation is posted in a special queue (within the RQ Logic) reserved to handle inbound RDMA Read and Atomic operations.

  • Atomic operations (see the previous bullet item):

    - Atomic Fetch and Add operation.

    - Atomic Compare and Swap If Equal operation.

WR Content

Content of SQ WRs
Send Operation WR

The message Send operation is supported on all QP types. The input parameters supplied when executing the Post Send Request verb are defined in Table 13-1 on page 263.

RDMA Write Operation WR

The RDMA Write operation is supported on UC, RC, and RD. The input parameters supplied when executing the Post Send Request verb are defined in Table 13-2 on page 266.

RDMA Read Operation WR

The RDMA Read operation is supported on RC and RD. The input parameters supplied when executing the Post Send Request verb are defined in Table 13-3 on page 268.

Atomic Fetch and Add WR

The Atomic Fetch and Add operation is supported on RC and RD. The input parameters supplied when executing the Post Send Request verb are defined in Table 13-4 on page 270.

Atomic Compare and Swap If Equal WR

The Atomic Compare and Swap If Equal operation is supported on RC and RD. The input parameters supplied when executing the Post Send Request verb are defined in Table 13-5 on page 272.

Memory Window Bind WR

The Memory Window Bind operation is supported on RC, UC, and RD. Unlike the other SQ operations, it is not posted to the SQ using the Post Send Request verb. Rather, the Bind Memory Window verb is used. The input parameters supplied when executing the Bind Memory Window verb are defined in Table 13-6 on page 274. A detailed description of memory windows can be found in “Memory Windows” on page 308.

Table 13-1. WR Content for a Send Operation
WR ElementQP Type ApplicabilityRequired?Description
HCA HandleAllYesIdentifies the target HCA. Returned by the Open HCA verb.
QP HandleAllYesIdentifies the target HCA QP. Returned by the Create QP verb.
WR IDAllYes64-bit, software-assigned unique identifier for this WR. It is stored in the CQE created at the end of the operation.
Operation typeAllYesOperation type = Send.
CQE generation indicatorAllYes, if......QP was set up to only generate SQ CQE when requested in WR.
Gather Buffer ListAllYesList of the CA's local memory buffers that contain the message to be sent. The list consists of:
  • List length (i.e., the number of buffers).

  • Virtual start address of each buffer.

  • Length of each buffer.

  • L_Key associated with each buffer.

Number of buffersAllYesThe number of Gather buffers in the list (note that 0 is valid).
Immediate Data IndicatorRC, UC, UD, RD. NA for Raw.YesIndicates if 32-bit immediate data value is to be delivered in final request packet's ImmDtETH.
Immediate DataRC, UC, UD, RD. NA for Raw.No32-bit immediate data value to be delivered in final request packet's ImmDtETH. Only required if the Immediate Data Indicator is set.
Fence IndicatorRC, RDNoIf set, all RDMA Read and Atomic WRs posted to SQ before this WR must completed before processing this WR.
Address HandleUDYesIdentifies destination port address (DLID), SL, Maximum Static Rate, Source Path Bits. If the destination port is not in the same subnet, also includes DGID, FlowLabel, TClass, HopLimit, and SGID index.
DLIDRawYes16-bits. Destination port in this subnet.
Source Path BitsRawYesOn transmission, Link Layer receives packet from Transport Layer and uses this value to insert correct port LID address into packet's LRH:SLID field.
SLRawYes4 bits. Service Level (QoS) to be used in this subnet.
Destination QPNRD, UDYes24 bits. Self-explanatory.
Q_KeyRD, UDYes32 bits. When WR posted to RD/UD QP's SQ, software supplies Q_Key assigned to destination QP. Q_Key inserted in outbound request packets:
  • If the WR's Q_Key msb = 0, that Q_Key is inserted in the packet's BTH:Q_Key field.

  • Otherwise, Q_Key of the local QP is inserted in packet's BTH:Q_Key field.

EECN of local EECRDYes24 bits. This is the EECN of the local EEC through which the message will be sent. In other words, it's the RDC ID.
Solicited Event indicatorAllYesTells the QP's SQ Logic whether or not to set the BTH:SE bit in the message's last request packet.
EthertypeRaw EtherTypeYes16 bits. Tells SQ Logic what protocol type to indicate in the request packet's RWH:EtherType field. Must conform to definition in IEEE Type Field Registrar (see standards IEEE 802.3, 1998 Clause 3.2.6 Length/Type Field specifications and IEEE 802.1H-1995 for use of the Type Field.)
Maximum Static RateRawYesSee “Packet Injection Delay” on page 43.

Table 13-2. WR Content for an RDMA Write Operation
WR ElementQP Type ApplicabilityRequired?Description
HCA HandleUC, RC, RDYesIdentifies the target HCA. Returned by the Open HCA verb.
QP HandleUC, RC, RDYesIdentifies the target HCA QP. Returned by the Create QP verb.
WR IDUC, RC, RDYes64-bit, software-assigned unique identifier for this WR. It is stored in the CQE created at the end of the operation.
Operation typeUC, RC, RDYesOperation type = RDMA Write.
CQE generation indicatorUC, RC, RDYes, if......QP was set up to only generate SQ CQE when requested in WR.
Gather Buffer ListUC, RC, RDYesList of the CA's local memory buffers that contain the message to be sent. The list consists of:
  • List length (i.e., the number of buffers).

  • Virtual start address of each buffer.

  • Length of each buffer.

  • L_Key associated with each buffer.

Number of buffersUC, RC, RDYesThe number of Gather buffers in the list (note that 0 is valid).
Immediate Data IndicatorUC, RC, RDYesIndicates if a 32-bit immediate data value is to be delivered in the final request packet's ImmDtETH.
Immediate DataUC, RC, RDNo32-bit immediate data value to be delivered in final request packet's ImmDtETH. Only required if the Immediate Data Indicator bit is set.
Fence IndicatorRC, RDNoIf set, all RDMA Read and Atomic WRs posted to SQ before this WR must complete before processing this WR.
Destination QPNRDYes24 bits. Self-explanatory.
Q_KeyRDYes32 bits. When WR posted to RD QP's SQ, software supplies Q_Key assigned to destination QP. Q_Key inserted in outbound request packets:
  • If the WR's Q_Key msb = 0, that Q_Key is inserted in the packet's BTH:Q_Key field.

  • Otherwise, the Q_Key of the local QP is inserted in the packet's BTH:Q_Key field.

EECN of local EECRDYes24 bits. This is the EECN of the local EEC through which the message will be sent. In other words, it's the RDC ID.
Virtual Address (VA)UC, RC, RDYes64-bit virtual start memory address where data is to be written in remote CA's memory. Placed in first request packet's RETH.
R_KeyUC, RC, RDYes32-bit remote access key. Identifies the sender's access rights within the target memory area. Placed in first request packet's RETH.
Transfer lengthUC, RC, RDYes32 bits. Up to 2GB. Placed in first request packet's RETH.
Solicited Event indicatorUC, RC, RDYesOnly necessary if CQE to be generated (see CQE Generation Indicator in this table). Tells QP's SQ Logic whether or not to set BTH:SE in message's last request packet.

Table 13-3. WR Content for an RDMA Read Operation
WR ElementQP Type ApplicabilityRequired?Description
HCA HandleRD, RCYesIdentifies the target HCA. Returned by the Open HCA verb.
QP HandleRD, RCYesIdentifies the target HCA QP. Returned by the Create QP verb.
WR IDRD, RCYes64-bit, software-assigned unique identifier for this WR. It is stored in the CQE created at the end of the operation.
Operation typeRD, RCYesOperation type = RDMA Read.
CQE generation indicatorRD, RCYes, if......QP was set up to only generate SQ CQE when requested in WR.
Scatter Buffer ListRD, RCYesList of the CA's local memory buffers that message data will be written to when returned by remote QP. The list consists of:
  • List length (i.e. the number of buffers).

  • Virtual start address of each buffer.

  • Length of each buffer.

  • L_Key associated with each buffer.

Number of buffersRD, RCYesThe number of Gather buffers in the list (note that 0 is valid).
Fence IndicatorRD, RCNoIf set, all RDMA Read and Atomic WRs posted to SQ before this WR must complete before processing this WR.
Destination QPNRDYes24 bits. Self-explanatory.
Q_KeyRDYes32 bits. When WR posted to RD QP's SQ, software supplies Q_Key assigned to destination QP. Q_Key inserted in outbound request packets:
  • If the WR's Q_Key msb = 0, that Q_Key is inserted in the packet's BTH:Q_Key field.

  • Otherwise, the Q_Key of the local QP is inserted in the packet's BTH:Q_Key field.

EECN of local EECRDYes24 bits. This is the EECN of the local EEC through which the RDMA Read request packet is sent and the returned read data is received. In other words, it's the RDC ID.
Virtual Address (VA)RD, RCYes64-bit virtual start memory address where data is to be read from in remote CA's memory. Placed in first request packet's RETH.
R_KeyRD, RCYes32-bit remote access key. Identifies the sender's access rights within the target memory area. Placed in the request packet's RETH.
Transfer lengthRD, RCYes32 bits. Up to 2GB. Placed in first request packet's RETH.
Solicited Event indicatorRD, RCYesOnly necessary if CQE to be generated (see CQE Generation Indicator in this table). Tells the QP's SQ Logic whether or not to set the BTH:SE bit in the request packet.

Table 13-4. WR Content for an Atomic Fetch and Add Operation
WR ElementQP Type ApplicabilityRequired?Description
HCA HandleRD, RCYesIdentifies the target HCA. Returned by the Open HCA verb.
QP HandleRD, RCYesIdentifies the target HCA QP. Returned by the Create QP verb.
WR IDRD, RCYes64-bit, software-assigned unique identifier for this WR. It is stored in the CQE created at the end of the operation.
Operation typeRD, RCYesOperation type = Atomic Fetch and Add.
CQE generation indicatorRD, RCYes, if......QP was set up to only generate SQ CQE when requested in WR.
Fence IndicatorRD, RCNoIf set, all RDMA Read and Atomic WRs posted to SQ before this WR must complete before processing this WR.
Destination QPNRDYes24 bits. Self-explanatory.
Q_KeyRDYes32 bits. When WR posted to RD QP's SQ, software supplies Q_Key assigned to destination QP. Q_Key inserted in outbound request packets:
  • If the WR's Q_Key msb = 0, that Q_Key is inserted in the packet's BTH:Q_Key field.

  • Otherwise, the Q_Key of the local QP is inserted in the packet's BTH:Q_Key field.

EECN of local EECRDYes24 bits. This is the EECN of the local EEC through which the request packet is sent and the return read data is received. In other words, it's the RDC ID.
Virtual Address (VA)RD, RCYes64 bits. Quadword-aligned virtual start memory address of the target memory semaphore. Placed in the request packet's AtomicETH.
R_KeyRD, RCYes32 bits. Remote access key. Identifies the sender's access rights within the destination memory area. Placed in request packet's AtomicETH.
Add DataRD, RCYes64-bit Add Data. Target QP's RQ Logic reads target location, adds Add Data, and writes result back to memory. Placed in request packet's AtomicETH.
Scatter Buffer ListRD, RCYesSpecifies a single 8-byte local memory buffer where returned read data will be written. The list consists of a single entry specifying:
  • List length = 1.

  • Virtual start address of the buffer.

  • Length of the buffer (8-bytes).

  • L_Key associated with the buffer.

Number of BuffersRD, RCYesNumber of buffers in the Scatter Buffer List. Must be one.

Table 13-5. WR Content for an Atomic Compare and Swap If Equal Operation
WR ElementQP Type ApplicabilityRequired?Description
HCA HandleRD, RCYesIdentifies the target HCA. Returned by the Open HCA verb.
QP HandleRD, RCYesIdentifies the target HCA QP. Returned by the Create QP verb.
WR IDRD, RCYes64-bit, software-assigned unique identifier for this WR. It is stored in the CQE created at the end of the operation.
Operation typeRD, RCYesOperation type = Atomic Compare and Swap If Equal.
CQE generation indicatorRD, RCYes, if......QP was set up to only generate SQ CQE when requested in WR.
Fence IndicatorRD, RCNoIf set, all RDMA Read and Atomic WRs posted to SQ before this WR must complete before processing this WR.
Destination QPNRDYes24 bits. Self-explanatory.
Q_KeyRDYes32 bits. When WR posted to RD QP's SQ, software supplies Q_Key assigned to destination QP. Q_Key inserted in outbound request packets:
  • If the WR's Q_Key msb = 0, that Q_Key is inserted in the packet's BTH:Q_Key field.

  • Otherwise, the Q_Key of the local QP is inserted in the packet's BTH:Q_Key field.

EECN of local EECRDYes24 bits. This is the EECN of the local EEC through which the request packet is sent and the return read data is received. In other words, it's the RDC ID.
Virtual Address (VA)RD, RCYes64-bit quadword-aligned virtual start memory address of the destination memory semaphore. Placed in the request packet's AtomicETH.
R_KeyRD, RCYes32-bit remote access key. Identifies the sender's access rights within the destination memory area. Placed in the request packet's AtomicETH.
Swap DataRD, RCYes64-bit Swap Data. Placed in request packet's AtomicETH. Target QP's RQ Logic reads target location, compares its contents to Compare Data (see next row). If equal, writes Swap Data back to memory. Original data is returned in the response packet.
Compare DataRD, RCYes64-bit Compare Data. See previous row.
Scatter Buffer ListRD, RCYesSpecifies a single 8-byte local memory buffer where returned read data is written. The list consists of a single entry specifying:
  • List length = 1.

  • Virtual start address of the buffer.

  • Length of the buffer (8-bytes).

  • L_Key associated with the buffer.

Number of BuffersRD, RCYesNumber of buffers in the Scatter Buffer List. Must be one.

Table 13-6. WR Content for Memory Window Bind Operation
WR ElementQP Type ApplicabilityRequired?Description
HCA HandleRC, UC, RDYesIdentifies the target HCA. Returned by the Open HCA verb.
QP HandleRC, UC, RDYesIdentifies the target HCA QP. Returned by the Create QP verb.
WR IDRC, UC, RDYes64-bit, software-assigned unique identifier for this WR. It is stored in the CQE created at the end of the operation.
Memory Window HandleRC, UC, RDYesReturned by Allocate Memory Window verb.
R_KeyRC, UC, RDYesThe R_Key (Remote access Key) currently associated with the Memory Window. Returned by Allocate Memory Window verb.
Memory Region HandleRC, UC, RDYesIdentifies the region that the window will be bound to. Returned by Register Memory Region, Register Physical Memory Region, Reregister Memory Region, Reregister Physical Memory Region, and Register Shared Memory Region verbs.
L_KeyRC, UC, RDYesLocal Access Key for the memory region that the Window is associated with. Returned by Register Memory Region, Register Physical Memory Region, Reregister Memory Region, Reregister Physical Memory Region, and Register Shared Memory Region verbs.
Virtual Address (VA)RC, UC, RDYesAddress of the first byte of the bound range. Maximum width of the Virtual Address is 64 bits.
Length RC, UC, RDYesLength of range to be bound in bytes.
Access ControlRC, UC, RDYesFollowing may be selected in any combination except as noted:
  • Enable Remote Write Access (requires Region to have Local Write Access).

  • Enable Remote Read Access.

  • Enable Remote Atomic Operation Access (if Atomic Ops supported). Requires Region to have Local Write Access.

CQE generation indicatorRC, UC, RDYes, if......QP was set up to only generate SQ CQE when requested in WR.
Fence IndicatorRC and RD.NoIf set, all RDMA Read and Atomic WRs posted to SQ before this WR must complete before processing this WR.

Content of RQ WRs

As mentioned earlier, a WR is posted to a QP's RQ using the Post Receive Request verb. The only type of operation that may be specified is a Receive operation. The input parameters supplied when executing the Post Receive Request verb are defined in Table 13-7 on this page.

Table 13-7. WR Content for Receive Operation
WR ElementQP Type ApplicabilityRequired?Description
HCA HandleAllYesIdentifies the target HCA. Returned by the Open HCA verb.
QP HandleAllYesIdentifies the target HCA QP. Returned by the Create QP verb.
WR IDAllYes64-bit, software-assigned unique identifier for this WR. It is stored in the CQE created at the end of the operation.
Operation typeAllYesOperation type = Receive.
Scatter Buffer ListAllYesTwo possibilities:
  1. List of the CA's local memory buffers that the Send operation's message data will be written to when received from remote QP. In this case, the list consists of:

    - List length (i.e., the number of buffers).

    - Virtual start address of each buffer.

    - Length of each buffer.

    - L_Key associated with each buffer.

  2. Empty Scatter Buffer List can be used to handle an inbound RDMA Write With Immediate message.

Note: For UD QPs, the first 40 bytes of the buffer(s) referred to by the Scatter Buffer List contain the GRH of the incoming message. If there is no GRH, the contents of the first 40 bytes is undefined. The rresence of a GRH is indicated by a bit in the CQE.

Number of BuffersAllYesNumber of buffers in the Scatter Buffer List (note that 0 is valid).

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.136.233.153