当前位置:  技术问答>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, 等等, 随机性非常的大,

这到底是什么问题, 小弟先谢过版主和各位大侠,

这个问题困扰了我好几天了, 去网上查了好多, 都找不到相关的问题, 还请各位大侠帮帮忙

|
兄弟,驱动里面实现就是:当接收报文时,先读一个dumy register,如果该寄存器的内容为0、1就正常接收报文,如果为其他就打印上面提到的那个信息,你括弧里面的num就是该dumy_register里读出的内容。
即使你只发送报文,那么对方收到报文后就会根据协议给你的网卡返回对应的协议报文。

而在发送报文时,驱动是不会打印这个消息的。


|
skb 其他参数是否还需要设置呢?

|
关注! 学习!

|
兄弟,顶一下

|
我觉得ping是ICMP协议,而FTP用的是TCP协议,这两个协议在linux内核中的处理很不一样
我觉得你可以查一下这两个协议的处理流程

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 数据包通过dev_queue_xmit发送出去,dev_queue_xmit返回值为0,但是对方收不到数据包 ,本机也抓不到发送出去的包
  • linux下dev_queue_xmit和netif_rx前截取网络数据


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3