有个pppoe发送问题
时间:2010-08-11
来源:互联网
发送报文时候 dev_queue_xmit->dev_hard_start_xmit->ppp_xmit->ppp_push->pppoe_xmit
pppoe_xmit里面又调用dev_queue_xmit, 我的问题就在这里,
通过分析pppoe_xmit发现它调用dev_queue_xmit里面传的dev是pppox_sk(sk)获得的, 具体分析
pppox_sk(sk)中的dev是在pppoe_connect中获得:
复制代码
从这看是根据 sp->sa_addr.pppoe.dev名字得到dev的结构, 那么sp->sa_addr.pppoe.dev这个名字是指物理口的名字吗?
pppoe_xmit里面又调用dev_queue_xmit, 我的问题就在这里,
通过分析pppoe_xmit发现它调用dev_queue_xmit里面传的dev是pppox_sk(sk)获得的, 具体分析
pppox_sk(sk)中的dev是在pppoe_connect中获得:
- dev = dev_get_by_name(sp->sa_addr.pppoe.dev);
-
- error = -ENODEV;
- if (!dev)
- goto end;
-
- po->pppoe_dev = dev;
作者: Arthur_ 发布时间: 2010-08-11
哦, 我知道我的问题了。
之前我一直在hard_start_xmit地方获取skb->nfct拿CT信息做统计, 测试发现拨号的时候只能统计到逻辑口信息(ppp0),但统计不到物理口信息。 分析了ppp的发送流程发现在最后pppoe_xmit时候:
复制代码
由于统计的转发信息, 所以基本上都会走[1]的流程, 这个流程没有将原始的skb->nfct 拷贝到skb2中, 而skb2被发送到物理口上了, 所以我没有CT就不会在继续统计了。
之前我一直在hard_start_xmit地方获取skb->nfct拿CT信息做统计, 测试发现拨号的时候只能统计到逻辑口信息(ppp0),但统计不到物理口信息。 分析了ppp的发送流程发现在最后pppoe_xmit时候:
- /* Copy the skb if there is no space for the header. */
- if (headroom < (sizeof(struct pppoe_hdr) + dev->hard_header_len)) { ============>[1]
- skb2 = dev_alloc_skb(32+skb->len +
- sizeof(struct pppoe_hdr) +
- dev->hard_header_len);
-
- if (skb2 == NULL)
- goto abort;
-
- skb_reserve(skb2, dev->hard_header_len + sizeof(struct pppoe_hdr));
- memcpy(skb_put(skb2, skb->len), skb->data, skb->len);
- } else {
- /* Make a clone so as to not disturb the original skb,
- * give dev_queue_xmit something it can free.
- */
- skb2 = skb_clone(skb, GFP_ATOMIC);
-
- if (skb2 == NULL)
- goto abort;
- }
作者: Arthur_ 发布时间: 2010-08-11
发个牢骚 这设计的有点不合理。
skb2也有可能是cloned过来的 这个时候就有nfct信息以及其它信息了。
这样的话, 有的时候SKB2不包含这些信息, 有的时候包含, 怎么不统一下呢?!!!!
skb2也有可能是cloned过来的 这个时候就有nfct信息以及其它信息了。
这样的话, 有的时候SKB2不包含这些信息, 有的时候包含, 怎么不统一下呢?!!!!
作者: Arthur_ 发布时间: 2010-08-11
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28