Linux カーネルに netdevice (net_device) を実装しようとしています。これは単純な net_device であり、ユーザー空間からカーネル空間にコマンド/データを渡します。これがこの単純な net_device の目標です。ユーザー空間からカーネル空間にコマンド/データを渡すためにソケットを使用しています。グーグルで調べた後、net_device の登録に成功し、/sys/class/net/abc0 (デバイス名) で自分のデバイスを確認できましたが、ファイル操作を行ったときにフローが明確にわかりません。
struct net_device_ops
{
.ndo_open =open,
.ndo_close = close,
.ndo_start_xmit = start_xmit
}
ソケットで書き込みを発行すると、データ リンク層で start_xmit が呼び出されます。
open メソッドを呼び出したい場合、ソケットを使用して呼び出す方法
ソケットを使用して start_xmit を呼び出す方法
受信バッファにデータパケットがあり、それをユーザー空間に渡す方法を見つけます。
シンプルな net_device (イーサネットを除く) に関する明確なフロー/情報はありません。リンク/pdf を提案できます。
open,close,start_xmitをテストする簡単なソケットプログラムを書いてみました。ソケットの読み取り/書き込みが open,close,star_xmit を呼び出していない場合。 開発した net_device をテストする方法はありますか?
ありがとうございました