[email protected] wrote:
The advice from most of the switch manufactures seems to be to disable flow control and let the protocols (udp,tcp) take care of the issue.
I work for a company that makes 10G NICs, and also switches. Flow control *can* help performance by eliminating dropped packets. A newer (per-priority) version of it t is actually required by protocols like FCOE. But flow control support is very, very spotty, even in the 10G switch space. This is because flow control is a fairly hard problem from a switch's perspective. If you're really strict about flow control, and don't drop at all, you risk blocking the entire network as soon as a device connected to one port fails to consume. I've personally seen this happen with a really cheap switch, an Intel 100Mb NIC and a machine which crashed and failed to reboot with flow control enabled. What we do (on both NICs and switches) is to send pause packets up to a point. If a host is not consuming, and has not consumed for a "long time" (like the crashed host scenario above), our NIC will start to drop packets and stop emitting pause frames. Similarly with our switch. Some switch vendors also implement flow control in the other extreme. Rather than sending pause frames back to the sender, they will always drop packets when they see a pause frame from a receiver, and the sender will never see a pause frame from them. When they drop too aggressively, this can lead more packet loss and to worse performance than you'd see running without flow control. Drew _______________________________________________ networking-discuss mailing list [email protected]
