Chinaunix首页 | 论坛 | 博客
  • 博客访问: 451044
  • 博文数量: 64
  • 博客积分: 3271
  • 博客等级: 中校
  • 技术积分: 727
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-30 18:42
文章分类

全部博文(64)

文章存档

2013年(1)

2011年(19)

2010年(42)

2009年(2)

分类: LINUX

2010-04-11 18:44:53






文件:nf_conntrack.rar
大小:231KB
下载:下载
阅读(2084) | 评论(2) | 转发(1) |
0

上一篇:linux信号操作

下一篇:dnat源码追踪

给主人留下些什么吧!~~

chinaunix网友2010-08-28 15:45:01

现在已经看明白nf_ct_ext_types[]在哪里初始化的了,是在nf_ct_extend_register()里面的rcu_assign_pointer(nf_ct_ext_types[type->id], type)来完成赋值的。

chinaunix网友2010-08-28 11:28:58

谢谢lz的好文章,我正在学习这方面的东东,你的文章对我起了非常大的帮助! 不过,我这里对你的文章的一个细节有点疑问,说出来,望指教。在3章2节中提到“函数会判断ct->ext是否为NULL,若为NULL则证明这是第一个,所以调用nf_ct_ext_create(),它分配一个扩展的size并且返回它的起始地址;对于扩展的管理是先来的放前面。所以nf_ct_ext::offset[id]会是添加id对应的扩展之前nf_ct_ext的对齐后的连同以前添加的扩展数据在内的长度。”我对此处的理解是,在nf_ct_ext_create()函数中offset[id]时添加id对应的扩展之前nf_ct_ext的对齐后的长度,而在nf_ct_ext_add()函数中的其他情况下nf_ct_ext::offset[id]应该是添加id对应的扩展之前nf_ct_ext和以前添加的扩展数据在内的对齐后的长度。不知道理解正确与否,望指点。 在此处,我还有点疑惑的是,源码中经常出现 t = rcu_dereference(nf_ct_ext_types[id]),可是我一直没有发现n