インターフェイスからパケットを受け取り、その宛先と送信元の MAC アドレスを Linux カーネル レベルで出力する単純なプログラムを作成しようとしています。これは、Linux カーネルを使用した最初のプロジェクトであり、ネットデバイス、ループバック、および skbuff に関する多くのソース コードと本を読んでいます。これまでに学んだことから、skbuff はパケット データが配置される場所のように見えますが、ネットワーク デバイス ドライバーがインターフェイスからパケットを取得して skb に配置する方法や、特定のインターフェイスに関連する skb を取得する方法がわかりません。
誰かが eth0 などのネットデバイスにリンクされた skb をどのように見ているのか教えてもらえますか? それらを拾うために必要な送受信リングはありますか?
いくつかのサンプルコードは素晴らしいでしょう! それに失敗した場合、誰かがソースコードを指すことができれば(ファイル名だけでなく...行番号と関数名が素晴らしいでしょう)。
これが漠然とした質問である場合は申し訳ありませんが、できる限り調査しようとしました。前もって感謝します。