我有两块通过PCIE总线连接的板卡。他们可以通过预先分配的消息缓冲区交换数据。现在我尝试基于此连接实现虚拟网络接口。 参考一些网络驱动程序源代码显示,有两种方法,他们实施的接收路径:手动为skb分配数据缓冲区struct
- 使用
dev_alloc_skb()
分配接收函数内skb
和数据复制到分配给该skb
缓冲区。 - 使用
dev_alloc_skb()
分配skb
并将其缓冲区放入RX环。
在这两种情况下,缓冲区由dev_alloc_skb()
分配。我想只分配skb
控制标题,并指向我的消息缓冲区的data
指针。我们还必须修改skb_free()
以将消息缓冲区重新放回消息池。
任何人都可以请告诉我,如果有任何参考代码也使用类似的方法或请提出一个更好的方法,尽量减少代码更改。任何建议表示赞赏。先谢谢了!
我也在努力解决类似的问题,有什么办法没有,你把HTTP:/? /stackoverflow.com/questions/40857686/mapping-1-mib-of-reserved-memory-for-network-interface-cardnic-driver-in-arm-l – shunty 2016-12-26 09:58:24