Я пытаюсь написать простую программу, которая берет пакет с интерфейса и распечатывает MAC-адреса назначения и источника на уровне ядра Linux. Это мой первый проект, работающий с ядром Linux, и я прочитал много исходного кода и книг, связанных с netdevice, loopback и skbuff. Теперь, из того, что я узнал до сих пор, skbuff выглядит как место размещения данных пакета, но я не могу понять, как драйвер сетевого устройства берет пакеты с интерфейса и помещает их в skb или как вы связываете skb с конкретным интерфейсом.
Может ли кто-нибудь сказать мне, как я смотрю на skb, связанный с сетевым устройством, таким как eth0? Есть ли какое-то кольцо передачи и приема, которое мне нужно, чтобы их забрать?
Некоторый пример кода был бы потрясающим! В противном случае, если бы кто-то мог указать на некоторый исходный код (больше, чем просто имя файла... номер строки и имя функции, было бы здорово).
Извините, если это расплывчатый вопрос, я пытался исследовать как можно больше. Заранее спасибо.