Какая функция отправляет пакет ARP демону ARPD в ядре Linux? - PullRequest
1 голос
/ 22 марта 2020

AFAIK, arpd используется для разгрузки определенных заданий и объема памяти из ядра. Процесс arpd может получать пакеты из двух сокетов:

  1. уведомления от ядра через NETLINK
  2. обычные пакеты ARP, такие как ARP_REPLY от соседей хоста, через PF_PACKET socket.

Мой вопрос: как пакеты ARP доставляются в сокет пространства пользователя? Когда сетевой стек получает пакет ARP, он передает его функциям ядра arp_rcv() и arp_process(), но мне не удалось найти какой-либо код, который отправляет пакет в PF_PACKET socket, которые arpd зарегистрированы. Я уверен, что что-то здесь упустил ..

...