Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Drop Congestion Notification

Drop Congestion Notification (DCN) is a congestion management technique based on packet trimming. Rather than dropping a packet when congestion occurs, the device experiencing congestion trims the packet’s payload to a much smaller size. The device then transmits the trimmed packet through a high-priority queue toward its destination. End hosts identify the specific DCN packet that was dropped due to congestion, and quickly requesting retransmission of the lost packet. The original sender host, upon receiving the DCN feedback, immediately re-transmits the exact packet and adjusts the flow rate.

Overview

In typical Ethernet based networks, when buffers are full due to congestion, packets are dropped from the egress queues. For protocols like TCP, this results in the need for packet retransmission. To enable retransmissions, end hosts must manage a complex state machine, which can negatively impact overall network throughput.

An alternative approach is for switches to implement congestion notification mechanisms, such as Explicit Congestion Notification (ECN). ECN allows the network to signal congestion to the receiver before packet loss occurs. However, ECN also introduces some reduction in throughput, as the congestion must be detected and marked before the buffers are completely full.

Lossless networks incorporate features like Priority Flow Control (PFC) to prevent packet loss during congestion. PFC works signaling the peer device to reduce its transmission rate. However, PFC also introduces challenges, including issues such as Head-of-Line (HOL) blocking, PFC deadlock, and congestion propagation.

Drop Congestion Notification (DCN) is a congestion management technique based on packet trimming. Rather than dropping a packet when congestion occurs, the device experiencing congestion trims the packet’s payload to a much smaller size (just the packet header and a small part of the payload). The device then transmits the trimmed packet through a high-priority queue toward its destination. Subsequent hops in the network recognize DCN-marked packets and direct them to high-priority queues as well. End hosts must be capable of processing the trimmed DCN packets, identifying the specific packets that were dropped due to congestion, and quickly requesting retransmission of those lost packets. The original sender host, upon receiving the DCN feedback, immediately re-transmits the exact packet and adjusts the flow rate.

With DCN enabled, the device trims a dropped packet to the size of a single cell. Trimming is most effective when it is applied to large data packets (e.g. 4KB), because it reduces the data rate significantly. Conversely, trimming packets just fractionally larger than a single cell (206 bytes) provides little data reduction, and can even be detrimental if a large fraction of bandwidth is used by trimmed packets.

Benefits

  • Provide lower end-to-end latency using regular Ethernet fabric.

  • No need for the end host must to maintain a state machine for an extended period to detect missing packets before initiating a retransmission request.

  • With DCN, the end host can promptly request retransmission of the exact missing packets, enabling faster flow completion.

Configuration

DCN works only for UDP unicast traffic. Enabling a device to provide DCN transit requires you to set a UDP port number as the DCN protocol number and a strict-high priority forwarding class and queue for the DCN trimmed packets.

Enabling the device to also create DCN trimmed packets in case of congestion requires you to also enable DCN on one or more ingress interfaces.

  1. Set the customer-defined L4 UDP port number as the DCN protocol number. The device uses this to identify DCN packets.
  2. Set a strict-high priority forwarding class for all DCN trimmed packets. The forwarding class must map to a unicast queue.
    Note:

    We recommend reserving a strict-high priority queue for only DCN. There is no hardware counter for DCN trimmed packets. However, if you use a dedicated queue for DCN trimmed packets, the existing queue statistics command can show DCN statistics.

  3. (Optional) To enable the device to create DCN trimmed packets in case of congestion, enable DCN on individual ports.
    Note:

    You can use a wildcard, for example et-*, to enable DCN on all ports on the device.

    This step is not required if you only need the device to provide DCN transit.

Below is an example configuration:

Run the following commands to verify that DCN is enabled: