SerialLite II IP Core User Guide

ID 683179
Date 7/13/2021
Public
Document Table of Contents

2.8.10.1. Retry-on-Error

The retry-on-error mechanism improves the bit error rate of your data.
The retry-on-error parameter provides for segments with errors to be retransmitted, so that only good segments are delivered to the Atlantic receive interface. When you turn on the Retry-on-error parameter, all segments sent by the transmitter are acknowledged.
  • ACK: The received segment is good and error-free.
  • NACK: The received segment contains an error.
    • If you turn on the Retry-on-error parameter, the transmitter retransmits all segments starting from the segment with errors.
    • If you turn off the Retry-on-error parameter, the receiver raises a data error.

The segment buffers in the transmitting logic hold segments until they have been acknowledged. Once a segment has been acknowledged by ACK, it is released from the buffer so that the buffer can be used for another segment. If a segment is acknowledged by NACK, that segment and all segments sent after that segment are retransmitted.

The IP core can hold up to seven segments waiting for acknowledgement at once. If more segments arrive while all eight buffers are occupied, the priority data port stalls until an acknowledgment is received, freeing up a buffer for the next segment.

The retry-on-error operation proceeds in this sequence:
  1. When the receiver receives a good segment, the segment is delivered to the Atlantic interface and an ACK acknowledgment is sent back to the transmitter.
  2. Any data errors cause the segment to be acknowledged as errored (NACK). Once that happens, the receiver ignores all incoming data until it receives the retransmitted segment.
  3. All segments are numbered internally with a segment ID. The receiver knows which segment it expects next, so if the next expected segment has been corrupted or lost, the next received segment has the wrong segment number and the receiver requests a retransmission of the sequence starting with the segment ID it was expecting.
  4. The oldest outstanding segment to be acknowledged has an associated timer, set by the Timeout value on the Link Layer page in the SerialLite II parameter editor. If an acknowledgment (ACK or NACK) is lost or corrupted in transit, the timer expires causing the affected segment and all subsequent segments to be retransmitted.
  5. The transmitter knows which segment it expects to be acknowledged next. If the next acknowledgment is not for the expected segment, the transmitter infers that the expected acknowledgment was lost and retransmits the segment in question and all subsequent segments. Only segments that have the correct segment ID are buffered. The timer starts when the segment is identified as the next segment to be acknowledged.
  6. If the timer expires three times in succession, a link error is declared and the link is restarted. You can control the Timeout limit in the SerialLite II parameter editor.
    • Do not to set the time out to be too long so the system does not have to wait too long for such situations to resolve.
    • Do not set the time out to be too short because then the system always times out and the link never remains up.

Implementation of the retry-on-error mechanism is optional for the priority port. If the Retry-on-error parameter is turned off, no segment acknowledgments are generated or expected, and all segments are transmitted without any acknowledgments from the receiver.

Table 11.  Retry-on-Error ResponsesThis table summarizes the response to various transmission errors.
Error Response
Invalid 8B/10B codes groups Far end transmitter issues NACK
Running disparity errors Far end transmitter issues NACK
Unsupported valid code groups Far end transmitter issues NACK
CRC errored segments with {EGP} sequence Far end transmitter issues NACK
Out of order segment Far end transmitter issues NACK
Out of order acknowledgment Near end transmitter starts resend
Figure 13. Retry-On-Error ExampleThis figure shows an example of the retry-on-error operation.