Configuring Priority-based Flow Control

Priority Flow Control (PFC) is an IEEE standard (802.1qbb) for link level flow control on Ethernet networks. Functionally, this feature is similar to the IEEE standard 802.3 for PAUSE mechanism, except that it operates at the granularity of individual packet priorities or traffic class, instead of port level. When a queue corresponding to traffic with a particular traffic class reaches a predetermined threshold, either auto or statically set, the switch chip generates a PFC frame and sends it back to the sender. For PFC to work effectively end to end on the network, all switches and hosts in the traffic path are configured to enable PFC, and configured for traffic class to priority mappings.

Netvisor OS introduces a new command to configure priorities, or traffic classes, for PFC. The configuration allows you to add ports where PFC is enabled. When enabled, Netvisor OS performs traffic class to CoS queue mappings, as well as to packet priorities, in the background. The following mappings are performed:

PFC is enabled to both transmit and receive on the selected port. For transmit, Netvisor OS pauses traffic corresponding to the traffic class indicated in the received PFC frame. For receive, Netvisor OS generates a PFC frame when a queue corresponding to a traffic class reaches the pause threshold. Netvisor OS auto-configures parameters such buffer threshold,and pause timer value. Disabling PFC turns off PFC for receive and transmit, although the traffic class priority and queue mappings remain.

On switches with a Broadcom Trident II chip, even with ingress admission control enabled (in lossless mode), by default, only the traffic class or priority group 7 is set up with the memory management unit (MMU) buffer resources. Packets of all priorities utilize the resources of the default priority group unless specifically configured. This implies that when enabling a new priority group for PFC, the buffer configuration is generated and saved in the chip configuration file, which is read during system initialization for MMU setup. As a result, when you enable a new priority for PFC, you must restart Netvisor OS. Adding new ports to an existing priority group setting, for another port or ports, does not require restarting Netvisor OS.

Up to three priority group buffer settings can be configured on switches in Netvisor OS. If you attempt to configure more than three, Netvisor OS returns an error message.

To create a new PFC configuration on port 2 with a priority group of 2, use the following command:

CLI (network-admin@Spine1)>port-pfc-create priority 2 port 1-10

Priority configuration will be effective after restart.

 

To modify the ports and change them to 11-15, use the following command:

CLI (network-admin@Spine1)>port-pfc-modify priority 2 port 11-15

Priority configuration will be effective after restart.

To delete the configuration, use the following command:

CLI (network-admin@Spine1)>port-pfc-delete priority 2 port 11-15

 

To display the configuration, use the port-pfc-show command:

CLI (network-admin@Spine1)>port-pfc-show

switch  priority port  error

------- -------- ----- -----

Spine1  2        11-20      

Spine1  3        11-20      

 

Configuring Priority-based Flow Control Port Statistics

Priority-based Flow Control (PFC) was introduced in Netvisor OS in Version 2.5.4, but the feature implementation did not include displaying statistics related to PFC. It is helpful to view the stats to confirm or debug traffic characteristics when PFC is in use. New commands allow you to display PFC stats per port and adjust the statistics collection.

port-pfc-clear

port port-list

Specify the ports to delete PFC statistics.

port-pfc-stats-settings-modify

enable|disable

Specify if you want to enable or disable PFC statistics collection.

interval duration: #d#h#m#

Specify the interval between statistics collection.

disk-space disk-space-number

Specify the amount of disk space for statistics collection.

port-pfc-stats-settings-show

enable|disable

Specify if you want to enable or disable PFC statistics collection.

interval duration: #d#h#m#

Specify the interval between statistics collection.

disk-space disk-space-number

Specify the amount of disk space for statistics collection.

port-pfc-stats-show

time date/time: yyyy-mm-ddTHH:mm:ss

Displays the date and time for statistics collection.

start-time date/time: yyyy-mm-ddTHH:mm:ss

Displays the start date and time for statistics collection.

end-time date/time: yyyy-mm-ddTHH:mm:ss

Displays the end date and time for statistics collection.

duration duration: #d#h#m#s

Displays the duration for statistics collection.

interval duration: #d#h#m#s

Displays the interval between statistics collection.

since-start

Displays the statistics since the start time.

older-than duration: #d#h#m#s

Displays the statistics older than the specified time.

within-last duration: #d#h#m#s

Displays the statistics within a specified time.

port port-list

Displays the port list.

      

 

 

About sFlow

Because businesses rely on network services for mission critical applications, small changes in network usage can impact network performance and reliability. As a result, these changes can also impact a business’ ability to conduct key business functions and increase the cost of maintaining network services.

Figure 1: Overview of sFlow

sFlow-Collectors.png

sFlow provides the visibility into network usage and active routes on the network by providing the data required to effectively control and manage network usage. This ensures that network services provide a competitive edge to the business.

A few examples of sFlow applications include the following:

sFlow is an open source sampling tool providing constant traffic flow information on all enabled interfaces simultaneously. sFlow data is sent to a collector that formats the data into charts and graphs while recording and identifying trends on the network. You can use this information for troubleshooting a network, perform diagnostics, and analysis of data.

The sFlow agent on the switch samples packets from data flows and forwards headers of the sample packet to a collector at regular intervals. You can specify the number of packets to sample from the total packets which is called the sample rate. The packets are stored and sent to the collector at an interval that you can configure on the switch. This is called the polling interval. You can sample different types of packets such as frames sent to the CPU or interfaces of the switch, routed packets, flooded packets, and multicast packets. However, the following packet types are not sampled by sFlow: