免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1521 | 回复: 2
打印 上一主题 下一主题

[网络子系统] 连接跟踪的一个问题 [复制链接]

论坛徽章:
1
lufei
日期:2016-06-17 17:49:16
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-09-05 17:30 |只看该作者 |倒序浏览
本帖最后由 adidiaos丶丶 于 2013-09-05 17:31 编辑

static inline struct nf_conn *
nf_ct_get(const struct sk_buff *skb, enum ip_conntrack_info *ctinfo)
{
        *ctinfo = skb->nfctinfo;
        return (struct nf_conn *)skb->nfct;
}
上面这段代码是连接跟踪里面根据SKB获取CT的代码。
因为skb的nfct成员和CT的第一个成员是同一类型,在CT init的时候已经把那个成员地址赋给了nfct,
所以这样SKB通过nfct就能取到CT了。

但是这样有什么好处呢?为什么不直接在SKB里面加一个CT指针,反正nfct也是一个指针,
而且nfct好像只有CT才会用。望高手指点。谢了。

论坛徽章:
1
lufei
日期:2016-06-17 17:49:16
2 [报告]
发表于 2013-09-05 17:39 |只看该作者
还有一个问题。内核里面好像对tuple和CT没有严格区分的意思。比如h = __nf_conntrack_find_get(net, zone, &tuple, hash);看名字好像是要返回一个CT,单实际上返回的是一个struct nf_conntrack_tuple_hash。

论坛徽章:
1
lufei
日期:2016-06-17 17:49:16
3 [报告]
发表于 2013-09-06 11:46 |只看该作者
@高手                          
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP