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
查看完整版本: linux-2.6.35.6 xtables&iptables&hipac