When pause control reception is enabled (see MAC Configuration Registers) and an error-free frame is received by the Ethernet MAC core, the frame decoding functions are performed:
- The destination address field is matched against the MAC control multicast address or the configured source address for the Ethernet MAC. (see MAC Configuration Registers)
- The length/type field is matched against the MAC Control type code 88-08.
- The opcode field contents are matched against the priority-based flow control opcode.
If any of these checks are FALSE or the MAC receiver PFC is disabled, the frame is ignored by the PFC logic and passed to the client.
If the frame passes these checks,
that is, minimum legal size or the Control Frame Length Check
Disable is set, and the MAC receiver PFC is enabled, then the
priority enable field and per priority quanta values are extracted
from the frame. If a particular priority is enabled in the frame
with a non-zero pause quanta value, the respective rx_pfc_p[0-7]_tvalid
output is asserted and
the requested quanta value loaded into the control logic for that
priority. This control logic consists of a counter, which is loaded
with the requested pause quanta value and decrements down to zero.
The rx_pfc_p[0-7]_tvalid
remains
asserted while the local quanta counter is non zero. The local
quanta counter does not start to decrement until rx_pfc_p[0-7]_tready
is High.
Subsequent de-assertion of rx_pfc_p[0-7]_tready
does not stop the quanta expiration. If
the quanta counts down to zero, and not refreshed by reception of a new PFC frame with the
respective priorities quanta enabled and non-zero, rx_pfc_p[0-7]_tvalid
is de-asserted. An example of this is shown in the following
figure, which shows the case where only one priority is active in a frame.
If at any time a new PFC frame is received
with a priorities quanta enabled and set to zero, this is loaded into the local quanta count
which results in the respective rx_pfc_p[0-7]_tvalid
signal
being de-asserted immediately to re-enable transmission of this particular priority
queue.
Because the received PFC frame has been
acted on, it is passed to the client with rx_axis_tuser
asserted to indicate that it should be dropped.
- Any frame in which the length/type field
contains the MAC Control Type should be dropped by the receiver client logic. All control
frames are indicated by
rx_statistic_vector
bit 20 (see Receive Statistics Vector).