In a recent thread on this list, Robert Kurjata provided me a patch to add hashing by iptables mark to the Linux 2.4 version of ESFQ. Thanks to that contribution, I was able to easily add support to the 2.6 port I maintain. I found out, however, that the existing hash algorithm results in a lot of colllisions when the range of hashed values is small. The purturbation spreads the collisions out a little, but the result still wasn''t very fair, especially when hashing only three fwmark values: 0, 1 and 2. So, I wrote an alternative hash function. It''s quite simple, and as long as the range of input values is smaller than the hash table (default 1024, up to 16384), collisions will not happen at all. See the updated README file for more details. Home page: http://fatooh.org/esfq-2.6/ Direct URL: http://fatooh.org/esfq-2.6/esfq-2.6.13.tar.gz README (also available in the tar.gz): http://fatooh.org/esfq-2.6/current/README Try it out, have fun, and if you find a bug or have a suggestion please send me an email. -Corey
Corey Hickey wrote:> In a recent thread on this list, Robert Kurjata provided me a patch to add > hashing by iptables mark to the Linux 2.4 version of ESFQ. Thanks to that > contribution, I was able to easily add support to the 2.6 port I maintain. > > I found out, however, that the existing hash algorithm results in a lot of > colllisions when the range of hashed values is small. The purturbation > spreads the collisions out a little, but the result still wasn''t very > fair, especially when hashing only three fwmark values: 0, 1 and 2. > > So, I wrote an alternative hash function. It''s quite simple, and as long > as the range of input values is smaller than the hash table (default 1024, > up to 16384), collisions will not happen at all. See the updated README > file for more details. > > Home page: > http://fatooh.org/esfq-2.6/ > > Direct URL: > http://fatooh.org/esfq-2.6/esfq-2.6.13.tar.gz > > README (also available in the tar.gz): > http://fatooh.org/esfq-2.6/current/README > > Try it out, have fun, and if you find a bug or have a suggestion please > send me an email.Loosing perturb for non classic is really good thanks Corey. Andy.