ipip.c中发送函数的问题

本帖最后由 瀚海书香 于 2011-02-16 10:25 编辑

分析ipip.c的发送函数ipip_tunnel_xmit的时候发现一个问题。
就是在重新封装好skb后,会调用nf_reset(skb),然后再把数据包发送出去。
个人感觉,如果调用nf_reset(skb),而这时候skb->nfct==1,所以会将conntrack的链接信息删除掉,但是查看/proc/net/nf_conntrack发现,链接并没有删除掉?请问是在什么时候把skb->nfct++的?
find源码中调用nf_conntrack_get()的地方,好像也没有发现那个地方会调用到啊?

作者: 瀚海书香   发布时间: 2011-02-16

回复 瀚海书香
问题解决了。原来是在nf_conntrack_confirm中调了atomic_inc(&ct->ct_general.use).
不过既然有了这个操作的封装函数"nf_conntrack_get"作者就应该使用这个函数啊,搞的我找了这么长的时间。

作者: 瀚海书香   发布时间: 2011-02-16