RapidIO Intel FPGA IP User Guide

ID 683884
Date 9/15/2021
Public
Document Table of Contents

4.3.6.3. Receive Priority Threshold Values

The Physical layer implements the RapidIO specification deadlock prevention rules by accepting or retrying packets based on three programmable threshold levels, called Priority Threshold values. The algorithm uses the packet’s priority field value. The block determines whether to accept or retry a packet based on its priority, the threshold values, and the number of free blocks available in the receiver buffer, using the following rules:
  • Packets of priority 0 (lowest priority) are retried if the number of available free 64-byte blocks is less than the Priority 0 Threshold.
  • Packets of priority 1 are retried only if the number of available free 64-byte blocks is less than the Priority 1 Threshold.
  • Packets of priority 2 are retried only if the number of available free 64-byte blocks is less than the Priority 2 Threshold.
  • Packets of priority 3 (highest priority) are retried only if the receiver buffer is full.

The default threshold values are:

  • Priority 2 Threshold = 10
  • Priority 1 Threshold = 15
  • Priority 0 Threshold = 20

You can specify other threshold values by turning off Auto-configured from receiver buffer size on the Physical Layer page in the RapidIO parameter editor.

The RapidIO parameter editor enforces the following constraints to ensure the threshold values increase monotonically by at least the maximum size of a packet (five buffers), as required by the deadlock prevention rules:

  • Priority 2 Threshold > 9
  • Priority 1 Threshold > Priority 2 Threshold + 4
  • Priority 0 Threshold > Priority 1 Threshold + 4
  • Priority 0 Threshold < Number of available buffers
The following figure shows sample threshold values in context to illustrate how they work together to enforce the deadlock prevention rules.
Figure 13. Receiver Threshold Levels