Godbach
发表于 2012-06-05 17:41
回复 10# pywj777
OK,明白了
Godbach
发表于 2012-06-05 21:51
回复 6# pywj777
xt_table_info 中建立了每个 CPU 都会对应完整的规则,是不是为了加快匹配,其次,不同的 CPU 对应的规则是不是实际上指向的同一块内存。
Godbach
发表于 2012-06-05 21:57
回复 6# pywj777
对于构建树形规则时,是每个表用一个树,不同的链通过指针指向不同的地址,还是每个表下每个链都有一个树?
pywj777
发表于 2012-06-06 10:07
回复 12# Godbach
不同CPU对应的规则是指向不同的内存,为每个 CPU 建立对应完整的规则目的是为了做到无锁操作,从而提高匹配效率。
pywj777
发表于 2012-06-06 10:16
回复 13# Godbach
每个表下的每个链都是一颗树,自建链也会形成一个单独的树。
Godbach
发表于 2012-06-06 11:39
回复 14# pywj777
但是规则应该是全局的吧。每个 CPU 各 copy 一份吗?
那修改规则的时候,怎么保证同步到各个 CPU,以及修改和匹配之间是怎么实现同步的?
pywj777
发表于 2012-06-11 11:41
本帖最后由 pywj777 于 2013-05-21 12:06 编辑
回复 16# Godbach
xt_table_info是全局的,每个CPU所访问的规则集是各个CPU独有的(各COPY一份),由xt_table_info->entries指向各自私有的规则集。
规则的修改每次都是全局替换,即替换一个新构建好的xt_table_info结构(这个新构建的xt_table_info已为各个CPU构建好了规则集)。修改和匹配之间如何保证同步,参考本帖2楼第7条do_replace()函数,和4楼第一个流程图,放大一下看:wink:
kitiz
发表于 2012-06-14 22:47
请问一下LZ,这图是什么工具画的,一直找不到一个好的画图工具,多谢了
kitiz
发表于 2012-06-14 22:50
请问lz是用什么工具画的图,多谢了
ckf513728912
发表于 2012-06-15 11:52
图画得不错 谢谢分享
页:
1
[2]
3
4
5
6
7
8
9
10
11