Table 17-7 on this page defines the types of errors that can be detected by the RQ Logic and how each is handled.
Error | Description | Handling |
---|---|---|
Out of sequence request packet | PSN of the inbound request packet does not match the QP's RQ Logic's ePSN. | Class B error handling:
|
Malformed RQ WQE | Responder detected a malformed RQ WQE while processing an inbound Send or RDMA Write With immediate request packet. | Class A error handling:
|
Resources Not Ready Error | WQE or other resource is not currently available, so the QP's RQ Logic has returned an RNR Nak. | Class B error handling:
|
Unsupported or Reserved Opcode | Inbound request packet's BTH:Opcode was either reserved or was for a function not supported by this QP (e.g., an RDMA or Atomic request on a QP that doesn't support it). | Class C error handling:
|
Misaligned semaphore start address | In an Atomic request packet's AtomicETH, the VA is not quadword-aligned. | Class C error handling. See the description of Class C error handling earlier in this table. |
Too many RDMA Read or Atomic Requests | The remote QP's SQ Logic transmitted more RDMA Read or Atomic request packets than the responder QP's RQ Logic can handle. Any one received after the RQ's queue becomes full isn't responded to. | Class C error handling. See the description of Class C error handling earlier in this table. |
Current request packet is “First” or “Only” and should have been “Middle” or “Last” | The responder was expecting a request packet with a “Middle” or “Last” opcode and received a “First” or an “Only.” Indicates either:
| Class C error handling. See the description of Class C error handling earlier in this table. |
Current request packet should been a “First” or “Only” | The responder was expecting a request packet with a “First “or “Only” opcode, but received a “Middle” or a “Last.” Indicates that one or more request packets were lost in the fabric. | Class C error handling. See the description of Class C error handling earlier in this table. |
R_Key Violation | The QP's RQ Logic detects an R_Key violation while executing an RDMA request. | Class C error handling. See the description of Class C error handling earlier in this table. |
Packet Header Violation | The QP's RQ Logic detected a header violation requiring that the request packet be silently dropped. Figure 17-25 on page 438 illustrates the header validation process. | Class D error handling:
|
Length errors |
| Class C error handling. See the description of Class C error handling earlier in this table. |
Invalid duplicate Atomic Request | Duplicate Atomic request received, but its PSN does not match PSN of a previously executed Atomic Request whose results were saved. | See the Class D error handling description in the description of the “Packet Header Violation” in this table. |
CQ overflow | Message was fully executed and Ack'd, but CQE could not be written to the CQ. Occurs when the CQ is inaccessible or full and an attempt is made to complete a WQE. | Class G error handling:
|