我有两块通过 PCIE 总线连接的板。他们可以通过预先分配的消息缓冲区交换数据。现在我尝试基于这个连接来实现一个虚拟网络接口。参考一些网络驱动程序源表明他们实现接收路径有两种方法:
- 用于
dev_alloc_skb()
分配skb
内部接收函数并将数据复制到为此分配的缓冲区skb
。 - 用于
dev_alloc_skb()
分配skb
并将它们的缓冲区放入 RX 环。
在这两种情况下,缓冲区是由dev_alloc_skb()
. 我只想分配skb
控制标头并将data
指针指向我的消息缓冲区。我们还必须修改skb_free()
以将消息缓冲区放回消息池。
任何人都可以告诉我是否有任何参考代码也使用类似的方法,或者请提出一种更好的方法来最小化代码更改。任何建议表示赞赏。先谢谢了!