当前位置: 技术问答>linux和unix
关于linux 网络驱动的问题 sk_buff *skb
来源: 互联网 发布时间:2016-03-18
本文导语: 比如要发送一个arp,那么至少需要填充skb中的哪些字段? hard_start_xmit(skb,dev)里的dev是不是skb->dev? skb->dev,skb->len,skb->data,这些是必须的(我是照着硬件发送驱动程序看哪些是必须的),我填充了,但是发送不出去...
比如要发送一个arp,那么至少需要填充skb中的哪些字段? hard_start_xmit(skb,dev)里的dev是不是skb->dev?
skb->dev,skb->len,skb->data,这些是必须的(我是照着硬件发送驱动程序看哪些是必须的),我填充了,但是发送不出去,调用硬件发送程序时已经产生发送完成的中断了,但是目标设备未接收到数据,字节长度和CRC都考虑到了,而且网络正常的(直接用ping命令可以ping通),我想我可能是漏了哪些信息了,但是想不出来,谁知道的指点下 谢谢了!
skb->dev,skb->len,skb->data,这些是必须的(我是照着硬件发送驱动程序看哪些是必须的),我填充了,但是发送不出去,调用硬件发送程序时已经产生发送完成的中断了,但是目标设备未接收到数据,字节长度和CRC都考虑到了,而且网络正常的(直接用ping命令可以ping通),我想我可能是漏了哪些信息了,但是想不出来,谁知道的指点下 谢谢了!
|
hard_start_xmit(skb,dev) 一般来讲skb->dev 与dev 一般来讲是一致的, 但发送出去, 未必有设备可以收到, 依赖于所填充的DESTINATION MAC, 当然ARP QUERY 可以设置为全F 然后再试试.
|
如果dmesg里面没有发生错误的说明,那么你找到hard_start_xmit的函数原形调试一下。