PCIE バス経由で接続された 2 つのボードがあります。事前に割り当てられたメッセージ バッファを介してデータを交換できます。今、この接続に基づいて仮想ネットワーク インターフェイスを実装しようとしています。いくつかのネットワーク ドライバー ソースを参照すると、受信パスを実装する 2 つの方法があることがわかります。
- receive 関数内に を割り当て、これに割り当てられたバッファにデータをコピーするために
dev_alloc_skb()
使用します。skb
skb
- を使用
dev_alloc_skb()
して、バッファを割り当て、skb
RX リングに配置します。
これら 2 つのケースでは、バッファは によって割り当てられdev_alloc_skb()
ます。skb
コントロール ヘッダーのみを割り当てて、data
ポインタをメッセージ バッファに向けたいと思います。skb_free()
また、代わりにメッセージ バッファをメッセージ プールに戻すように変更する必要があります。
同様のアプローチを使用する参照コードがあるかどうかを教えてください。または、コードの変更を最小限に抑えるより良いアプローチを提案してください。任意の提案をいただければ幸いです。ありがとうございます!