ryan3216 发表于 2009-10-06 10:37

eexplorer 发表于 2009-10-06 10:37

回复 #3 ryan3216 的帖子

版主不在,我来代劳吧:)

return (jhash_3words(tuple->src.ip,
158                           (tuple->dst.ip ^ tuple->dst.protonum),
159                           (tuple->src.u.all | (tuple->dst.u.all << 16)),
160                           ip_conntrack_hash_rnd) % ip_conntrack_htable_size);
                                                                               ^^^^^^^^^^^^^^^^

jhash完之后再取余的。

ryan3216 发表于 2009-10-09 21:03

ryan3216 发表于 2009-10-10 06:25

ryan3216 发表于 2009-10-11 16:07

linux_sjj 发表于 2016-05-10 17:02

回复 2# eexplorer


    大哥,这个jhash能保证请求端和相应段获取的值是一样的?

nswcfd 发表于 2016-05-11 09:36

高版本不是直接取余数,而是使用 reciprocal_scale

http://lxr.free-electrons.com/source/net/netfilter/nf_conntrack_core.c#L161

nswcfd 发表于 2016-05-11 09:41

6楼是否在问,如果把五元组的source/dest交换一下,得到的hash值是否一样?
---------- 肯定是不一样的,要不然就没有必要挂两个hash_node了。

如果理解错了问题,勿怪。
页: [1]
查看完整版本: 内核 jhash