On Tue, Jul 26, 2005 at 07:35:17PM +0200, Eric Spakman wrote:
> Hello Jaap,
> >
> >I have patched the kernel (2.4.31) and iproute package for esfq: the
> >Enhanced Stochastic Fairness queueing discipline. It works nicely for
> >me (allowing sharing of bandwidth evenly per dest/source IP).
> >
> Can you tell something more about esfq? In which cases can or should
> this be used, in what kind of setup, etc?  

Yes: it's an extension to the SFQ already in the standard kernel. That
queue hashes connections based on dest. IP, source IP and the IP
protocol (TCP/UDP/etc.). The ESFQ enables one to choose hashing
functions based on source or dest IP only: so traffic ends up in one
"bucket" per host and each host receives an equal amount of bandwidth
(unless they need less of course).

Furthermore it allows one to set some parameters (limit, depth,
hash_divisor) that had fixed values in SQF. I do not fully understand
these but the defaults as in SFQ work fine. From the source: limit
seems to be the maximum number of packets (total) in the queue, depth
something like the maximum number of different flows (from separate
hash values) and hash_divisor is the maximum hash value.

The practical use/advantage is (I think), that one can easily give
different hosts the same fair share of bandwidth without resorting to
things like a QoS rule per host: just replace the queueing
discipline(s) by this one and set dest or source IP hashing when it is
incoming or outgoing traffic respectively.

One does have to be aware that this only works when the bottleneck is
at this queue though (which is easily fixed for outgoing traffic, but
somewhat more difficult for incoming (at least with a normal ISP
connection to the internet).

Hope that clarifies, but I'm glad to explain more.

Jaap

Attachment: signature.asc
Description: Digital signature

Reply via email to