• Michal Kubecek's avatar
    xfrm: use complete IPv6 addresses for hash · 8d4b6bce
    Michal Kubecek authored
    In some environments it is common that many hosts share the same lower half
    of their IPv6 addresses (in particular ::1). As __xfrm6_addr_hash() and
    __xfrm6_daddr_saddr_hash() calculate the hash only from the lower halves,
    as much as 1/3 of the hosts ends up in one hashtable chain which harms the
    performance.
    
    Use complete IPv6 addresses when calculating the hashes. Rather than just
    adding two more words to the xor, use jhash2() for consistency with
    __xfrm6_pref_hash() and __xfrm6_dpref_spref_hash().
    Signed-off-by: default avatarMichal Kubecek <mkubecek@suse.cz>
    Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
    8d4b6bce
xfrm_hash.h 4.44 KB