Requester QP's SQ Logic Operation

Start PSN Assignment and PSN Management

As previously described in “RC/UC Connection Establishment” on page 186, the SQ Logic's Start PSN is assigned during QP setup.

As the SQ Logic generates each outbound request packet, it sets the BTH:PSN to the previous PSN + 1.

Request Packet Opcodes and Packet Sequences

The valid UC request packet opcodes are shown in Table 18-1 on this page. Since there are no response packets used in this transport service type, no response opcodes are defined.

The valid request packet transmission sequences are defined in Table 18-2 on page 447.

Table 18-1. Packet UC Request Packet Opcodes
Bits 7:5Bits 4:0Packet TypeFields That Follow BTH
001 UC00000SEND FirstData Payload
00001SEND MiddleData Payload
00010SEND LastData Payload
00011SEND Last with ImmediateImmediate Data, Data Payload
00100SEND OnlyData Payload
00101SEND Only with ImmediateImmediate Data, Data Payload
00110RDMA WRITE FirstRETH, Data Payload
00111RDMA WRITE MiddleData Payload
01000RDMA WRITE LastData Payload
01001RDMA WRITE Last with ImmediateImmediate Data, Data Payload
01010RDMA WRITE OnlyRETH, Data Payload
01011RDMA WRITE Only with ImmediateRETH, Immediate Data, Data Payload
01100-11111ReservedUndefined

Table 18-2. Valid Request Packet Transmission Sequences
Previous Request Packet OpcodeValid Opcode to Be Placed in Current Request Packet
The QP has just been set up and no messages have been transmitted yet. Therefore there was no previous request packet.One of the following:
  • Send First.

  • Send Only Without Immediate.

  • Send Only With Immediate.

  • RDMA Write First.

  • RDMA Write Only Without Immediate.

  • RDMA Write Only With immediate.

Send FirstOne of the following:
  • Send Middle.

  • Send Last Without Immediate.

  • Send Last With Immediate.

RDMA Write FirstOne of the following:
  • RDMA Write Middle.

  • RDMA Last Without Immediate.

  • RDMA Write Last With Immediate.

Send MiddleOne of the following:
  • Send Middle.

  • Send Last Without Immediate.

  • Send Last With Immediate.

RDMA Write MiddleOne of the following:
  • RDMA Write Middle.

  • RDMA Last Without Immediate.

  • RDMA Write Last With Immediate.

Send Last Without Immediate or Send Last With ImmediateOne of the following:
  • Send First.

  • Send Only Without Immediate.

  • Send Only With Immediate.

  • RDMA Write First.

  • RDMA Write Only Without Immediate.

  • RDMA Write Only With immediate.

RDMA Write Last Without Immediate or RDMA Write Last With ImmediateOne of the following:
  • Send First.

  • Send Only Without Immediate.

  • Send Only With Immediate.

  • RDMA Write First.

  • RDMA Write Only Without Immediate.

  • RDMA Write Only With Immediate.


Packet Payload Size

Table 18-3 on this page defines the number of bytes that a packet's data payload field may contain. Note that if this is an “only” packet and it contains zero message bytes, there is no data payload field.

Table 18-3. UC Packet Payload Size
Packet TypeData Payload Size
“first” or “middle” packetPayload must contain PMTU bytes.
“only” packetPayload must contain between zero and PMTU bytes.
“last” packetPayload must contain between one and PMTU bytes.

SQ Logic's Completion of a Good Transfer

No responses are expected when using this transport service type. The SQ Logic can therefore immediately retire the currently active SQ CQE when it has committed the last byte of the VCRC field of the last request packet to the wire (and detected no local errors associated with the message transfer).

Assuming that a SQ WQE completes its respective message transfer without any errors, the SQ Logic retires the WQE, creates a good completion CQE, and moves on to process the next WQE posted to the SQ (if there are any).

SQ Logic's Completion of a Bad Transfer

Since no responses are returned to the SQ Logic, it has no way of knowing if the Send or RDMA Write operation completed without error on the remote QP. The only types of errors that the SQ Logic can detect are those that are locally detected by the SQ Logic. Assuming that a local error is detected, the SQ Logic immediately stops the message transmission. The additional actions taken by the SQ Logic are defined by the error type (see Table 18-4 on this page). It should be noted that the state of the memory at the responder is unknown.

Table 18-4. UC SQ Logic Error Types and Handling
ErrorDescriptionHandling
Locally Detected Memory Protection ErrorAs an example, the Gather Buffer List specified in a WQE for a Send or an RDMA Write may have one or more entries with invalid L_Key values. Class B error handling:
  • SQ Logic retires the current WQE and creates an error CQE. The error code returned in the CQE is “Local Protection Error.”

  • Transition QP to the SQE state.

  • Retire all subsequent SQ WQEs and create error CQEs indicating they were flushed due to an error in an earlier WQE.

Implementation-Specific Error Associated With a WQEAn implementation-specific error occurred in the requester's local CI that can be associated with a certain WQE.Class B error handling:
  • SQ Logic retires the current WQE and creates an error CQE. The error code returned in the CQE is “Local Protection Error.”

  • Transition QP to the SQE state.

  • Retire all subsequent SQ WQEs and create error CQEs indicating they were flushed due to an error in an earlier WQE.

Implementation-Specific Error with No WQE AssociationThe error can be associated with a specific QP, but not with a specific WQE on that QP's SQ.Class C error handling:
  • That QP is transitioned to the SQE state.

  • All of the QP's SQ WQEs are retired and CQEs are created for each of them indicating that they were flushed and not executed.

  • If the CA is an HCA, the CA causes the Asynchronous Event Handler to be called (typically via an interrupt) and the error is reported as an Asynchronous Affiliated Error.

Good Transfer But Can't Post CQEThe current message transfer completed without error, but the CQE could not be written to the CQ due a failure internal to the CA. The CQ is inaccessible or full and an attempt was made to retire a WQE and create a CQE.Class F error handling:
  • The affected QP is transitioned to the SQE state.

  • If the CA is an HCA, the CA causes the Asynchronous Event Handler to be called (typically via an interrupt) and the error is reported as an Asynchronous Affiliated Error.

  • The current WQE and any subsequent WQEs on the currently active client QP's SQ are left in an unknown state.


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

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