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
signature.asc
Description: Digital signature
