Gleb Smirnoff 388909a12a Use Jenkins hash for TCP syncache.
o Unlike xor, in Jenkins hash every bit of input affects virtually
  every bit of output, thus salting the hash actually works. With
  xor salting only provides a false sense of security, since if
  hash(x) collides with hash(y), then of course, hash(x) ^ salt
  would also collide with hash(y) ^ salt. [1]
o Jenkins provides much better distribution than xor, very close to
  ideal.

TCP connection setup/teardown benchmark has shown a 10% increase
with default hash size, and with bigger hashes that still provide
possibility for collisions. With enormous hash size, when dataset is
by an order of magnitude smaller than hash size, the benchmark has
shown 4% decrease in performance decrease, which is expected and
acceptable.

Noticed by:	Jeffrey Knockel <jeffk cs.unm.edu> [1]
Benchmarks by:	jch
Reviewed by:	jch, pkelsey, delphij
Security:	strengthens protection against hash collision DoS
Sponsored by:	Nginx, Inc.
2015-09-05 10:15:19 +00:00
..
2015-04-26 11:39:25 +00:00
2015-09-05 10:15:19 +00:00
2015-04-21 20:25:12 +00:00
2015-07-31 09:02:28 +00:00
2015-08-08 15:58:35 +00:00
2015-07-18 15:28:32 +00:00
2015-06-17 15:20:14 +00:00
2015-06-17 15:20:14 +00:00
2015-06-19 21:55:12 +00:00
2015-07-25 16:14:55 +00:00