Tom Samplonius wrote:
  FreeBSD does not send PAUSE frames, but most of the NICs out there will 
process received PAUSE frames.

  However ethernet flow control is mainly useful on the switches anyways.  
Switches these day (*) have small buffers (sometimes just a shared 3MB buffer 
for 24 ports).  If several ports send too much to a single port at the same 
time, the switch could run out of buffer space in milliseconds and start 
dropping frames, so the switch will use flow control to get the transmitting 
ports to slow down, and let the buffer drain.  Slowing down the senders with 
ethernet flow control results in better performance than letting some frames 
drop, and force a timeout and retransmit.  Of course, deeper buffers would be 
even better.


There are switch ASICs out there which implement upstream bandwidth limiting on ports by sending the PAUSE frame.

I believe thompsa@ recently committed a fix to if_bridge to allow it to ignore PAUSE frames for the purposes of forwarding (they should never be forwarded, they are link scope only).

It would be interesting to see a patch which implemented rate limiting in the same way as these ASICs do, but in if_bridge.

cheers
BMS
_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to