当前位置: 技术问答>linux和unix
关于dev_queue_xmit
来源: 互联网 发布时间:2016-05-30
本文导语: 我的2440板子上有两块网卡,我想把eth0接收到的内容转发到eth1,具体做法如下 我在net_if中接收到skb的数据包, 拨去原接口的frame, 然后重新封装另一个接口的frame,最后用 dev_queue_xmit转发出去, skb中的dev也设置过了, 最后...
我的2440板子上有两块网卡,我想把eth0接收到的内容转发到eth1,具体做法如下
我在net_if中接收到skb的数据包, 拨去原接口的frame, 然后重新封装另一个接口的frame,最后用 dev_queue_xmit转发出去,
skb中的dev也设置过了, 最后的结果就是, 我用ping命令测试没有任何问题, 但是如果传输的数据量过大,
内核就会提示:, status check failed: (num)
(num)就是一个数字, 出现过的有195, 78, 35, 等等, 随机性非常的大,
这到底是什么问题, 小弟先谢过版主和各位大侠,
这个问题困扰了我好几天了, 去网上查了好多, 都找不到相关的问题, 还请各位大侠帮帮忙
我在net_if中接收到skb的数据包, 拨去原接口的frame, 然后重新封装另一个接口的frame,最后用 dev_queue_xmit转发出去,
skb中的dev也设置过了, 最后的结果就是, 我用ping命令测试没有任何问题, 但是如果传输的数据量过大,
内核就会提示:, status check failed: (num)
(num)就是一个数字, 出现过的有195, 78, 35, 等等, 随机性非常的大,
这到底是什么问题, 小弟先谢过版主和各位大侠,
这个问题困扰了我好几天了, 去网上查了好多, 都找不到相关的问题, 还请各位大侠帮帮忙
|
兄弟,驱动里面实现就是:当接收报文时,先读一个dumy register,如果该寄存器的内容为0、1就正常接收报文,如果为其他就打印上面提到的那个信息,你括弧里面的num就是该dumy_register里读出的内容。
即使你只发送报文,那么对方收到报文后就会根据协议给你的网卡返回对应的协议报文。
而在发送报文时,驱动是不会打印这个消息的。
即使你只发送报文,那么对方收到报文后就会根据协议给你的网卡返回对应的协议报文。
而在发送报文时,驱动是不会打印这个消息的。
|
skb 其他参数是否还需要设置呢?
|
关注! 学习!
|
兄弟,顶一下
|
我觉得ping是ICMP协议,而FTP用的是TCP协议,这两个协议在linux内核中的处理很不一样
我觉得你可以查一下这两个协议的处理流程
我觉得你可以查一下这两个协议的处理流程
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。