Не могу понять как заполняется структура sk_buff для пришедших пакетов (соответственно и как ее парсить, особенно это касается пля sk_buff->data -- что в ней лежит?) для Linux 2.2.20 и 2.4.6.
Так понимаю, все происходит следующим образом: приходит прерывание от карточки, вызывается хендлер прерывания pcnet32_interrupt (для драйвера pcnet32.c), от туда завется pcnet32_rx и там через bus_to_virt (так понимаю прямо с PCI шины) данные копируются в sk_buff (вместе с ethernet хедером???). Далее, по идее, должен вызываться netif_rx из dev.c, а от туда уже ip_rcv. Но этих двух переходов я найти не могу.
Ткните носом, плз :) Заранее, спасибо!