Configuring Link Level Flow Control

This chapter contains the following sections:

Link Level Flow Control

Link-level flow control is a congestion management technique that pauses data transmission until the congestion in the system is resolved. When a receiving device becomes congested, it communicates with the transmitter by sending a PAUSE frame. When the transmitting device receives a Pause frame it stops the transmission of any further data frames for a short period of time. The link-level flow control feature applies to all the traffic on the link. The transmit and receive directions are separately configurable. By default, link-level flow control is disabled for both directions.

Guidelines and Restrictions for Link Level Flow Control

  • Ethernet interfaces do not auto-detect the link-level flow control capability. You must configure the capability explicitly.

  • Only link-level flow control is supported. Priority flow control (PFC) is not supported.

  • Enabling link level flow control requires a part of the buffer to be reserved. This reduces the available shared buffer space.

  • Flow control is not supported on 40G ports.

  • Data Center Bridging Exchange Protocol (DCBX) is not supported.

  • Configuration time quanta of the pause frames is not supported.

  • Only pure CoS-based classification of traffic classes is supported.

  • Setting of pause threshold values is restricted.

  • Configuring Link Level Flow Control on the interfaces will flap the interfaces which results in a momentary traffic loss.

  • When a no-drop QoS group is configured, you must ensure that packets received on ports that do not have flow control send-on configured are not classified to a no-drop QoS group.

  • Only a no-drop QoS group is capable of generating link level pause frames.

  • Weighted Random Early Detection (WRED) should not be enabled on a no-drop class because it can cause egress queue drops.

  • It is recommended to use default buffer sizes for no-drop classes because if the buffer size is specified through CLI, it will allocate the same buffer size for all ports irrespective of the link speed, and MTU size.

  • It is recommended to change the LLFC configuration when there is no traffic, otherwise packets already in the MMU of the system may not get the expected treatment.

  • When configuring a no-drop class for QoS you must use QoS-Group 1 and map the QoS Group 1 to the no-drop class.

Information About Link Level Flow Control

Link Level Flow Control on Interfaces

When link level flow control is configured the system changes the interface state to Down if the specified interface is in UP state and then applies the flow control configuration. After the configuration is successfully applied to the interface, the system restores the interface to the UP state.

Link Level Flow Control on Ports

During a port shutdown event, the flow-control settings on an interface are retained, however no traffic is received or transmitted on the link. During a port startup event the flow-control settings are reinstated on to the hardware.

Mismatched Link Level Flow Control Configurations

The transmit and receive directions can be configured separately, and each device on the network can have a different Link Level Flow Control (LLFC) configuration. The following table describes how devices with mis-matched configurations interact.

Switch A Switch B Description

LLFC configured to receive and transmit PAUSE frames.

LLFC configured to receive PAUSE frames.

Switch A can transmit 802.3x PAUSE frames and honor 802.3x PAUSE frames. Switch B can only receive 802.3x PAUSE frames.

LLFC configured to receive and transmit PAUSE frames.

LLFC configured to transmit PAUSE frames.

Switch A can transmit 802.3x PAUSE frames and honor 802.3x PAUSE frames. Switch B can transmit 802.3x PAUSE frames but will drop all received PAUSE frames.

How to Configure Link Level Flow Control

Configuring Link Level Flow Control Receive

