3.2.7.1 SEQ_ACK_RECEIVED

The SEQ_ACK_RECEIVED event MUST be triggered by the reliable messaging source (RMS) when a SequenceAcknowledgement header block is received.

The SEQ_ACK_RECEIVED event MUST be signaled with the following arguments:

  • The BufferRemaining argument corresponding to the value of the BufferRemaining element in the SequenceAcknowledgement header block.

  • If the BufferRemaining element is missing from the SequenceAcknowledgement header block, the BufferRemaining argument MUST be set to -1.

If the SEQ_ACK_RECEIVED event is signaled, the RMS MUST perform the following actions:

  • If the RMS is in the POLLING state:

    • If the BufferRemaining value is greater than 0:

      1. The RMS MUST move to the NOT_POLLING state.

      2. The RMS MUST cancel the POLLING_TIMER timer.

    • If the BufferRemaining value is equal to 0:

      1. The RMS MUST remain in the POLLING state.

    • If the BufferRemaining value is equal to -1:

      1. The RMS MUST remain in the POLLING state.

  • If the RMS is in the NOT_POLLING state:

    • If the BufferRemaining value is greater than 0:

      1. The RMS MUST remain in the NOT_POLLING state.

    • If the BufferRemaining value is equal to 0:

      1. The RMS MUST move to the POLLING state.

      2. The RMS MUST reset the POLLING_TIMER timer.

      3. The RMS MUST start the POLLING_TIMER timer.

    • If the BufferRemaining value is equal to -1:

      1. The RMS MUST remain in the NOT_POLLING state.