Slow Drain Detection & Congestion Avoidance
Slow Drain Device Detection and Congestion Avoidance:
FCOE related traffic uses link level and per-hop based flow control between end devices. When any slow device are attached to the fabric , it causes traffic congestion on ISL links and also affects the unrelated flows in the fabric even though destination devices don’t experience the slow drain.
To prevent this from NX-OS release 6.1 onwards slow detection and congestion avoidance is supported on F series I/O module that is used to carry FCOE traffic. These enhancement are mainly on ports where slow drain device are connected which further minimize congestion on edge ports.
When any slow drain device are present or detected, for edge ports where slow drain device are connected are configured with smaller frame timeout value which will help to alleviate slow drain condition by dropping the packet on edge ports as soon as timeout value is reached and also force a timeout drop for all packets who are using configured threshold.
These both function will create some empty space in ISL which will be further used by other unrelated flows that don’t experience slow drain.
Configuring Congestion Frame Timeout Value:
When any FCOE packet takes some long time than the congestion-drop timeout period which is to be transmitted by egress port, meeting this condition causes frame drop. This action can help in controlling the effect of slow egress ports but they are not long enough to trigger the pause timeout drop.
When Egress port discard the packet, it release the buffers in upstream ingress ports of the switch which allow unrelated flows to move continuously through them.
The default congestion frame timeout value is 500 milliseconds and whenever any value is manually configured it should be less than default value for edge ports.
If any frame in switch is present for time longer than configured congestion frame timeout value it gets dropped.
Nexus 7000 NX-OS Release 8.2(1) and later:
The below figure is showing the request timeout for a source-destination pair per module
Below configuration shows how to configure congestion-drop timeout on core device to the default value of 500 milliseconds
Below Configuration shows how to configure congestion-drop timeout on edge device to the default value of 500 milliseconds