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

Advertising
background image

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

Appendix A.4, Priority-Based

Flow Control Frame

.

Advertising