Вопрос по networking, linux, linux-kernel – Как захватить сетевые кадры в модуле ядра
=====================================================================================

Я хочу захватывать кадры, когда они получены определенным NIC; извлечь некоторую информацию из них (в настоящее время мне нужно захватить исходный MAC-адрес и исходные IP-адреса); сохранить эту информацию в какой-либо общедоступной структуре данных; и позволить фрейму идти вверх по пути к стеку TCP / IP.  

Я ранее использовал Netfilter, но, по-видимому, он не предоставляет хуков канального уровня.
  
Есть ли способ, которым я могу сделать это?

Я пишу это как модуль ядра; работает ядро Linux 2.6.32

 потому что он получает весь пакет (внутренне хранится как sk\_buff, который включает в себя информацию канального уровня). Вот пример кода, с которого следует начать. Этот код перехватывает все входящие пакеты для данного устройства и печатает src MAC и src IP.