Priority-based flow control, Pfc frame reception, Priority-based flow control –19 – Altera 10-Gbps Ethernet MAC MegaCore Function User Manual
Page 86: Pfc frame reception –19

Chapter 7: Functional Description
7–19
Congestion and Flow Control
February 2014
Altera Corporation
10-Gbps Ethernet MAC MegaCore Function User Guide
7.7.2. Priority-Based Flow Control
This section describes the PFC frame reception and transmission. Follow these steps
to use the PFC:
1. Turn on the Priority-based flow control (PFC) parameter and specify the number
of priority levels using the Number of PFC priorities parameter. You can specify
between 2 to 8 PFC priority levels.
2. Set the following registers.
■
On the transmit datapath:
■
Set tx_pauseframe_enable to 0 to disable the IEEE 802.3 flow control.
■
Set tx_pfc_priority_enable[n] to 1 to enable the PFC for priority queue n.
■
On the receive datapath:
■
Set the IGNORE_PAUSE bit in the rx_decoder_control register to 1 to
disable the IEEE 802.3 flow control.
■
Set the PFC_IGNORE_PAUSE_n bit in the rx_pfc_control register to 0 to
enable the PFC.
3. Connect the avalon_st_tx_pfc_gen_data signal to the corresponding RX client
logic and the avalon_st_rx_pfc_pause_data signal to the corresponding TX client
logic.
4. You have the option to configure the MAC RX to forward the PFC frame to the
client by setting the FWD_PFC bit in the rx_pfc_control register to 1. By default, the
MAC RX drops the PFC frame after processing it.
7.7.2.1. PFC Frame Reception
When the MAC RX receives a PFC frame from the remote partner, it asserts the
avalon_st_rx_pfc_pause_data[n]
signal if Pause Quanta n is valid (Pause Quanta
Enable [n] = 1) and greater than 0. The client suspends transmission from the TX
priority queue n for the period specified by Pause Quanta n. If the MAC RX asserts
the avalon_st_rx_pfc_pause_data[n] signal in the middle of a client frame
transmission for the TX priority queue n, the client finishes sending the current frame
and then suspends transmission for the queue.
When the MAC RX receives a PFC frame from the remote partner, it deasserts the
avalon_st_rx_pfc_pause_data[n]
signal if Pause Quanta n is valid (Pause Quanta
Enable [n] = 1) and equal to 0. The MAC RX also deasserts this signal when the timer
expires. The client resumes transmission for the suspended TX priority queue when
the avalon_st_rx_pfc_pause_data[n] signal is deasserted.
When the remote partner sends more than one pause quanta for the TX priority queue
n, the MAC RX sets the pause quanta n to the last pause quanta received from the
remote partner.
f
For more information on the PFC pause frame, refer to
.