Flow Control 802.3x questions

  • 0
  • 1
  • Question
  • Updated 3 years ago
  • Answered
Dear Extreme community experts,
our Extreme network switches (x450e,x670,x650,BD8810's) have Flow Control (802.3x) enabled by default, rx-pause only, in all their ports as far as I know. Our servers have RX-pause & TX-pause enabled.

802.3x was designed to avoid congestion in half-duplex links, @ hubs times. My question is how does Flow Control behave in nowadays full-duplex  1-10GbE world, specifically in std Extreme multiple switch environment.

My questions about Flow Control are very simple, but maybe tricky.

As an example: We have N servers A,B,C & D, using TCP ( A<->B,C,D) and connected to the same vlan, and another servers E,& F not talking with A.  'A' ethernet is getting colapsed (ex: running out of RX buffer), because of incoming B,C,& D traffic.

TX-PAUSE frames have the 'A' server mac-address origin, and as target a std. 'mac multicast' 01:80:C2:00:00:01 (if I'm not wrong). The payload is simple, type 0x0001 (TX-PAUSE frame) and just a number (1-65535), indicating the number of ethernet slot times to stop sending data, as far as I know.

My question is what exactly does the Extreme switch/port where A is connected to, with just rx-pause enabled, when a TX-PAUSE frame arrives?.

Does TX-PAUSE, from A, arrive to all vlan servers, even to unrelated ones, E&F? Or only to those B,C&D?

TX-PAUSE frames did only affect the switch where A is connected to?
If servers B,C &D are connected to other switches (rx-pause world) and the same vlan, do they receive those TX-PAUSE coming from 'A', or not?

Let's twist it a bit. What happens when server A it's in vlan A, and B,C,D are in their respective vlans B,C & D, maybe switches away? (always within all ports in a rx-pause enabled world)

Does matter the link/uplink type( 1GbE or 10GbE )???

Kindest Regards.
Photo of CELLS SYSTEMS ALBA SYNCHROTRON

Posted 3 years ago

  • 0
  • 1
Photo of Jeremy

Jeremy, Embassador

  • 9,788 Points 5k badge 2x thumb
I turn flow control off on every switch. I have no need for it.
Photo of Rahman Duran

Rahman Duran

  • 2,012 Points 2k badge 2x thumb
+1 I turn off flow control on every switch I deploy. I don't think you will gain anything with it. But you will see lots of problems especially if you live it enabled on uplink ports. Let TCP/IP stack do its job with congestion.
Photo of Erik Auerswald

Erik Auerswald, Embassador

  • 13,792 Points 10k badge 2x thumb
Basic Ethernet flow control works on the port level, thus the switch port receiving a pause frame is supposed to stop sending for the requested time. As a result frames are dropped at the switch instead of at the server. The pause frame affects the receiving port only. All VLANs on the port are affected by a pause frame. The pause frame is not forwarded to any other switch port.

I have not yet seen any positive effect of pause frames, but many problems with servers sending too many pause frames, so I'd concur with Jeremy that it can usually be disabled on the switch. Disabling Ethernet flow control has solved quite a few performance problems for me.

A nice blog post about Ethernet flow control can be found at http://virtualthreads.blogspot.de/2006/02/beware-ethernet-flow-control.html
(Edited)