The QP State Machine

Figure 12-1 on page 235 illustrates the QP state machine. Note the following:

  • The solid arrow lines indicate state changes that can be caused by software using the Modify QP verb.

  • The dotted arrow lines indicate automatic state changes that occur upon detection of an error.

  • Using the Modify QP verb, software may command the QP to enter the Reset state from any other state. The figure does not show this, but it is stated in figure note 2.

  • Using the Modify QP verb, software may command the QP to enter the Error state from any other state. The figure does not show this, but it is stated in figure note 3.

Figure 12-1. The QP State Machine


The possible states that a QP may be in at any given time are:

  • Reset. The basic QP has been created but has not been configured yet. It should also be noted that software may command a QP to return to the Reset state via the Modify QP verb.

  • Initialized (Init).

    - RQ WR posting is enabled, but not RQ WR processing. If the QP should receive any inbound request packets, they are discarded.

    - SQ WR posting and processing are disabled.

  • RTR (Ready to Receive).

    - RQ posting and processing are enabled. The RQ Logic can handle inbound messages. If this is an RC or RD QP, it will generate responses to request packets received from the remote QP's SQ Logic.

    - SQ posting and processing are still disabled.

  • RTS (Ready to Send). This is the fully operational state.

    - WRs can be posted to both the SQ and RQ.

    - WRs on both queues are processed. The SQ Logic can process SQ WQEs and generate outbound request packets to the remote QP's RQ Logic.

  • SQD (SQ Drain). When software intends to modify an operational QP's characteristics, it commands the QP to enter the SQD state. Upon entry to this state, the QP's SQ completes the transfer of all in-progress messages in preparation for QP modification.

  • SQE (SQ Error). Entered when a SQ WQE completes in error. After the error has been handled by software, software can re-post the corrected version of the WQE that failed as well as additional SQ WQEs and then transition the QP back to the RTS state. This state is implemented on all QP types except for RC QPs. It is also not implemented on a RD EEC. It is not implemented on the RC QP or the RD EEC for the following reason:

    - The RC QP's SQ Logic and the RD EEC's Send Logic will automatically attempt error recovery via retries when certain types of errors are encountered.

    - If the automatic error recovery mechanism fails to correct the problem, the RC QP or the RD EEC will transition from the RTS state directly to the Error state.

  • Error. Entered when the QP encounters an unrecoverable error. The QP ceases to process WQEs on both the SQ and RQ.

    - The SQ Logic does not process SQ WQEs or generate outbound request packets to the remote QP's RQ Logic.

    - The RQ Logic ceases to respond to inbound request packets transmitted by the remote QP's SQ Logic.

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

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