Decoding Pause Frame at RX

On the RX path, the Triple Speed Ethernet MAC core monitors incoming Ethernet frames to detect PAUSE frames, which are uniquely identified by the reserved destination address 01-80-C2-00-00-01. When a PAUSE frame is detected, the Triple Speed Ethernet MAC core extracts the RX_QUANT value and forwards it to the TX logic. This value directly controls how long the transmitter pauses the data transmission. One quanta corresponds to the time required to transmit 512 bits at the current link speed.

The RX PAUSE frames are not subject to address filtering. A received frame is validated as a PAUSE frame if it meets all of the following criteria:

  • Matches the reserved destination address 01-80-C2-00-00-01
  • Contains the correct EtherType 0x8808 and PAUSE opcode 0x0001
  • Passes the CRC check

If a CRC error is detected, the RX PAUSE frame is deemed invalid, the extracted RX_QUANT is discarded, and no PAUSE operation is triggered. The received PAUSE frame is always forwarded to the RX AXI stream interface like regular frame.

A valid RX_QUANT from a received PAUSE frame has the highest priority over other transmitter operations, including locally generated PAUSE requests (xon_gen or xoff_gen) and TX AXI stream data. If a frame transmission is currently in progress, the new PAUSE command is queued and takes effect immediately after the current frame completes.

You can disable the RX PAUSE frame mechanism by setting the pause_ignore configuration bit to 1. When set, the Triple Speed Ethernet MAC core ignores the decoded RX_QUANT value, and no PAUSE operation occurs.

Note: The Triple Speed Ethernet MAC core updates the PAUSE timer whenever a new PAUSE frame is received. If another PAUSE frame arrives while a previous PAUSE is active, the new RX_QUANT value replaces the remaining timer value – it does not accumulate or extend it. A PAUSE frame with RX_QUANT = 0 clears the timer immediately and resumes transmission.