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.
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.