From: Roland Dreier <redacted>
Date: Fri, 8 Jul 2011 13:44:42 -0700
The answer is that you have to mix hash_rnd into the hash
in a nonlinear way, so that an attacker can't know if two values
end up in the same bucket or not.
With your hash function, the attacker can just compute the
hash (without hash_rnd) for all the values of key ^ ifindex
and then use all the values that end up in the same bucket.
Ok, thanks everyone for explaining things.
So what is the cheapest non-linear function we could use?