Flow Control

Flow Control

1. Function Overview

A switching hub initially stores received frames in memory and then performs relay processing.
When many frames are sent at the same time and relay processing cannot keep up (a congested state), exceeding the available memory capacity for storage, the frames to be relayed are discarded.
This product includes the following two functions to help mitigate such congestion.

  • When ports are operating at full duplex: IEEE 802.3x flow control can be enabled.

  • When ports are operating at half duplex: the back pressure function will always be enabled.

2. Definition of Terms Used

Bit Time

On a 10BASE network, the speed is 10Mbps, so 1 bit time = 100 nsec.
In the same way, the bit time on 100BASE is 10 nsec, and on 1000BASE is 1 nsec.

Jam Signal

In half-duplex communications, where data cannot be transmitted and received at the same time, there is a possibility of data collision.
The transmitting device monitors the possibility of data collision during transmission. When possible data collision is detected, the device stops transmitting and sends a jam signal. After the jam signal is sent, the device waits for a random interval before resuming transmission.
Although undefined in IEEE, jam signals that use a 32-digit alternating “1” and “0” bit sequence (such as “10101010101010101010101010101010”) are often used.

3. Function Details

3.1. IEEE 802.3x flow control

For full duplex communication, the MAC control protocol with IEEE802.3x option can be used.
The MAC control frame in the diagram below is used for flow control.

image

The following flow control operations are performed, based on the restriction start threshold and the restriction cancel threshold.

  • Flow control: processing flow
    image

This product can be used for either transmitting or receiving MAC control frames. The operations for each are shown below.

  • MAC control frame transmission processing

    • Frames are stored in the packet buffer. When the number of frames exceeds the restriction start threshold, a PAUSE frame with a pause time of 65535 is sent.

    • When the overflow in the packet buffer is resolved, and the number of frames falls below the restriction cancel threshold, a PAUSE frame with a pause time of 0 is sent.

  • MAC control frame reception processing

    • When a PAUSE frame with a pause time of 1–65535 is received, the transmission processing will be stopped if the corresponding bit time has elapsed, or if the a PAUSE frame with a pause time of 0 has been received.

Use the flowcontrol command to enable or disable the flow control (when transmitting/receiving MAC control frames).
This setting can be made for the system and for each transmitting/receiving LAN port, and is set to “disable” by factory default.
In order to enable flow control for an individual port, flow control must be enabled for the system.
The tail drop function is disabled when flow control is enabled in the system.
Packet buffers are shared among ports, and the restriction start threshold and the restriction cancel threshold change dynamically according to packet buffer usage. (This behavior cannot be changed.)

3.2. Back pressure

This product sends a jam signal whenever the receiving buffer of a LAN port is about to overflow.
With this, the sender waits for a random amount of time as per the CSMA/CD, and then sends the frames.
When the LAN port is operating at half duplex, the back pressure function will always be enabled.

  • Back pressure processing flow
    image

4. Related Commands

Related commands are indicated below.
For details, refer to the Command Reference.

Operations Operating commands

Set (system) flow control (IEEE 802.3x PAUSE send/receive)

flowcontrol

Set (interface) flow control (IEEE 802.3x PAUSE send/receive)

flowcontrol

Show flow control operating status

show flowcontrol

5. Examples of Command Execution

Enable flow control on LAN port #1.
After the function is enabled, check the flow control operating status.

Yamaha(config)#flowcontrol enable
Yamaha(config)#interface port1.1
Yamaha(config-if)#flowcontrol both
Yamaha(config-if)#end
Yamaha#show flowcontrol port1.1
Port        FlowControl       RxPause TxPause
---------   -----------       ------- -------
port1.1     Both                    0      64