【发布时间】:2018-01-09 04:22:35
【问题描述】:
我有两个通过 PCIE 总线连接的板。他们可以通过预先分配的消息缓冲区交换数据。现在我尝试基于这个连接实现一个虚拟网络接口。 参考一些网络驱动源表明他们实现接收路径有两种方法:
- 使用
dev_alloc_skb()在接收函数内部分配skb,并将数据复制到为这个skb分配的缓冲区中。 - 使用
dev_alloc_skb()分配skb并将它们的缓冲区放入RX 环中。
在这两种情况下,缓冲区是由dev_alloc_skb() 分配的。我只想分配skb 控制头并将data 指针指向我的消息缓冲区。我们还必须修改skb_free() 以将消息缓冲区放回消息池。
请任何人告诉我是否有任何参考代码也使用类似的方法,或者请提出一种更好的方法来最大限度地减少代码更改。任何建议表示赞赏。提前致谢!
【问题讨论】:
-
我也在尝试解决类似的问题,请问您采取了什么方法?stackoverflow.com/questions/40857686/…
标签: linux-kernel linux-device-driver