Procedure
     Command or ActionPurpose
    Step 1 enable


    Example:
    Device> enable
     

    Enables privileged EXEC mode.

    • Enter your password if prompted.

     
    Step 2 configure terminal


    Example:
    Device# configure terminal
     

    Enters global configuration mode.

     
    Step 3interface ethernet 1/1


    Example:
    Device(config)# interface ethernet 1/1
     

    Configures an interface type and enters interface configuration mode.

     
    Step 4 flowcontrol receive on


    Example:
    Device(config-if)# flowcontrol receive on
     

    Enables the interface to receive and process pause frames.

     
    Step 5exit


    Example:
    Device(config-if)# exit
     

    Exits interface configuration mode.

     

    Configuring Link Level Flow Control Transmit

    To configure link-level flow control transmit on an interface, you enable flow control on the interface, configure a network-qos type QoS policy to enable a no-drop QoS group, and apply a qos type QoS policy to classify the traffic that requires no-drop behavior to the no-drop class.

    You must ensure that bandwidth is allocated for the No-Drop QoS class using a queuing policy when you define a no-drop class. For more information, see the "Configuring Type Queuing Policies" section.


    Note


    When a no-drop QoS Group is configured you must ensure that packets received on ports that do not have flow-control send-on configured, are not classified to a no-drop QoS group. This is required as any ingress port that does not have flow-control send-on configured, can not generate a link level pause frame and there is no way to request the transmitting device to stop the transmission. Therefore, if flow-control send-on is not configured on all the interfaces you should not use a system policy to classify the packets to the no-drop QoS group. Instead, you should apply an interface QoS policy to the interfaces that having flow-control send-on enabled.


    Procedure
       Command or ActionPurpose
      Step 1 enable


      Example:
      Device> enable
       

      Enables privileged EXEC mode.

      • Enter your password if prompted.

       
      Step 2 configure terminal


      Example:
      Device# configure terminal
       

      Enters global configuration mode.

       
      Step 3interface ethernet 1/1


      Example:
      Device(config)# interface ethernet 1/1
       

      Configures an interface type and enters interface configuration mode.

       
      Step 4 flowcontrol send on


      Example:
      Device(config-if)# flowcontrol send on
       

      Enables the interface to send pause frames to remote devices.

       
      Step 5 exit


      Example:
      Device(config-if)# exit
       

      Exits interface configuration mode and returns to global configuration mode.

       
      Step 6 class-map type network-qos class-name


      Example:
      Device(config)# class-map type network-qos class1
       

      Creates a network-qos class, and places the device in network-qos class-map configuration mode.

       
      Step 7 match qos-group group-number


      Example:
      Device(config-cmap-nq)# match qos-group 1
       

      Specifies an interface type and number, and places the device in interface configuration mode.

       
      Step 8 policy-map type network-qos policy-map-name


      Example:
      Device(config-cmap-nq)# policy-map type network-qos my_network_policy
       

      Creates a network-qos policy map, and places the device in network-qos policy-map configuration mode.

       
      Step 9 class type network-qos class-name


      Example:
      Device(config-pmap-nq)# class type network-qos class1
       

      Specifies the network-qos class map to use for matching, for this policy, and and places the device in network-qos policy-map-class configuration mode.

       
      Step 10 pause no-drop


      Example:
      Device(config-pmap-nq-c)# pause no-drop
       

      Specifies the pause characteristics for this class.

       
      Step 11 system qos


      Example:
      Device(config-pmap-nq-c)# system qos
       

      Enters QoS system configuration mode.

       
      Step 12 service-policy type network-qos policy-name


      Example:
      Device(config-sys-qos)# service-policy type network-qos my_network_policy
       

      Applies a QoS policy map to the network.

       
      Step 13 exit


      Example:
      Device(config-sys-qos)# exit
       

      Exits QoS system configuration mode and returns to global configuration mode.

       
      Step 14class-map type qos class-map-name


      Example:
      Device(config)# class-map type qos class1
       

      Creates a class map and enters the class-map configuration mode.

       
      Step 15match cos cos-value


      Example:
      Device(config-cmap-qos)#  match cos 2
       

      Defines the class of traffic using the class of service (CoS) value in a type qos class map .

       
      Step 16policy-map type qos policy-name


      Example:
      Device(config-cmap-qos)#  policy-map type qos my_qos_policy
       

      Creates a policy map and enters the policy map type qos configuration mode.

       
      Step 17class type qos class-name


      Example:
      Device(config-pmap-qos)# class type qos class1
       

      Adds a reference to an existing qos class map in a policy map and enters the class mode.

       
      Step 18set qos-group group-number


      Example:
      Device(config-pmap-c-qos)# set qos-group 1
       

      Assigns the QoS group identifier for a class of traffic in a type qos policy map.

       
      Step 19system qos


      Example:
      Device(config-pmap-c-qos)# system qos
       

      Configures a QoS system policy and enters system QoS configuration mode.

       
      Step 20service-policy type qos input policy-map-name


      Example:
      Device(config-sys-qos)# service-policy type qos input my_qos_policy
       

      Attaches a policy map to a system policy.

       
      Step 21 exit


      Example:
      Device(config-sys-qos)# exit
       

      Exits QoS system configuration mode and returns to global configuration mode.

       
      Step 22exit


      Example:
      Device(config)# exit
       

      Exits global configuration mode.

       
      Step 23 show running ipqos


      Example:
      Device# show running ipqos
       

      Shows the running configuration for the IP QoS Manager.

       

      Configuration Examples for Link Level Flow Control

      Example: Configuring Link Level Flow Control Receive

      Configuring Link Level Flow Control Receive

      The following example shows how to configure Link Level Flow Control receive on the device:

      Device# configure terminal
      Device(config)# interface ethernet 1/1
      Device(config-if)# flowcontrol receive on
      Device(config-if)# exit