Triple-Speed Ethernet Intel® FPGA IP User Guide: Agilex™ 3 and Agilex™ 5 FPGAs and SoCs

ID 813669
Date 4/07/2025
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

10.2.4. Congestion and Flow Control

When MAC receives an XOFF frame, it will complete the transfer of the current frame and stop transmission for the amount of time specified by the pause quanta in 512 bit (64 bytes) times increments.

For example:
Pause quanta = 2 , GMII IF
8 bit times = 1 clock cycle = 512 bit times = 64 clock cycles
Pause quanta time = 2 x 64 clock cycles = 128 clock cycles

Transmission resumes when timer (pause quanta time) expires or MAC function received an XON frame. Holdoff quanta specifies the gap between consecutive XOFF requests in 512 bit times increments.

When Enable full-duplex flow control option is turned on, pause frame is triggered by:
  • RX FIFO : rx_section_empty
  • Register: XON/XOFF reg
  • I/O pin : xon_gen / xoff_gen


Pause frame:
  • src addr = mac_0 and mac_1
  • dest addr =01-80-C2-00-00-01
  • Pad = 42 bytes of 0x00
  • XOFF: [P1,P2] = value[pause_quant reg] XON: [P1,P2] = 0x0000
To investigate on the congestion and flow control related issue:
  1. Make sure the flow control feature option in the parameter editor is enabled. If this option is not enabled, all functions related to the flow control such as PAUSE_FWD, PAUSE_IGNORE, XON, and XOFF is disabled.
  2. Check flow control configuration settings such as:
    • pause_quant and holdoff quant registers.
    • command_config registers such as XON_GEN, XOFF_GEN, PAUSE_FWD, and PAUSE_IGNORE.
  3. Identify pause frame trigger condition.
  4. Identify pause quanta and holdoff quanta time.
    • For TX: Set the pause quanta time by configuring the register.
    • For RX: Check the pause quanta field in the received packet.
  5. Check the pause frame format packet.
  6. Ensure the simulation time is sufficient—at least more than the pause quanta time.

The figure above shows the simulation waveform where the MAC stopped transmitting packets after receiving XOFF frame. This occurs because the pause quanta value is set to 0x0100 instead of 0x0001 and the simulation time is not enough to cover the pause quanta time.